 |
ATLAS Offline Software
|
#include <StgcRawDataMonAlg.h>
|
enum | Environment_t {
Environment_t::user = 0,
Environment_t::online,
Environment_t::tier0,
Environment_t::tier0Raw,
Environment_t::tier0ESD,
Environment_t::AOD,
Environment_t::altprod
} |
| Specifies the processing environment. More...
|
|
enum | DataType_t {
DataType_t::userDefined = 0,
DataType_t::monteCarlo,
DataType_t::collisions,
DataType_t::cosmics,
DataType_t::heavyIonCollisions
} |
| Specifies what type of input data is being monitored. More...
|
|
|
| sTgcRawDataMonAlg (const std::string &name, ISvcLocator *pSvcLocator) |
|
virtual | ~sTgcRawDataMonAlg ()=default |
|
virtual StatusCode | initialize () override |
| initialize More...
|
|
virtual StatusCode | fillHistograms (const EventContext &ctx) const override |
| adds event to the monitoring histograms More...
|
|
virtual StatusCode | execute (const EventContext &ctx) const override |
| Applies filters and trigger requirements. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by reference. More...
|
|
template<typename... T> |
void | fill (const ToolHandle< GenericMonitoringTool > &groupHandle, T &&... variables) const |
| Fills a variadic list of variables to a group by reference. More...
|
|
void | fill (const std::string &groupName, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const |
| Fills a vector of variables to a group by name. More...
|
|
void | fill (const std::string &groupName, const std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &variables) const |
| Fills a vector of variables to a group by name. More...
|
|
template<typename... T> |
void | fill (const std::string &groupName, T &&... variables) const |
| Fills a variadic list of variables to a group by name. More...
|
|
Environment_t | environment () const |
| Accessor functions for the environment. More...
|
|
Environment_t | envStringToEnum (const std::string &str) const |
| Convert the environment string from the python configuration to an enum object. More...
|
|
DataType_t | dataType () const |
| Accessor functions for the data type. More...
|
|
DataType_t | dataTypeStringToEnum (const std::string &str) const |
| Convert the data type string from the python configuration to an enum object. More...
|
|
const ToolHandle< GenericMonitoringTool > & | getGroup (const std::string &name) const |
| Get a specific monitoring tool from the tool handle array. More...
|
|
const ToolHandle< Trig::TrigDecisionTool > & | getTrigDecisionTool () const |
| Get the trigger decision tool member. More...
|
|
bool | trigChainsArePassed (const std::vector< std::string > &vTrigNames) const |
| Check whether triggers are passed. More...
|
|
SG::ReadHandle< xAOD::EventInfo > | GetEventInfo (const EventContext &) const |
| Return a ReadHandle for an EventInfo object (get run/event numbers, etc.) More...
|
|
virtual float | lbAverageInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average mu, i.e. More...
|
|
virtual float | lbInteractionsPerCrossing (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate instantaneous number of interactions, i.e. More...
|
|
virtual float | lbAverageLuminosity (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1). More...
|
|
virtual float | lbLuminosityPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the instantaneous luminosity per bunch crossing. More...
|
|
virtual double | lbDuration (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the duration of the luminosity block (in seconds) More...
|
|
virtual float | lbAverageLivefraction (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average luminosity livefraction. More...
|
|
virtual float | livefractionPerBCID (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the live fraction per bunch crossing ID. More...
|
|
virtual double | lbLumiWeight (const EventContext &ctx=Gaudi::Hive::currentContext()) const |
| Calculate the average integrated luminosity multiplied by the live fraction. More...
|
|
virtual StatusCode | parseList (const std::string &line, std::vector< std::string > &result) const |
| Parse a string into a vector. More...
|
|
virtual StatusCode | sysInitialize () override |
| Override sysInitialize. More...
|
|
virtual bool | isClonable () const override |
| Specify if the algorithm is clonable. More...
|
|
virtual unsigned int | cardinality () const override |
| Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
|
|
virtual StatusCode | sysExecute (const EventContext &ctx) override |
| Execute an algorithm. More...
|
|
virtual const DataObjIDColl & | extraOutputDeps () const override |
| Return the list of extra output dependencies. More...
|
|
virtual bool | filterPassed (const EventContext &ctx) const |
|
virtual void | setFilterPassed (bool state, const EventContext &ctx) const |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
ToolHandleArray< GenericMonitoringTool > | m_tools {this,"GMTools",{}} |
| Array of Generic Monitoring Tools. More...
|
|
PublicToolHandle< Trig::TrigDecisionTool > | m_trigDecTool {this, "TrigDecisionTool",""} |
| Tool to tell whether a specific trigger is passed. More...
|
|
ToolHandleArray< IDQFilterTool > | m_DQFilterTools {this,"FilterTools",{}} |
| Array of Data Quality filter tools. More...
|
|
SG::ReadCondHandleKey< LuminosityCondData > | m_lumiDataKey {this,"LuminosityCondDataKey","LuminosityCondData","SG Key of LuminosityCondData object"} |
|
SG::ReadCondHandleKey< LBDurationCondData > | m_lbDurationDataKey {this,"LBDurationCondDataKey","LBDurationCondData","SG Key of LBDurationCondData object"} |
|
SG::ReadCondHandleKey< TrigLiveFractionCondData > | m_trigLiveFractionDataKey {this,"TrigLiveFractionCondDataKey","TrigLiveFractionCondData", "SG Key of TrigLiveFractionCondData object"} |
|
AthMonitorAlgorithm::Environment_t | m_environment |
| Instance of the Environment_t enum. More...
|
|
AthMonitorAlgorithm::DataType_t | m_dataType |
| Instance of the DataType_t enum. More...
|
|
Gaudi::Property< std::string > | m_environmentStr {this,"Environment","user"} |
| Environment string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_dataTypeStr {this,"DataType","userDefined"} |
| DataType string pulled from the job option and converted to enum. More...
|
|
Gaudi::Property< std::string > | m_triggerChainString {this,"TriggerChain",""} |
| Trigger chain string pulled from the job option and parsed into a vector. More...
|
|
std::vector< std::string > | m_vTrigChainNames |
| Vector of trigger chain names parsed from trigger chain string. More...
|
|
Gaudi::Property< std::string > | m_fileKey {this,"FileKey",""} |
| Internal Athena name for file. More...
|
|
Gaudi::Property< bool > | m_useLumi {this,"EnableLumi",false} |
| Allows use of various luminosity functions. More...
|
|
Gaudi::Property< float > | m_defaultLBDuration {this,"DefaultLBDuration",60.} |
| Default duration of one lumi block. More...
|
|
Gaudi::Property< int > | m_detailLevel {this,"DetailLevel",0} |
| Sets the level of detail used in the monitoring. More...
|
|
SG::ReadHandleKey< xAOD::EventInfo > | m_EventInfoKey {this,"EventInfoKey","EventInfo"} |
| Key for retrieving EventInfo from StoreGate. More...
|
|
|
void | fillsTgcOccupancyHistograms (const Muon::sTgcPrepDataContainer *, const MuonGM::MuonDetectorManager *) const |
|
void | fillsTgcLumiblockHistograms (const Muon::sTgcPrepDataContainer *, const int lb) const |
|
void | fillsTgcClusterFromTrackHistograms (const xAOD::TrackParticleContainer *) const |
|
void | fillsTgcPadTriggerDataHistograms (const xAOD::MuonContainer *, const Muon::NSW_PadTriggerDataContainer *, const int lb) const |
|
void | fillsTgcEfficiencyHistograms (const xAOD::MuonContainer *, const MuonGM::MuonDetectorManager *) const |
|
void | fillsTgcPadTriggerEfficiencyHistograms (const xAOD::MuonContainer *, const Muon::NSW_PadTriggerDataContainer *, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const |
|
int | getFEBs (int eta, int layers) const |
|
int | getSectors (const Identifier &id) const |
|
int | getLayer (const int multiplet, const int gasGap) const |
|
int32_t | sourceidToSector (uint32_t sourceid, bool isSideA) const |
|
int | getSignedPhiId (const uint32_t phiid) const |
|
std::optional< Identifier > | getPadId (uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const |
|
std::optional< std::tuple< Identifier, const Trk::RIO_OnTrack * > > | getRotIdAndRotObject (const Trk::TrackStateOnSurface *trkState) const |
|
std::optional< Identifier > | getRotId (const Trk::TrackStateOnSurface *trkState) const |
|
std::optional< std::tuple< int, int, std::string, std::string, int > > | getPadEtaPhiTuple (uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const |
|
std::optional< double > | band2theta (double rPosAtNSW, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const |
|
std::optional< double > | band2eta (double rPosAtNSW, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const |
|
std::optional< double > | rPosAtNsw2eta (double rPosAtNSW, bool isA, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const |
|
std::optional< double > | bandId2eta (int bandid, bool isLarge, bool isA, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const |
|
double | triggersectorphiid2phi (uint32_t sourceid, int trigger_phiid) const |
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
ToolHandle< Trk::IResidualPullCalculator > | m_residualPullCalculator {this, "ResPullCalc", "Trk::ResidualPullCalculator/ResidualPullCalculator"} |
|
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > | m_sTgcContainerKey {this,"sTgcPrepDataContainerName", "STGC_Measurements"} |
|
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_detectorManagerKey {this, "DetectorManagerKey", "MuonDetectorManager","Key of input MuonDetectorManager condition data"} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_meTrkKey {this, "METrkContainer", "ExtrapolatedMuonTrackParticles"} |
|
SG::ReadHandleKey< Muon::NSW_PadTriggerDataContainer > | m_rdoKey {this, "NSW_PadTriggerDataKey", ""} |
|
SG::ReadHandleKey< xAOD::MuonContainer > | m_muonKey {this, "MuonsKey", "Muons"} |
|
Gaudi::Property< double > | m_cutPt {this, "cutPt", 15000.} |
|
Gaudi::Property< double > | m_cutEtaDown {this, "cutEtaDown", 1.3} |
|
Gaudi::Property< double > | m_cutEtaUp {this, "cutEtaUp", 2.4} |
|
Gaudi::Property< double > | m_minDeltaR {this, "minDeltaR", 0.1} |
|
Gaudi::Property< int > | m_cutTriggerPhiId {this, "cutTriggerPhiId", 63} |
|
Gaudi::Property< int > | m_cutTriggerBandId {this, "cutTriggerBandId", 255} |
|
std::string | m_name |
|
std::unordered_map< std::string, size_t > | m_toolLookupMap |
|
const ToolHandle< GenericMonitoringTool > | m_dummy |
|
Gaudi::Property< bool > | m_enforceExpressTriggers |
|
DataObjIDColl | m_extendedExtraObjects |
| Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
|
|
StoreGateSvc_t | m_evtStore |
| Pointer to StoreGate (event store by default) More...
|
|
StoreGateSvc_t | m_detStore |
| Pointer to StoreGate (detector store by default) More...
|
|
std::vector< SG::VarHandleKeyArray * > | m_vhka |
|
bool | m_varHandleArraysDeclared |
|
Definition at line 53 of file StgcRawDataMonAlg.h.
◆ decoder
◆ mapper
◆ MonVarVec_t
◆ MuonSectorMapping
◆ StoreGateSvc_t
◆ DataType_t
Specifies what type of input data is being monitored.
An enumeration of the different types of data the monitoring application may be running over. This can be used to select which histograms to produce, e.g. to prevent the production of colliding-beam histograms when running on cosmic-ray data. Strings of the same names may be given as jobOptions.
Enumerator |
---|
userDefined | |
monteCarlo | |
collisions | |
cosmics | |
heavyIonCollisions | |
Definition at line 191 of file AthMonitorAlgorithm.h.
◆ Environment_t
Specifies the processing environment.
The running environment may be used to select which histograms are produced, and where they are located in the output. For example, the output paths of the histograms are different for the "user", "online" and the various offline flags. Strings of the same names may be given as jobOptions.
Enumerator |
---|
user | |
online | |
tier0 | |
tier0Raw | |
tier0ESD | |
AOD | |
altprod | |
Definition at line 172 of file AthMonitorAlgorithm.h.
◆ sTgcRawDataMonAlg()
sTgcRawDataMonAlg::sTgcRawDataMonAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~sTgcRawDataMonAlg()
virtual sTgcRawDataMonAlg::~sTgcRawDataMonAlg |
( |
| ) |
|
|
virtualdefault |
◆ band2eta()
Definition at line 157 of file StgcRawDataUtils.cxx.
158 std::optional<double>
status =
band2theta(rPosAtNSW, muonDetectorManagerObject);
159 if (!
status.has_value())
return std::nullopt;
161 if (!std::isnormal(
theta/2.))
return std::nullopt;
163 return std::make_optional(
eta);
◆ band2theta()
Definition at line 138 of file StgcRawDataUtils.cxx.
145 ATH_MSG_WARNING(
"Identifier for maximum value of NSW global Z-coordinate is invalid!");
150 (muonDetectorManagerObject -> getsTgcReadoutElement(maxNSWZid)) -> stripGlobalPosition(maxNSWZid, posNSW);
151 float posNSWZ = posNSW.z();
154 return std::make_optional(
theta);
◆ bandId2eta()
std::optional< double > sTgcRawDataMonAlg::bandId2eta |
( |
int |
bandid, |
|
|
bool |
isLarge, |
|
|
bool |
isA, |
|
|
const MuonGM::MuonDetectorManager * |
muonDetectorManagerObject |
|
) |
| const |
|
private |
◆ cardinality()
Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
Override this to return 0 for reentrant algorithms.
Override this to return 0 for reentrant algorithms.
Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.
◆ dataType()
DataType_t AthMonitorAlgorithm::dataType |
( |
| ) |
const |
|
inlineinherited |
Accessor functions for the data type.
- Returns
- the current value of the class's DataType_t instance.
Definition at line 221 of file AthMonitorAlgorithm.h.
◆ dataTypeStringToEnum()
Convert the data type string from the python configuration to an enum object.
- Returns
- a value in the DataType_t enumeration which matches the input string.
Definition at line 140 of file AthMonitorAlgorithm.cxx.
142 std::string lowerCaseStr =
str;
146 if( lowerCaseStr ==
"userdefined" ) {
148 }
else if( lowerCaseStr ==
"montecarlo" ) {
150 }
else if( lowerCaseStr ==
"collisions" ) {
152 }
else if( lowerCaseStr ==
"cosmics" ) {
154 }
else if( lowerCaseStr ==
"heavyioncollisions" ) {
157 ATH_MSG_WARNING(
"AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
158 <<
str<<
", returning userDefined.");
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ environment()
Accessor functions for the environment.
- Returns
- the current value of the class's Environment_t instance.
Definition at line 205 of file AthMonitorAlgorithm.h.
◆ envStringToEnum()
Convert the environment string from the python configuration to an enum object.
- Returns
- a value in the Environment_t enumeration which matches the input string.
Definition at line 112 of file AthMonitorAlgorithm.cxx.
114 std::string lowerCaseStr =
str;
118 if( lowerCaseStr ==
"user" ) {
120 }
else if( lowerCaseStr ==
"online" ) {
122 }
else if( lowerCaseStr ==
"tier0" ) {
124 }
else if( lowerCaseStr ==
"tier0raw" ) {
126 }
else if( lowerCaseStr ==
"tier0esd" ) {
128 }
else if( lowerCaseStr ==
"aod" ) {
130 }
else if( lowerCaseStr ==
"altprod" ) {
133 ATH_MSG_WARNING(
"AthMonitorAlgorithm::envStringToEnum(): Unknown environment "
134 <<
str<<
", returning user.");
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode AthMonitorAlgorithm::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtualinherited |
Applies filters and trigger requirements.
Then, calls fillHistograms().
- Parameters
-
ctx | event context for reentrant Athena call |
- Returns
- StatusCode
Definition at line 73 of file AthMonitorAlgorithm.cxx.
78 if (!filterItr->accept()) {
80 return StatusCode::SUCCESS;
87 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ extraOutputDeps()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ fillHistograms()
StatusCode sTgcRawDataMonAlg::fillHistograms |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
adds event to the monitoring histograms
User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
- Parameters
-
ctx | forwarded from execute |
- Returns
- StatusCode
Implements AthMonitorAlgorithm.
Definition at line 40 of file StgcRawDataMonAlg.cxx.
48 if (!meTPContainer.isValid()) {
50 return StatusCode::FAILURE;
55 return StatusCode::FAILURE;
60 if (!NSWpadTriggerContainer.isValid()) {
62 return StatusCode::FAILURE;
75 return StatusCode::SUCCESS;
◆ fillsTgcClusterFromTrackHistograms()
Definition at line 215 of file StgcRawDataMonAlg.cxx.
219 if(!meTrack)
continue;
222 if (!
status.has_value())
continue;
223 std::tuple<Identifier, const Trk::RIO_OnTrack*> rotIDtuple =
status.value();
225 Identifier rot_id = std::get<Identifier>(rotIDtuple);
228 if(!cluster)
continue;
233 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
234 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
240 int iside = (stEta > 0) ? 1 : 0;
241 std::string
side = GeometricSectors::sTgcSide[iside];
242 std::string channelName =
"";
246 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) {
247 float padCharge = prd ->
charge();
251 short int padTiming = prd ->
time();
254 fill(
"sTgcTiming", padSectorSidedMon, padTimingMon);
258 fill(
"padTiming_quad_" +
std::to_string(std::abs(stEta)), padSectorSidedExpertMon, padTimingExpertMon);
264 fill(
"sTgcTiming", timeMon, febMon);
267 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
268 channelName =
"strip";
269 const std::vector<Identifier>& stripIds = prd->
rdoList();
270 unsigned int csize = stripIds.size();
272 std::vector<short int> stripTimesVec = prd -> stripTimes();
273 std::vector<int> stripChargesVec = prd -> stripCharges();
275 float stripClusterTimes = 0;
276 float stripClusterCharges = 0;
278 for (
unsigned int sIdx = 0; sIdx < csize; ++sIdx) {
279 stripClusterTimes += stripTimesVec.at(sIdx);
280 stripClusterCharges += stripChargesVec.at(sIdx);
283 stripClusterTimes /= stripTimesVec.size();
291 fill(
"sTgcTiming", stripClusterSectorSidedMon, stripClusterTimesMon);
292 fill(
"padTriggerExpert", stripClusterSectorSidedMon, stripClusterSizeMon);
298 fill(
"sTgcTiming", timeMon, febMon);
303 fill(
"stripTiming_quad_" +
std::to_string(std::abs(stEta)), stripSectorSidedExpertMon, stripTimingExpertMon);
306 std::optional<Trk::ResidualPull> resPull(
m_residualPullCalculator -> residualPull(trkState -> measurementOnTrack(), trkState -> trackParameters(), Trk::ResidualPull::ResidualType::Biased));
315 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
316 float wireGroupCharge = prd ->
charge();
320 short int wireGroupTiming = prd ->
time();
323 fill(
"sTgcTiming", wireGroupSectorSidedMon, wireGroupTimingMon);
327 fill(
"wireTiming_quad_" +
std::to_string(std::abs(stEta)), wireSectorSidedExpertMon, wireTimingExpertMon);
333 fill(
"sTgcTiming", timeMon, febMon);
◆ fillsTgcEfficiencyHistograms()
Definition at line 450 of file StgcRawDataMonAlg.cxx.
457 std::array<int, 8> quadMultiplet{};
458 std::array<int, 8> layerMultiplet{};
459 std::array<float, 8> xPosMultiplet{};
460 std::array<float, 8> yPosMultiplet{};
461 std::array<float, 8> zPosMultiplet{};
464 std::array<std::array<sTGCeff, 16>, 2> effPlots;
466 const xAOD::TrackParticle* meTP =
mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
467 if(meTP ==
nullptr)
continue;
470 if(!meTrack)
continue;
474 if (!
status.has_value())
continue;
478 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
479 if (channelType != sTgcIdHelper::sTgcChannelTypes::Strip)
continue;
481 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
482 int iside = (stEta > 0) ? 1 : 0;
488 const Amg::Vector2D& positionsMultiplet = (trkState) -> trackParameters() -> localPosition();
489 float xPosStripInMultipletLocal = positionsMultiplet.x();
490 float yPosStripInMultipletLocal = positionsMultiplet.y();
492 Amg::Vector2D localPos(xPosStripInMultipletLocal, yPosStripInMultipletLocal);
495 sTgcReadoutObjectStrip -> surface(rot_id).localToGlobal(localPos,
Amg::Vector3D::Zero(), globalPos);
496 float xPosStripInMultiplet = globalPos.x();
497 float yPosStripInMultiplet = globalPos.y();
500 (muonDetectorManagerObject -> getsTgcReadoutElement(rot_id)) -> stripGlobalPosition(rot_id, posStripGlobal);
501 float zPosStripInMultiplet = posStripGlobal.z();
503 auto& sTGCelements = effPlots[iside][sector - 1];
505 sTGCelements.quadMultiplet.at(
layer - 1) = stEta;
506 sTGCelements.layerMultiplet.at(
layer - 1) =
layer;
507 sTGCelements.xPosMultiplet.at(
layer - 1) = xPosStripInMultiplet;
508 sTGCelements.yPosMultiplet.at(
layer - 1) = yPosStripInMultiplet;
509 sTGCelements.zPosMultiplet.at(
layer - 1) = zPosStripInMultiplet;
512 for (
unsigned int isideIndex = 0; isideIndex <= 1; ++isideIndex) {
513 for (
unsigned int sectorIndex = 1; sectorIndex <= 16; ++sectorIndex) {
514 auto& sTGCelements = effPlots[isideIndex][sectorIndex - 1];
515 bool fourOutEight = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 4;
516 bool oneRefLayer = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 1;
519 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
520 if (sTGCelements.layerMultiplet.at(layerIndex - 1) == 0)
continue;
522 float xPos = sTGCelements.xPosMultiplet.at(layerIndex - 1);
523 float yPos = sTGCelements.yPosMultiplet.at(layerIndex - 1);
524 float rPos = std::hypot(xPos, yPos);
526 std::string
side = GeometricSectors::sTgcSide[isideIndex];
535 fill(
"padTriggerShifter", xPosStripmon, yPosStripmon, effQuestionMon);
540 else if (!fourOutEight && oneRefLayer) {
541 auto refLayerIndex =
std::distance(sTGCelements.layerMultiplet.begin(), std::find_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) {return i != 0;}));
543 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
544 if (sTGCelements.layerMultiplet.at(layerIndex - 1) != 0)
continue;
545 int quad = sTGCelements.quadMultiplet.at(refLayerIndex);
547 int gap = (layerIndex <= static_cast<std::array<int, 8>::size_type>(
m_idHelperSvc->stgcIdHelper().gasGapMax())) ? layerIndex : layerIndex -
static_cast<std::array<int, 8>::size_type
>(
m_idHelperSvc->stgcIdHelper().gasGapMax());
550 const Identifier idProbe =
m_idHelperSvc -> stgcIdHelper().channelID((sectorIndex % 2 == 0) ?
"STS" :
"STL",
quad, (sectorIndex % 2 == 0) ? sectorIndex/2 : (sectorIndex + 1)/2,
multi,
gap, sTgcIdHelper::sTgcChannelTypes::Strip, 1,
isValid);
558 (muonDetectorManagerObject -> getsTgcReadoutElement(idProbe)) -> stripGlobalPosition(idProbe, posProbe);
559 float posZprobe = posProbe.z();
561 float xSlope = sTGCelements.xPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
562 float ySlope = sTGCelements.yPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
564 float xPos = sTGCelements.xPosMultiplet.at(refLayerIndex) + xSlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
565 float yPos = sTGCelements.yPosMultiplet.at(refLayerIndex) + ySlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
566 float rPos = std::hypot(xPos, yPos);
568 std::string
side = GeometricSectors::sTgcSide[isideIndex];
577 fill(
"padTriggerShifter", xPosStripProbemon, yPosStripProbemon, effQuestionMon);
◆ fillsTgcLumiblockHistograms()
Definition at line 175 of file StgcRawDataMonAlg.cxx.
188 int channelType =
m_idHelperSvc->stgcIdHelper().channelType(
id);
189 int multiplet =
m_idHelperSvc->stgcIdHelper().multilayer(
id);
198 std::string
side = GeometricSectors::sTgcSide[iside];
199 std::string channelName =
"";
202 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) channelName =
"pad";
203 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) channelName =
"strip";
204 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) channelName =
"wire";
209 fill(
"LBShifterGroup", lbMon, febMon);
◆ fillsTgcOccupancyHistograms()
Definition at line 78 of file StgcRawDataMonAlg.cxx.
92 int multiplet =
m_idHelperSvc -> stgcIdHelper().multilayer(
id);
94 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(
id);
102 std::string
side = GeometricSectors::sTgcSide[iside];
103 std::string channelName =
"";
105 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) {
112 int maxPadNumberQ1 = sTgcReadoutObjectPadQ1 -> maxPadNumber(idPadQ1);
113 int maxPadNumberQ2 = sTgcReadoutObjectPadQ2 -> maxPadNumber(idPadQ2);
115 if (stationEtaAbs == 2) padNumber = padNumber + maxPadNumberQ1;
116 else if (stationEtaAbs == 3) padNumber = padNumber + maxPadNumberQ1 + maxPadNumberQ2;
120 fill(
"Occupancy", sectorMon, padNumberMon);
124 fill(
"Occupancy", layerMon, quadMon);
127 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
128 channelName =
"strip";
129 int stripNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
134 int maxStripNumberQ1 = sTgcReadoutObjectStripQ1 -> numberOfStrips(idStripQ1);
135 int maxStripNumberQ2 = sTgcReadoutObjectStripQ2 -> numberOfStrips(idStripQ2);
137 if (stationEtaAbs == 2) stripNumber = stripNumber + maxStripNumberQ1 + 1;
138 else if (stationEtaAbs == 3) stripNumber = stripNumber + maxStripNumberQ1 + maxStripNumberQ2 + 1;
142 fill(
"Occupancy", sectorMon, stripNumberMon);
146 fill(
"Occupancy", layerMon, quadMon);
149 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
150 channelName =
"wire";
151 int wireGroupNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
153 const MuonGM::sTgcReadoutElement* sTgcReadoutObjectWireGroupQ3 = muonDetectorManagerObject -> getsTgcReadoutElement(idWireGroupQ3);
154 int maxWireGroupNumberQ3 = sTgcReadoutObjectWireGroupQ3 -> numberOfStrips(idWireGroupQ3);
157 auto wireGroupNumberMon =
Monitored::Scalar<int>(
"wireGroupNumber_layer_" + layerStr, wireGroupNumber + (sector - 1)*maxWireGroupNumberQ3);
158 fill(
"Occupancy", stationEtaMon, wireGroupNumberMon);
162 fill(
"Occupancy", layerMon, quadMon);
167 fill(
"Overview", sectorMon, febMon);
◆ fillsTgcPadTriggerDataHistograms()
Definition at line 340 of file StgcRawDataMonAlg.cxx.
344 bool largeSector = rdo -> largeSector();
346 int iside = (
sideA) ? 1 : 0;
347 int isize = (largeSector) ? 1 : 0;
349 std::string
side = GeometricSectors::sTgcSide[iside];
350 std::string
size = GeometricSectors::sTgcSize[isize];
352 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
353 size_t numberOfHits = rdo -> getNumberOfHits();
355 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
356 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
357 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
358 int triggerRelBCID = rdo -> getTriggerRelBcids().at(trigger);
359 int sourceId = rdo -> getSourceid();
368 fill(
"padTriggerShifter", phiIdsPerSideSizeMon, bandIdsPerSideSizeMon);
374 fill(
"padTriggerShifter", lbMon, relBCIDMon, sectorMon, numberOfTriggersMon);
381 fill(
"padTriggerExpert", numberOfTriggersPerSectorMon, phiIdsSidedSizedPerSectorMon, bandIdsSidedSizedPerSectorMon, lbPerSectorMon, relBCIDperSectorMon);
386 fill(
"padTriggerExpert", RelBCIDPerSectorMon, PhiIDPerSectorMon, BandIDPerSectorMon);
390 std::optional<Identifier>
status =
getPadId(rdo->getSourceid(), rdo->getHitPfebs().at(
hits), rdo->getHitTdsChannels().at(
hits));
391 if (!
status.has_value())
continue;
398 const xAOD::TrackParticle* meTP =
mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
399 if(meTP ==
nullptr)
continue;
402 if(!meTrack)
continue;
406 if (!
status.has_value())
continue;
409 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
410 if (channelType != sTgcIdHelper::sTgcChannelTypes::Pad)
continue;
413 if (rot_id != pad_id)
continue;
415 int sourceIds = rdo -> getSourceid();
417 int hitRelBCID = rdo -> getHitRelBcids().at(
hits);
418 int hitpfebs = rdo -> getHitPfebs().at(
hits);
419 int hitTdsChannels = rdo->getHitTdsChannels().at(
hits);
421 std::optional<std::tuple<int, int, std::string, std::string, int>> statusPadEtaPhi =
getPadEtaPhiTuple(sourceIds, hitpfebs, hitTdsChannels);
422 if (!statusPadEtaPhi.has_value())
continue;
423 std::tuple<int, int, std::string, std::string, int> padEtaPhiTuple = statusPadEtaPhi.value();
425 int padPhi = std::get<0>(padEtaPhiTuple);
426 int padEta = std::get<1>(padEtaPhiTuple);
427 std::string sideName = std::get<2>(padEtaPhiTuple);
428 std::string sizeName = std::get<3>(padEtaPhiTuple);
429 int layer = std::get<4>(padEtaPhiTuple);
433 fill(
"padTriggerOccupancy", padPhiMon, padEtaMon);
438 fill(
"padTriggerShifter", hitRelBCIDmon, hitPfebsMon, sectorMon);
442 fill(
"padTriggerExpert", hitRelBCIDPerSectorMon, hitpfebsPerSectorMon);
◆ fillsTgcPadTriggerEfficiencyHistograms()
Definition at line 586 of file StgcRawDataMonAlg.cxx.
593 double recoMuonEta =
mu ->
eta();
594 double recoMuonPhi =
mu ->
phi();
596 std::string sideRecoMuon = GeometricSectors::sTgcSide[recoMuonEta > 0];
598 std::string minSideRecoMuon =
"", minSideTrigger =
"";
600 double minTriggerEta = 999., minTriggerPhi = 999.,
601 minRecoEta = 999., minRecoPhi = 999., minDeltaR = 999.;
603 auto minDeltaRtrigIt = -1;
607 bool largeSector = rdo -> largeSector();
608 std::string sideTrigger = GeometricSectors::sTgcSide[
sideA];
609 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
611 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
612 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
613 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
614 int sourceId = rdo -> getSourceid();
619 std::optional<double>
status =
bandId2eta(triggerBandIds, largeSector,
sideA, muonDetectorManagerObject);
620 if (!
status.has_value())
continue;
621 double triggerBandIdToEta =
status.value();
627 if (sideRecoMuon == sideTrigger) {
629 minSideRecoMuon = sideRecoMuon;
630 minSideTrigger = sideTrigger;
631 minTriggerEta = triggerBandIdToEta;
632 minTriggerPhi = triggerPhiIDtoPhi;
633 minRecoEta = recoMuonEta;
634 minRecoPhi = recoMuonPhi;
636 minDeltaRtrigIt = trigger;
642 bool muonRecoTriggerMatch =
false;
644 if (minDeltaRtrigIt != -1) {
646 muonRecoTriggerMatch =
true;
651 fill(
"Overview", deltaRmon);
655 fill(
"Overview", etaRecoMuonMon, phiRecoMuonMon);
659 fill(
"Overview", etaPadTriggerMon, phiPadTriggerMon);
663 fill(
"Overview", phiRecoMuonSidedMon, phiPadTriggerSidedMon);
668 fill(
"Overview", muonRecoTriggerMatchMon, etaRecoMuonEffMon, phiRecoMuonEffMon);
◆ filterPassed()
◆ GetEventInfo()
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
- Parameters
-
ctx | EventContext for the event |
- Returns
- a SG::ReadHandle<xAOD::EventInfo>
Definition at line 107 of file AthMonitorAlgorithm.cxx.
◆ getFEBs()
int sTgcRawDataMonAlg::getFEBs |
( |
int |
eta, |
|
|
int |
layers |
|
) |
| const |
|
private |
◆ getGroup()
Get a specific monitoring tool from the tool handle array.
Finds a specific GenericMonitoringTool instance from the list of monitoring tools (a ToolHandleArray). Throws a FATAL warning if the object found is empty.
- Parameters
-
name | string name of the desired tool |
- Returns
- reference to the desired monitoring tool
Definition at line 164 of file AthMonitorAlgorithm.cxx.
176 if (!isInitialized()) {
178 "It seems that the AthMonitorAlgorithm::initialize was not called "
179 "in derived class initialize method");
183 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
184 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
185 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
186 <<
"your python configuration and c++ filling code. Note: your available groups are {"
187 << available <<
"}.");
◆ getLayer()
int sTgcRawDataMonAlg::getLayer |
( |
const int |
multiplet, |
|
|
const int |
gasGap |
|
) |
| const |
|
private |
◆ getPadEtaPhiTuple()
std::optional< std::tuple< int, int, std::string, std::string, int > > sTgcRawDataMonAlg::getPadEtaPhiTuple |
( |
uint32_t |
sourceid, |
|
|
uint32_t |
pfeb, |
|
|
uint32_t |
tdschan |
|
) |
| const |
|
private |
Definition at line 96 of file StgcRawDataUtils.cxx.
100 const auto vmmchan = tdschan %
NVMMCHAN;
125 int padPhi =
help.padPhi(pad_id);
126 int padEta =
help.padEta(pad_id);
127 int padPhiMax =
help.padPhiMax();
128 int padEtaMax =
help.padEtaMax();
132 std::string sideName = (
side == 1) ?
"A" :
"C";
135 return std::make_optional(std::make_tuple(padPhiTotal, padEtaTotal, sideName, sizeName,
layer + 1));
◆ getPadId()
std::optional< Identifier > sTgcRawDataMonAlg::getPadId |
( |
uint32_t |
sourceid, |
|
|
uint32_t |
pfeb, |
|
|
uint32_t |
tdschan |
|
) |
| const |
|
private |
◆ getRotId()
Definition at line 88 of file StgcRawDataUtils.cxx.
90 if (!
status.has_value())
return std::nullopt;
91 std::tuple<Identifier, const Trk::RIO_OnTrack*> rotIDtuple =
status.value();
93 return std::make_optional(std::get<Identifier>(rotIDtuple));
◆ getRotIdAndRotObject()
Definition at line 66 of file StgcRawDataUtils.cxx.
69 Identifier surfaceId = (trkState) -> surface().associatedDetectorElementIdentifier();
73 if(!meas)
return std::nullopt;
76 if(!rot)
return std::nullopt;
85 return std::make_tuple(rot_id, rot);
◆ getSectors()
◆ getSignedPhiId()
int sTgcRawDataMonAlg::getSignedPhiId |
( |
const uint32_t |
phiid | ) |
const |
|
private |
Definition at line 36 of file StgcRawDataUtils.cxx.
38 constexpr
size_t nbitsPhi{5};
39 constexpr
size_t mask{(1 << nbitsPhi) - 1};
◆ getTrigDecisionTool()
Get the trigger decision tool member.
The trigger decision tool is used to check whether a specific trigger is passed by an event.
- Returns
- m_trigDecTool
Definition at line 194 of file AthMonitorAlgorithm.cxx.
◆ initialize()
StatusCode sTgcRawDataMonAlg::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ isClonable()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ parseList()
StatusCode AthMonitorAlgorithm::parseList |
( |
const std::string & |
line, |
|
|
std::vector< std::string > & |
result |
|
) |
| const |
|
virtualinherited |
Parse a string into a vector.
The input string is a single long string of all of the trigger names. It parses this string and turns it into a vector, where each element is one trigger or trigger category.
- Parameters
-
line | The input string. |
result | The parsed output vector of strings. |
- Returns
- StatusCode
Definition at line 341 of file AthMonitorAlgorithm.cxx.
343 std::stringstream
ss(
line);
347 while ( std::getline(
ss,
item,
',') ) {
348 std::stringstream iss(
item);
353 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ rPosAtNsw2eta()
◆ setFilterPassed()
◆ sourceidToSector()
int32_t sTgcRawDataMonAlg::sourceidToSector |
( |
uint32_t |
sourceid, |
|
|
bool |
isSideA |
|
) |
| const |
|
private |
Definition at line 31 of file StgcRawDataUtils.cxx.
32 uint32_t sectorNumber = sourceid & 0xf;
33 return (isSideA) ? sectorNumber + 1: -sectorNumber - 1;
◆ sysExecute()
Execute an algorithm.
We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.
Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
Override sysInitialize.
Override sysInitialize from the base class.
Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc
Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc
Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.
Reimplemented in InputMakerBase, and HypoBase.
Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ trigChainsArePassed()
bool AthMonitorAlgorithm::trigChainsArePassed |
( |
const std::vector< std::string > & |
vTrigNames | ) |
const |
|
inherited |
Check whether triggers are passed.
For the event, use the trigger decision tool to check that at least one of the triggers listed in the supplied vector is passed.
- Parameters
-
vTrigNames | List of trigger names. |
- Returns
- If empty input, default to true. If at least one trigger is specified, returns whether at least one trigger was passed.
Definition at line 199 of file AthMonitorAlgorithm.cxx.
203 if (vTrigNames.empty())
return true;
215 bool expressPass = passedBits & TrigDefs::Express_passed;
222 return group->isPassed();
◆ triggersectorphiid2phi()
double sTgcRawDataMonAlg::triggersectorphiid2phi |
( |
uint32_t |
sourceid, |
|
|
int |
trigger_phiid |
|
) |
| const |
|
private |
Sector 8 (A09/C09) is a special case, is where the phi changes sign (-pi to +pi)
Definition at line 187 of file StgcRawDataUtils.cxx.
189 double trigger_sector_phicenter = sectorMapping.
sectorPhi((sourceid & 0xf) + 1);
190 double trigger_phi = trigger_sector_phicenter + (trigger_phiid*9.)/1000.;
192 if((sourceid & 0xf) == 8 && trigger_phiid < 0) {
193 trigger_phi = -trigger_sector_phicenter + (trigger_phiid*9./1000.);
◆ updateVHKA()
◆ FIRSTPFEBVMM
constexpr uint32_t sTgcRawDataMonAlg::FIRSTPFEBVMM = 1 |
|
staticconstexprprivate |
◆ m_cutEtaDown
Gaudi::Property<double> sTgcRawDataMonAlg::m_cutEtaDown {this, "cutEtaDown", 1.3} |
|
private |
◆ m_cutEtaUp
Gaudi::Property<double> sTgcRawDataMonAlg::m_cutEtaUp {this, "cutEtaUp", 2.4} |
|
private |
◆ m_cutPt
Gaudi::Property<double> sTgcRawDataMonAlg::m_cutPt {this, "cutPt", 15000.} |
|
private |
◆ m_cutTriggerBandId
Gaudi::Property<int> sTgcRawDataMonAlg::m_cutTriggerBandId {this, "cutTriggerBandId", 255} |
|
private |
◆ m_cutTriggerPhiId
Gaudi::Property<int> sTgcRawDataMonAlg::m_cutTriggerPhiId {this, "cutTriggerPhiId", 63} |
|
private |
◆ m_dataType
◆ m_dataTypeStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_dataTypeStr {this,"DataType","userDefined"} |
|
protectedinherited |
◆ m_defaultLBDuration
Gaudi::Property<float> AthMonitorAlgorithm::m_defaultLBDuration {this,"DefaultLBDuration",60.} |
|
protectedinherited |
◆ m_detailLevel
Gaudi::Property<int> AthMonitorAlgorithm::m_detailLevel {this,"DetailLevel",0} |
|
protectedinherited |
◆ m_detectorManagerKey
◆ m_detStore
◆ m_DQFilterTools
ToolHandleArray<IDQFilterTool> AthMonitorAlgorithm::m_DQFilterTools {this,"FilterTools",{}} |
|
protectedinherited |
◆ m_dummy
◆ m_enforceExpressTriggers
Gaudi::Property<bool> AthMonitorAlgorithm::m_enforceExpressTriggers |
|
privateinherited |
Initial value:{this,
"EnforceExpressTriggers", false,
"Requires that matched triggers made the event enter the express stream"}
Definition at line 372 of file AthMonitorAlgorithm.h.
◆ m_environment
◆ m_environmentStr
Gaudi::Property<std::string> AthMonitorAlgorithm::m_environmentStr {this,"Environment","user"} |
|
protectedinherited |
Environment string pulled from the job option and converted to enum.
Definition at line 352 of file AthMonitorAlgorithm.h.
◆ m_EventInfoKey
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_fileKey
Gaudi::Property<std::string> AthMonitorAlgorithm::m_fileKey {this,"FileKey",""} |
|
protectedinherited |
◆ m_idHelperSvc
◆ m_lbDurationDataKey
◆ m_lumiDataKey
◆ m_meTrkKey
◆ m_minDeltaR
Gaudi::Property<double> sTgcRawDataMonAlg::m_minDeltaR {this, "minDeltaR", 0.1} |
|
private |
◆ m_muonKey
◆ m_name
std::string AthMonitorAlgorithm::m_name |
|
privateinherited |
◆ m_rdoKey
◆ m_residualPullCalculator
◆ m_sTgcContainerKey
◆ m_toolLookupMap
std::unordered_map<std::string, size_t> AthMonitorAlgorithm::m_toolLookupMap |
|
privateinherited |
◆ m_tools
◆ m_trigDecTool
◆ m_triggerChainString
Gaudi::Property<std::string> AthMonitorAlgorithm::m_triggerChainString {this,"TriggerChain",""} |
|
protectedinherited |
Trigger chain string pulled from the job option and parsed into a vector.
Definition at line 355 of file AthMonitorAlgorithm.h.
◆ m_trigLiveFractionDataKey
◆ m_useLumi
Gaudi::Property<bool> AthMonitorAlgorithm::m_useLumi {this,"EnableLumi",false} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_vTrigChainNames
std::vector<std::string> AthMonitorAlgorithm::m_vTrigChainNames |
|
protectedinherited |
◆ NVMMCHAN
The documentation for this class was generated from the following files:
xAOD::MuonContainer * muonContainer
constexpr uint8_t stationPhi
station Phi 1 to 8
std::optional< double > rPosAtNsw2eta(double rPosAtNSW, bool isA, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
const Identifier & identify(const UncalibratedMeasurement *meas)
Returns the associated identifier from the muon measurement.
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > m_sTgcContainerKey
Scalar phi() const
phi method
void fillsTgcEfficiencyHistograms(const xAOD::MuonContainer *, const MuonGM::MuonDetectorManager *) const
Gaudi::Property< int > m_cutTriggerPhiId
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
void fillsTgcPadTriggerEfficiencyHistograms(const xAOD::MuonContainer *, const Muon::NSW_PadTriggerDataContainer *, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
static uint32_t offlineStationPhi(const uint32_t sourceid)
Scalar eta() const
pseudorapidity method
Eigen::Matrix< double, 2, 1 > Vector2D
const Trk::TrackStates * trackStateOnSurfaces() const
return a pointer to a const DataVector of const TrackStateOnSurfaces.
static uint32_t offlineGasgap(const uint32_t pfeb)
static bool isLarge(const uint32_t sec)
static bool isA(const uint32_t sourceid)
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_meTrkKey
static uint32_t offlineMultilayer(const uint32_t pfeb)
Scalar theta() const
theta method
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
static uint32_t sector(const uint32_t sourceid)
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const std::vector< Identifier > & rdoList() const
return the List of rdo identifiers (pointers)
std::unordered_map< std::string, size_t > m_toolLookupMap
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
void fillsTgcPadTriggerDataHistograms(const xAOD::MuonContainer *, const Muon::NSW_PadTriggerDataContainer *, const int lb) const
static constexpr uint32_t FIRSTPFEBVMM
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
const std::string & key() const
Return the StoreGate ID for the referenced object.
def gap(flags, cells_name, *args, **kw)
bool is_valid() const
Check if id is in a valid state.
static double triggerBandIdToRadius(bool isLarge, int triggerBand)
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
static std::string offlineStationName(const uint32_t sec)
virtual void setOwner(IDataHandleHolder *o)=0
static uint32_t offlineChannelNumber(const uint32_t sec, const uint32_t pfeb, const uint32_t vmm, const uint32_t vmmchan)
const ToolHandle< GenericMonitoringTool > m_dummy
@ OFFLINE_CHANNEL_TYPE_PAD
int getSectors(const Identifier &id) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
ToolHandle< Trk::IResidualPullCalculator > m_residualPullCalculator
int getLayer(const int multiplet, const int gasGap) const
SG::ReadHandleKey< xAOD::MuonContainer > m_muonKey
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
static uint32_t layer(const uint32_t pfeb)
static uint32_t radius(const uint32_t pfeb)
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
int32_t sourceidToSector(uint32_t sourceid, bool isSideA) const
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Gaudi::Property< double > m_minDeltaR
double deltaR(double rapidity1, double phi1, double rapidity2, double phi2)
from bare bare rapidity,phi
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
void tolower(std::string &s)
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
An sTgcReadoutElement corresponds to a single STGC module; therefore typicaly a barrel muon station c...
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Gaudi::Property< int > m_cutTriggerBandId
double triggersectorphiid2phi(uint32_t sourceid, int trigger_phiid) const
double sectorPhi(int sector) const
returns the centeral phi position of a sector in radians
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
std::optional< Identifier > getPadId(uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const
int getFEBs(int eta, int layers) const
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detectorManagerKey
Template to hold collections of MuonPrepRawData objects.
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
int getSignedPhiId(const uint32_t phiid) const
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
Class to represent calibrated clusters formed from TGC strips.
Gaudi::Property< double > m_cutEtaDown
unsigned constexpr int sideA
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< double > m_cutEtaUp
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
void fillsTgcClusterFromTrackHistograms(const xAOD::TrackParticleContainer *) const
represents the track state (measurement, material, fit parameters and quality) at a surface.
std::optional< Identifier > getRotId(const Trk::TrackStateOnSurface *trkState) const
std::string to_string(const DetectorType &type)
Gaudi::Property< double > m_cutPt
Muon::MuonSectorMapping MuonSectorMapping
double charge(const T &p)
Gaudi::Property< bool > m_enforceExpressTriggers
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
virtual StatusCode initialize() override
initialize
accumulate
Update flags based on parser line args.
void fillsTgcLumiblockHistograms(const Muon::sTgcPrepDataContainer *, const int lb) const
def time(flags, cells_name, *args, **kw)
#define ATH_MSG_WARNING(x)
void fillsTgcOccupancyHistograms(const Muon::sTgcPrepDataContainer *, const MuonGM::MuonDetectorManager *) const
static constexpr uint32_t NVMMCHAN
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode sysInitialize() override
Override sysInitialize.
std::optional< double > band2eta(double rPosAtNSW, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
SG::ReadHandleKey< Muon::NSW_PadTriggerDataContainer > m_rdoKey
Class describing a TrackParticle.
Declare a monitored scalar variable.
constexpr uint8_t stationEta
1 to 3
std::optional< std::tuple< Identifier, const Trk::RIO_OnTrack * > > getRotIdAndRotObject(const Trk::TrackStateOnSurface *trkState) const
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
constexpr int pow(int base, int exp) noexcept
Class to represent sTgc measurements.
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
static uint32_t offlineStationAbsEta(const uint32_t pfeb)
std::optional< double > band2theta(double rPosAtNSW, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
std::optional< double > bandId2eta(int bandid, bool isLarge, bool isA, const MuonGM::MuonDetectorManager *muonDetectorManagerObject) const
std::optional< std::tuple< int, int, std::string, std::string, int > > getPadEtaPhiTuple(uint32_t sourceid, uint32_t pfeb, uint32_t tdschan) const
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
Muon::nsw::MapperSTG mapper