 |
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 208 of file StgcRawDataMonAlg.cxx.
212 if(!meTrack)
continue;
215 if (!
status.has_value())
continue;
216 std::tuple<Identifier, const Trk::RIO_OnTrack*> rotIDtuple =
status.value();
218 Identifier rot_id = std::get<Identifier>(rotIDtuple);
221 if(!cluster)
continue;
226 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
227 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
233 int iside = (stEta > 0) ? 1 : 0;
234 std::string
side = GeometricSectors::sTgcSide[iside];
235 std::string channelName =
"";
239 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) {
240 float padCharge = prd ->
charge();
244 short int padTiming = prd ->
time();
247 fill(
"sTgcTiming", padSectorSidedMon, padTimingMon);
251 fill(
"padTiming_quad_" +
std::to_string(std::abs(stEta)), padSectorSidedExpertMon, padTimingExpertMon);
257 fill(
"sTgcTiming", timeMon, febMon);
260 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
261 channelName =
"strip";
262 const std::vector<Identifier>& stripIds = prd->
rdoList();
263 unsigned int csize = stripIds.size();
265 std::vector<short int> stripTimesVec = prd -> stripTimes();
266 std::vector<int> stripChargesVec = prd -> stripCharges();
268 float stripClusterTimes = 0;
269 float stripClusterCharges = 0;
271 for (
unsigned int sIdx = 0; sIdx < csize; ++sIdx) {
272 stripClusterTimes += stripTimesVec.at(sIdx);
273 stripClusterCharges += stripChargesVec.at(sIdx);
276 stripClusterTimes /= stripTimesVec.size();
284 fill(
"sTgcTiming", stripClusterSectorSidedMon, stripClusterTimesMon);
285 fill(
"padTriggerShifter", stripClusterSectorSidedMon, stripClusterSizeMon);
291 fill(
"sTgcTiming", timeMon, febMon);
296 fill(
"stripTiming_quad_" +
std::to_string(std::abs(stEta)), stripSectorSidedExpertMon, stripTimingExpertMon);
299 std::optional<Trk::ResidualPull> resPull(
m_residualPullCalculator -> residualPull(trkState -> measurementOnTrack(), trkState -> trackParameters(), Trk::ResidualPull::ResidualType::Biased));
308 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
309 float wireGroupCharge = prd ->
charge();
313 short int wireGroupTiming = prd ->
time();
316 fill(
"sTgcTiming", wireGroupSectorSidedMon, wireGroupTimingMon);
320 fill(
"wireTiming_quad_" +
std::to_string(std::abs(stEta)), wireSectorSidedExpertMon, wireTimingExpertMon);
326 fill(
"sTgcTiming", timeMon, febMon);
◆ fillsTgcEfficiencyHistograms()
Definition at line 443 of file StgcRawDataMonAlg.cxx.
450 std::array<int, 8> quadMultiplet{};
451 std::array<int, 8> layerMultiplet{};
452 std::array<float, 8> xPosMultiplet{};
453 std::array<float, 8> yPosMultiplet{};
454 std::array<float, 8> zPosMultiplet{};
457 std::array<std::array<sTGCeff, 16>, 2> effPlots;
459 const xAOD::TrackParticle* meTP =
mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
460 if(meTP ==
nullptr)
continue;
463 if(!meTrack)
continue;
467 if (!
status.has_value())
continue;
471 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
472 if (channelType != sTgcIdHelper::sTgcChannelTypes::Strip)
continue;
474 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
475 int iside = (stEta > 0) ? 1 : 0;
481 const Amg::Vector2D& positionsMultiplet = (trkState) -> trackParameters() -> localPosition();
482 float xPosStripInMultipletLocal = positionsMultiplet.x();
483 float yPosStripInMultipletLocal = positionsMultiplet.y();
485 Amg::Vector2D localPos(xPosStripInMultipletLocal, yPosStripInMultipletLocal);
488 sTgcReadoutObjectStrip -> surface(rot_id).localToGlobal(localPos,
Amg::Vector3D::Zero(), globalPos);
489 float xPosStripInMultiplet = globalPos.x();
490 float yPosStripInMultiplet = globalPos.y();
493 (muonDetectorManagerObject -> getsTgcReadoutElement(rot_id)) -> stripGlobalPosition(rot_id, posStripGlobal);
494 float zPosStripInMultiplet = posStripGlobal.z();
496 auto& sTGCelements = effPlots[iside][sector - 1];
498 sTGCelements.quadMultiplet.at(
layer - 1) = stEta;
499 sTGCelements.layerMultiplet.at(
layer - 1) =
layer;
500 sTGCelements.xPosMultiplet.at(
layer - 1) = xPosStripInMultiplet;
501 sTGCelements.yPosMultiplet.at(
layer - 1) = yPosStripInMultiplet;
502 sTGCelements.zPosMultiplet.at(
layer - 1) = zPosStripInMultiplet;
505 for (
unsigned int isideIndex = 0; isideIndex <= 1; ++isideIndex) {
506 for (
unsigned int sectorIndex = 1; sectorIndex <= 16; ++sectorIndex) {
507 auto& sTGCelements = effPlots[isideIndex][sectorIndex - 1];
508 bool fourOutEight = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 4;
509 bool oneRefLayer = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 1;
512 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
513 if (sTGCelements.layerMultiplet.at(layerIndex - 1) == 0)
continue;
515 float xPos = sTGCelements.xPosMultiplet.at(layerIndex - 1);
516 float yPos = sTGCelements.yPosMultiplet.at(layerIndex - 1);
517 float rPos = std::hypot(xPos, yPos);
519 std::string
side = GeometricSectors::sTgcSide[isideIndex];
528 fill(
"padTriggerShifter", xPosStripmon, yPosStripmon, effQuestionMon);
532 else if (!fourOutEight && oneRefLayer) {
533 auto refLayerIndex =
std::distance(sTGCelements.layerMultiplet.begin(), std::find_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) {return i != 0;}));
535 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
536 if (sTGCelements.layerMultiplet.at(layerIndex - 1) != 0)
continue;
537 int quad = sTGCelements.quadMultiplet.at(refLayerIndex);
539 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());
542 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);
550 (muonDetectorManagerObject -> getsTgcReadoutElement(idProbe)) -> stripGlobalPosition(idProbe, posProbe);
551 float posZprobe = posProbe.z();
553 float xSlope = sTGCelements.xPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
554 float ySlope = sTGCelements.yPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
556 float xPos = sTGCelements.xPosMultiplet.at(refLayerIndex) + xSlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
557 float yPos = sTGCelements.yPosMultiplet.at(refLayerIndex) + ySlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
558 float rPos = std::hypot(xPos, yPos);
560 std::string
side = GeometricSectors::sTgcSide[isideIndex];
569 fill(
"padTriggerShifter", xPosStripProbemon, yPosStripProbemon, effQuestionMon);
◆ fillsTgcLumiblockHistograms()
Definition at line 168 of file StgcRawDataMonAlg.cxx.
181 int channelType =
m_idHelperSvc->stgcIdHelper().channelType(
id);
182 int multiplet =
m_idHelperSvc->stgcIdHelper().multilayer(
id);
191 std::string
side = GeometricSectors::sTgcSide[iside];
192 std::string channelName =
"";
195 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) channelName =
"pad";
196 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) channelName =
"strip";
197 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) channelName =
"wire";
202 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);
123 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
124 channelName =
"strip";
125 int stripNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
130 int maxStripNumberQ1 = sTgcReadoutObjectStripQ1 -> numberOfStrips(idStripQ1);
131 int maxStripNumberQ2 = sTgcReadoutObjectStripQ2 -> numberOfStrips(idStripQ2);
133 if (stationEtaAbs == 2) stripNumber = stripNumber + maxStripNumberQ1 + 1;
134 else if (stationEtaAbs == 3) stripNumber = stripNumber + maxStripNumberQ1 + maxStripNumberQ2 + 1;
138 fill(
"Occupancy", sectorMon, stripNumberMon);
141 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
142 channelName =
"wire";
143 int wireGroupNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
145 const MuonGM::sTgcReadoutElement* sTgcReadoutObjectWireGroupQ3 = muonDetectorManagerObject -> getsTgcReadoutElement(idWireGroupQ3);
146 int maxWireGroupNumberQ3 = sTgcReadoutObjectWireGroupQ3 -> numberOfStrips(idWireGroupQ3);
149 auto wireGroupNumberMon =
Monitored::Scalar<int>(
"wireGroupNumber_layer_" + layerStr, wireGroupNumber + (sector - 1)*maxWireGroupNumberQ3);
150 fill(
"Occupancy", stationEtaMon, wireGroupNumberMon);
155 fill(
"OccupancyShifter", layerMon, quadMon);
159 fill(
"Overview", sectorMon, febMon);
◆ fillsTgcPadTriggerDataHistograms()
Definition at line 333 of file StgcRawDataMonAlg.cxx.
337 bool largeSector = rdo -> largeSector();
339 int iside = (
sideA) ? 1 : 0;
340 int isize = (largeSector) ? 1 : 0;
342 std::string
side = GeometricSectors::sTgcSide[iside];
343 std::string
size = GeometricSectors::sTgcSize[isize];
345 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
346 size_t numberOfHits = rdo -> getNumberOfHits();
348 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
349 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
350 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
351 int triggerRelBCID = rdo -> getTriggerRelBcids().at(trigger);
352 int sourceId = rdo -> getSourceid();
361 fill(
"padTriggerShifter", phiIdsPerSideSizeMon, bandIdsPerSideSizeMon);
367 fill(
"padTriggerShifter", lbMon, relBCIDMon, sectorMon, numberOfTriggersMon);
374 fill(
"padTriggerExpert", numberOfTriggersPerSectorMon, phiIdsSidedSizedPerSectorMon, bandIdsSidedSizedPerSectorMon, lbPerSectorMon, relBCIDperSectorMon);
379 fill(
"padTriggerShifter", RelBCIDPerSectorMon, PhiIDPerSectorMon, BandIDPerSectorMon);
383 std::optional<Identifier>
status =
getPadId(rdo->getSourceid(), rdo->getHitPfebs().at(
hits), rdo->getHitTdsChannels().at(
hits));
384 if (!
status.has_value())
continue;
391 const xAOD::TrackParticle* meTP =
mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
392 if(meTP ==
nullptr)
continue;
395 if(!meTrack)
continue;
399 if (!
status.has_value())
continue;
402 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
403 if (channelType != sTgcIdHelper::sTgcChannelTypes::Pad)
continue;
406 if (rot_id != pad_id)
continue;
408 int sourceIds = rdo -> getSourceid();
410 int hitRelBCID = rdo -> getHitRelBcids().at(
hits);
411 int hitpfebs = rdo -> getHitPfebs().at(
hits);
412 int hitTdsChannels = rdo->getHitTdsChannels().at(
hits);
414 std::optional<std::tuple<int, int, std::string, std::string, int>> statusPadEtaPhi =
getPadEtaPhiTuple(sourceIds, hitpfebs, hitTdsChannels);
415 if (!statusPadEtaPhi.has_value())
continue;
416 std::tuple<int, int, std::string, std::string, int> padEtaPhiTuple = statusPadEtaPhi.value();
418 int padPhi = std::get<0>(padEtaPhiTuple);
419 int padEta = std::get<1>(padEtaPhiTuple);
420 std::string sideName = std::get<2>(padEtaPhiTuple);
421 std::string sizeName = std::get<3>(padEtaPhiTuple);
422 int layer = std::get<4>(padEtaPhiTuple);
426 fill(
"padTriggerOccupancy", padPhiMon, padEtaMon);
431 fill(
"padTriggerShifter", hitRelBCIDmon, hitPfebsMon, sectorMon);
435 fill(
"padTriggerShifter", hitRelBCIDPerSectorMon, hitpfebsPerSectorMon);
◆ fillsTgcPadTriggerEfficiencyHistograms()
Definition at line 578 of file StgcRawDataMonAlg.cxx.
585 double recoMuonEta =
mu ->
eta();
586 double recoMuonPhi =
mu ->
phi();
588 std::string sideRecoMuon = GeometricSectors::sTgcSide[recoMuonEta > 0];
590 std::string minSideRecoMuon =
"", minSideTrigger =
"";
592 double minTriggerEta = 999., minTriggerPhi = 999.,
593 minRecoEta = 999., minRecoPhi = 999., minDeltaR = 999.;
595 auto minDeltaRtrigIt = -1;
599 bool largeSector = rdo -> largeSector();
600 std::string sideTrigger = GeometricSectors::sTgcSide[
sideA];
601 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
603 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
604 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
605 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
606 int sourceId = rdo -> getSourceid();
611 std::optional<double>
status =
bandId2eta(triggerBandIds, largeSector,
sideA, muonDetectorManagerObject);
612 if (!
status.has_value())
continue;
613 double triggerBandIdToEta =
status.value();
619 if (sideRecoMuon == sideTrigger) {
621 minSideRecoMuon = sideRecoMuon;
622 minSideTrigger = sideTrigger;
623 minTriggerEta = triggerBandIdToEta;
624 minTriggerPhi = triggerPhiIDtoPhi;
625 minRecoEta = recoMuonEta;
626 minRecoPhi = recoMuonPhi;
628 minDeltaRtrigIt = trigger;
634 bool muonRecoTriggerMatch =
false;
636 if (minDeltaRtrigIt != -1) {
638 muonRecoTriggerMatch =
true;
643 fill(
"Overview", deltaRmon);
647 fill(
"Overview", etaRecoMuonMon, phiRecoMuonMon);
651 fill(
"Overview", etaPadTriggerMon, phiPadTriggerMon);
655 fill(
"Overview", phiRecoMuonSidedMon, phiPadTriggerSidedMon);
660 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