|
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 > &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 | 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 > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &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 147 of file StgcRawDataUtils.cxx.
148 std::optional<double>
status =
band2theta(rPosAtNSW, muonDetectorManagerObject);
149 if (!
status.has_value())
return std::nullopt;
151 if (!std::isnormal(
theta/2.))
return std::nullopt;
153 return std::make_optional(
eta);
◆ band2theta()
Definition at line 128 of file StgcRawDataUtils.cxx.
135 ATH_MSG_WARNING(
"Identifier for maximum value of NSW global Z-coordinate is invalid!");
140 (muonDetectorManagerObject -> getsTgcReadoutElement(maxNSWZid)) -> stripGlobalPosition(maxNSWZid, posNSW);
141 float posNSWZ = posNSW.z();
144 return std::make_optional(
theta);
◆ bandId2eta()
std::optional< double > sTgcRawDataMonAlg::bandId2eta |
( |
int |
bandid, |
|
|
bool |
isLarge, |
|
|
bool |
isA, |
|
|
const MuonGM::MuonDetectorManager * |
muonDetectorManagerObject |
|
) |
| const |
|
private |
◆ cardinality()
unsigned int AthReentrantAlgorithm::cardinality |
( |
| ) |
const |
|
overridevirtualinherited |
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 55 of file AthReentrantAlgorithm.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()
const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps |
( |
| ) |
const |
|
overridevirtualinherited |
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 79 of file AthReentrantAlgorithm.cxx.
86 return Algorithm::extraOutputDeps();
◆ 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;
73 return StatusCode::SUCCESS;
◆ fillsTgcClusterFromTrackHistograms()
Definition at line 229 of file StgcRawDataMonAlg.cxx.
232 if(!meTrack)
continue;
235 if (!
status.has_value())
continue;
236 std::tuple<Identifier, const Trk::RIO_OnTrack*> rotIDtuple =
status.value();
238 Identifier rot_id = std::get<Identifier>(rotIDtuple);
241 if(!cluster)
continue;
246 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
247 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
253 int iside = (stEta > 0) ? 1 : 0;
254 std::string
side = GeometricSectors::sTgcSide[iside];
256 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) {
257 float padCharge = prd ->
charge();
261 short int padTiming = prd ->
time();
264 fill(
"sTgcTiming", padSectorSidedMon, padTimingMon);
268 fill(
"padTiming_quad_" +
std::to_string(std::abs(stEta)), padSectorSidedExpertMon, padTimingExpertMon);
271 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
272 const std::vector<Identifier>& stripIds = prd->
rdoList();
273 unsigned int csize = stripIds.size();
275 std::vector<short int> stripTimesVec = prd -> stripTimes();
276 std::vector<int> stripChargesVec = prd -> stripCharges();
278 float stripClusterTimes = 0;
279 float stripClusterCharges = 0;
281 for (
unsigned int sIdx = 0; sIdx < csize; ++sIdx) {
282 stripClusterTimes += stripTimesVec.at(sIdx);
283 stripClusterCharges += stripChargesVec.at(sIdx);
286 stripClusterTimes /= stripTimesVec.size();
294 fill(
"sTgcTiming", stripClusterSectorSidedMon, stripClusterTimesMon);
295 fill(
"sTgcOverview", stripClusterSectorSidedMon, stripClusterTimesMon, stripClusterSizeMon);
299 fill(
"stripTiming_quad_" +
std::to_string(std::abs(stEta)), stripSectorSidedExpertMon, stripTimingExpertMon);
302 std::optional<Trk::ResidualPull> resPull(
m_residualPullCalculator -> residualPull(trkState -> measurementOnTrack(), trkState -> trackParameters(), Trk::ResidualPull::ResidualType::Biased));
311 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
312 float wireGroupCharge = prd ->
charge();
316 short int wireGroupTiming = prd ->
time();
319 fill(
"sTgcTiming", wireGroupSectorSidedMon, wireGroupTimingMon);
323 fill(
"wireTiming_quad_" +
std::to_string(std::abs(stEta)), wireSectorSidedExpertMon, wireTimingExpertMon);
◆ fillsTgcEfficiencyHistograms()
Definition at line 436 of file StgcRawDataMonAlg.cxx.
442 std::array<int, 8> quadMultiplet{};
443 std::array<int, 8> layerMultiplet{};
444 std::array<float, 8> xPosMultiplet{};
445 std::array<float, 8> yPosMultiplet{};
446 std::array<float, 8> zPosMultiplet{};
449 std::array<std::array<sTGCeff, 16>, 2> effPlots;
451 const xAOD::TrackParticle* meTP =
mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
452 if(meTP ==
nullptr)
continue;
455 if(!meTrack)
continue;
459 if (!
status.has_value())
continue;
463 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
464 if (channelType != sTgcIdHelper::sTgcChannelTypes::Strip)
continue;
466 int stEta =
m_idHelperSvc -> stgcIdHelper().stationEta(rot_id);
467 int iside = (stEta > 0) ? 1 : 0;
473 const Amg::Vector2D& positionsMultiplet = (trkState) -> trackParameters() -> localPosition();
474 float xPosStripInMultipletLocal = positionsMultiplet.x();
475 float yPosStripInMultipletLocal = positionsMultiplet.y();
477 Amg::Vector2D localPos(xPosStripInMultipletLocal, yPosStripInMultipletLocal);
480 sTgcReadoutObjectStrip -> surface(rot_id).localToGlobal(localPos,
Amg::Vector3D::Zero(), globalPos);
481 float xPosStripInMultiplet = globalPos.x();
482 float yPosStripInMultiplet = globalPos.y();
485 (muonDetectorManagerObject -> getsTgcReadoutElement(rot_id)) -> stripGlobalPosition(rot_id, posStripGlobal);
486 float zPosStripInMultiplet = posStripGlobal.z();
488 auto& sTGCelements = effPlots[iside][sector - 1];
490 sTGCelements.quadMultiplet.at(
layer - 1) = stEta;
491 sTGCelements.layerMultiplet.at(
layer - 1) =
layer;
492 sTGCelements.xPosMultiplet.at(
layer - 1) = xPosStripInMultiplet;
493 sTGCelements.yPosMultiplet.at(
layer - 1) = yPosStripInMultiplet;
494 sTGCelements.zPosMultiplet.at(
layer - 1) = zPosStripInMultiplet;
497 for (
unsigned int isideIndex = 0; isideIndex <= 1; ++isideIndex) {
498 for (
unsigned int sectorIndex = 1; sectorIndex <= 16; ++sectorIndex) {
499 auto& sTGCelements = effPlots[isideIndex][sectorIndex - 1];
500 bool fourOutEight = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 4;
501 bool oneRefLayer = std::count_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) { return i != 0; }) >= 1;
504 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
505 if (sTGCelements.layerMultiplet.at(layerIndex - 1) == 0)
continue;
507 float xPos = sTGCelements.xPosMultiplet.at(layerIndex - 1);
508 float yPos = sTGCelements.yPosMultiplet.at(layerIndex - 1);
509 float rPos = std::hypot(xPos, yPos);
511 std::string
side = GeometricSectors::sTgcSide[isideIndex];
520 fill(
"sTgcOverview", xPosStripmon, yPosStripmon, effQuestionMon);
524 else if (!fourOutEight && oneRefLayer) {
525 auto refLayerIndex =
std::distance(sTGCelements.layerMultiplet.begin(), std::find_if(sTGCelements.layerMultiplet.begin(), sTGCelements.layerMultiplet.end(), [](
int i) {return i != 0;}));
527 for (
auto layerIndex =
static_cast<std::array<int, 8>::size_type
>(1); layerIndex <= sTGCelements.layerMultiplet.size(); ++layerIndex) {
528 if (sTGCelements.layerMultiplet.at(layerIndex - 1) != 0)
continue;
529 int quad = sTGCelements.quadMultiplet.at(refLayerIndex);
531 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());
534 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);
542 (muonDetectorManagerObject -> getsTgcReadoutElement(idProbe)) -> stripGlobalPosition(idProbe, posProbe);
543 float posZprobe = posProbe.z();
545 float xSlope = sTGCelements.xPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
546 float ySlope = sTGCelements.yPosMultiplet.at(refLayerIndex)/sTGCelements.zPosMultiplet.at(refLayerIndex);
548 float xPos = sTGCelements.xPosMultiplet.at(refLayerIndex) + xSlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
549 float yPos = sTGCelements.yPosMultiplet.at(refLayerIndex) + ySlope*(posZprobe - sTGCelements.zPosMultiplet.at(refLayerIndex));
550 float rPos = std::hypot(xPos, yPos);
552 std::string
side = GeometricSectors::sTgcSide[isideIndex];
561 fill(
"sTgcOverview", xPosStripProbemon, yPosStripProbemon, effQuestionMon);
◆ fillsTgcLumiblockHistograms()
Definition at line 178 of file StgcRawDataMonAlg.cxx.
190 int multiplet =
m_idHelperSvc -> stgcIdHelper().multilayer(
id);
192 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(
id);
196 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) {
203 fill(
"sTgcLumiblock", padSectorGlobalMon, padLumiblockGlobalMon);
206 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
213 fill(
"sTgcLumiblock", stripSectorGlobalMon, stripLumiblockGlobalMon);
216 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
223 fill(
"sTgcLumiblock", wireSectorGlobalMon, wireLumiblockGlobalMon);
◆ fillsTgcOccupancyHistograms()
Definition at line 76 of file StgcRawDataMonAlg.cxx.
89 int multiplet =
m_idHelperSvc -> stgcIdHelper().multilayer(
id);
91 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(
id);
96 if (channelType == sTgcIdHelper::sTgcChannelTypes::Pad) {
102 int maxPadNumberQ1 = sTgcReadoutObjectPadQ1 -> maxPadNumber(idPadQ1);
103 int maxPadNumberQ2 = sTgcReadoutObjectPadQ2 -> maxPadNumber(idPadQ2);
108 fill(
"sTgcOccupancy", sectorMon, padNumberMon);
114 fill(
"sTgcOccupancy", sectorMon, padNumberMon);
120 fill(
"sTgcOccupancy", sectorMon, padNumberMon);
125 fill(
"sTgcQuadOccupancyPad", sectorSidedMon, stationEtaSidedMon);
128 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Strip) {
129 int stripNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
134 int maxStripNumberQ1 = sTgcReadoutObjectStripQ1 -> numberOfStrips(idStripQ1);
135 int maxStripNumberQ2 = sTgcReadoutObjectStripQ2 -> numberOfStrips(idStripQ2);
140 fill(
"sTgcOccupancy", sectorMon, stripNumberMon);
146 fill(
"sTgcOccupancy", sectorMon, stripNumberMon);
152 fill(
"sTgcOccupancy", sectorMon, stripNumberMon);
157 fill(
"sTgcQuadOccupancyStrip", sectorSidedMon, stationEtaSidedMon);
160 else if (channelType == sTgcIdHelper::sTgcChannelTypes::Wire) {
161 int wireGroupNumber =
m_idHelperSvc -> stgcIdHelper().channel(
id);
163 const MuonGM::sTgcReadoutElement* sTgcReadoutObjectWireGroupQ3 = muonDetectorManagerObject -> getsTgcReadoutElement(idWireGroupQ3);
164 int maxWireGroupNumberQ3 = sTgcReadoutObjectWireGroupQ3 -> numberOfStrips(idWireGroupQ3);
168 fill(
"sTgcOccupancy", stationEtaMon, wireGroupNumberMon);
172 fill(
"sTgcQuadOccupancyWire", sectorSidedMon, stationEtaSidedMon);
◆ fillsTgcPadTriggerDataHistograms()
Definition at line 329 of file StgcRawDataMonAlg.cxx.
334 const xAOD::TrackParticle* meTP =
mu -> trackParticle(xAOD::Muon::TrackParticleType::ExtrapolatedMuonSpectrometerTrackParticle);
335 if(meTP ==
nullptr)
continue;
338 if(!meTrack)
continue;
342 if (!
status.has_value())
continue;
345 int channelType =
m_idHelperSvc -> stgcIdHelper().channelType(rot_id);
346 if (channelType != sTgcIdHelper::sTgcChannelTypes::Pad)
continue;
350 bool largeSector = rdo -> largeSector();
352 int iside = (
sideA) ? 1 : 0;
353 int isize = (largeSector) ? 1 : 0;
355 std::string
side = GeometricSectors::sTgcSide[iside];
356 std::string
size = GeometricSectors::sTgcSize[isize];
358 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
359 size_t numberOfHits = rdo -> getNumberOfHits();
361 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
362 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
363 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
364 int triggerRelBCID = rdo -> getTriggerRelBcids().at(trigger);
365 int sourceId = rdo -> getSourceid();
374 fill(
"padTriggerShifter", phiIdsPerSideSizeMon, bandIdsPerSideSizeMon);
380 fill(
"padTriggerShifter", lbMon, relBCIDMon, sectorMon, numberOfTriggersMon);
387 fill(
"padTriggerExpert", numberOfTriggersPerSectorMon, phiIdsSidedSizedPerSectorMon, bandIdsSidedSizedPerSectorMon, lbPerSectorMon, relBCIDperSectorMon);
392 fill(
"padTriggerShifter", RelBCIDPerSectorMon, PhiIDPerSectorMon, BandIDPerSectorMon);
396 std::optional<Identifier>
status =
getPadId(rdo->getSourceid(), rdo->getHitPfebs().at(
hits), rdo->getHitTdsChannels().at(
hits));
397 if (!
status.has_value())
continue;
400 if (rot_id != pad_id)
continue;
402 int sourceIds = rdo -> getSourceid();
404 int hitRelBCID = rdo -> getHitRelBcids().at(
hits);
405 int hitpfebs = rdo -> getHitPfebs().at(
hits);
406 int hitTdsChannels = rdo->getHitTdsChannels().at(
hits);
408 std::optional<std::tuple<int, int, std::string, std::string, int>> statusPadEtaPhi =
getPadEtaPhiTuple(sourceIds, hitpfebs, hitTdsChannels);
409 if (!statusPadEtaPhi.has_value())
continue;
410 std::tuple<int, int, std::string, std::string, int> padEtaPhiTuple = statusPadEtaPhi.value();
412 int padPhi = std::get<0>(padEtaPhiTuple);
413 int padEta = std::get<1>(padEtaPhiTuple);
414 std::string sideName = std::get<2>(padEtaPhiTuple);
415 std::string sizeName = std::get<3>(padEtaPhiTuple);
416 int layer = std::get<4>(padEtaPhiTuple);
420 fill(
"padTriggerOccupancy", padPhiMon, padEtaMon);
425 fill(
"padTriggerShifter", hitRelBCIDmon, hitPfebsMon, sectorMon);
429 fill(
"padTriggerShifter", hitRelBCIDPerSectorMon, hitpfebsPerSectorMon);
◆ fillsTgcPadTriggerEfficiencyHistograms()
Definition at line 569 of file StgcRawDataMonAlg.cxx.
575 double recoMuonEta =
mu ->
eta();
576 double recoMuonPhi =
mu ->
phi();
578 std::string sideRecoMuon = GeometricSectors::sTgcSide[recoMuonEta > 0];
580 std::string minSideRecoMuon =
"", minSideTrigger =
"";
582 double minTriggerEta = 999., minTriggerPhi = 999.,
583 minRecoEta = 999., minRecoPhi = 999., minDeltaR = 999.;
585 auto minDeltaRtrigIt = -1;
589 bool largeSector = rdo -> largeSector();
590 std::string sideTrigger = GeometricSectors::sTgcSide[
sideA];
591 size_t numberOfTriggers = rdo -> getNumberOfTriggers();
593 for (
size_t trigger = 0; trigger < numberOfTriggers; ++trigger) {
594 int triggerPhiIdsUnsigned = rdo -> getTriggerPhiIds().at(trigger);
595 int triggerBandIds = rdo -> getTriggerBandIds().at(trigger);
596 int sourceId = rdo -> getSourceid();
601 std::optional<double>
status =
bandId2eta(triggerBandIds, largeSector,
sideA, muonDetectorManagerObject);
602 if (!
status.has_value())
continue;
603 double triggerBandIdToEta =
status.value();
609 if (sideRecoMuon == sideTrigger) {
611 minSideRecoMuon = sideRecoMuon;
612 minSideTrigger = sideTrigger;
613 minTriggerEta = triggerBandIdToEta;
614 minTriggerPhi = triggerPhiIDtoPhi;
615 minRecoEta = recoMuonEta;
616 minRecoPhi = recoMuonPhi;
618 minDeltaRtrigIt = trigger;
624 bool muonRecoTriggerMatch =
false;
626 if (minDeltaRtrigIt != -1) {
628 muonRecoTriggerMatch =
true;
633 fill(
"sTgcOverview", deltaRmon);
637 fill(
"sTgcOverview", etaRecoMuonMon, phiRecoMuonMon);
641 fill(
"sTgcOverview", etaPadTriggerMon, phiPadTriggerMon);
645 fill(
"sTgcOverview", phiRecoMuonSidedMon, phiPadTriggerSidedMon);
650 fill(
"sTgcOverview", muonRecoTriggerMatchMon, etaRecoMuonEffMon, phiRecoMuonEffMon);
654 fill(
"sTgcOverview", muonRecoTriggerMatchSidedMon, phiRecoMuonEffSidedMon);
◆ filterPassed()
virtual bool AthReentrantAlgorithm::filterPassed |
( |
const EventContext & |
ctx | ) |
const |
|
inlinevirtualinherited |
◆ 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.
◆ 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.
171 if (!isInitialized()) {
173 "It seems that the AthMonitorAlgorithm::initialize was not called "
174 "in derived class initialize method");
178 [](
const std::string&
s,
auto h) { return s +
"," + h.first; });
179 ATH_MSG_FATAL(
"The tool " <<
name <<
" could not be found in the tool array of the "
180 <<
"monitoring algorithm " <<
m_name <<
". This probably reflects a discrepancy between "
181 <<
"your python configuration and c++ filling code. Note: your available groups are {"
182 << 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 86 of file StgcRawDataUtils.cxx.
90 const auto vmmchan = tdschan %
NVMMCHAN;
115 int padPhi =
help.padPhi(pad_id);
116 int padEta =
help.padEta(pad_id);
117 int padPhiMax =
help.padPhiMax();
118 int padEtaMax =
help.padEtaMax();
122 std::string sideName = (
side == 1) ?
"A" :
"C";
125 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 78 of file StgcRawDataUtils.cxx.
80 if (!
status.has_value())
return std::nullopt;
81 std::tuple<Identifier, const Trk::RIO_OnTrack*> rotIDtuple =
status.value();
83 return std::make_optional(std::get<Identifier>(rotIDtuple));
◆ getRotIdAndRotObject()
Definition at line 56 of file StgcRawDataUtils.cxx.
59 Identifier surfaceId = (trkState) -> surface().associatedDetectorElementIdentifier();
63 if(!meas)
return std::nullopt;
66 if(!rot)
return std::nullopt;
75 return std::make_tuple(rot_id, rot);
◆ getSectors()
◆ getSignedPhiId()
int sTgcRawDataMonAlg::getSignedPhiId |
( |
const uint32_t |
phiid | ) |
const |
|
private |
Definition at line 26 of file StgcRawDataUtils.cxx.
28 constexpr
size_t nbitsPhi{5};
29 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 189 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()
bool AthReentrantAlgorithm::isClonable |
( |
| ) |
const |
|
overridevirtualinherited |
Specify if the algorithm is clonable.
Reentrant algorithms are clonable.
Reimplemented in Simulation::BeamEffectsAlg, InDet::SiTrackerSpacePointFinder, InDet::SCT_Clusterization, InDet::SiSPSeededTrackFinder, SCTRawDataProvider, InDet::GNNSeedingTrackMaker, SCT_PrepDataToxAOD, RoIBResultToxAOD, SCT_CablingCondAlgFromCoraCool, SCT_ReadCalibDataTestAlg, SCT_CablingCondAlgFromText, InDet::SiSPGNNTrackMaker, SCT_ReadCalibChipDataTestAlg, SCT_TestCablingAlg, SCT_ConfigurationConditionsTestAlg, ITkPixelCablingAlg, ITkStripCablingAlg, SCTEventFlagWriter, SCT_ConditionsSummaryTestAlg, SCT_ModuleVetoTestAlg, SCT_MonitorConditionsTestAlg, SCT_LinkMaskingTestAlg, SCT_MajorityConditionsTestAlg, SCT_RODVetoTestAlg, SCT_SensorsTestAlg, SCT_TdaqEnabledTestAlg, SCT_SiliconConditionsTestAlg, SCTSiLorentzAngleTestAlg, SCT_ByteStreamErrorsTestAlg, SCT_ConditionsParameterTestAlg, SCT_FlaggedConditionTestAlg, SCT_StripVetoTestAlg, SCT_RawDataToxAOD, and SCTSiPropertiesTestAlg.
Definition at line 44 of file AthReentrantAlgorithm.cxx.
◆ 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 336 of file AthMonitorAlgorithm.cxx.
338 std::stringstream
ss(
line);
342 while ( std::getline(
ss,
item,
',') ) {
343 std::stringstream iss(
item);
348 return StatusCode::SUCCESS;
◆ renounce()
◆ renounceArray()
◆ rPosAtNsw2eta()
◆ setFilterPassed()
virtual void AthReentrantAlgorithm::setFilterPassed |
( |
bool |
state, |
|
|
const EventContext & |
ctx |
|
) |
| const |
|
inlinevirtualinherited |
◆ sourceidToSector()
int32_t sTgcRawDataMonAlg::sourceidToSector |
( |
uint32_t |
sourceid, |
|
|
bool |
isSideA |
|
) |
| const |
|
private |
Definition at line 21 of file StgcRawDataUtils.cxx.
22 uint32_t sectorNumber = sourceid & 0xf;
23 return (isSideA) ? sectorNumber + 1: -sectorNumber - 1;
◆ sysExecute()
StatusCode AthReentrantAlgorithm::sysExecute |
( |
const EventContext & |
ctx | ) |
|
|
overridevirtualinherited |
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 67 of file AthReentrantAlgorithm.cxx.
69 return Gaudi::Algorithm::sysExecute (ctx);
◆ sysInitialize()
StatusCode AthReentrantAlgorithm::sysInitialize |
( |
| ) |
|
|
overridevirtualinherited |
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 96 of file AthReentrantAlgorithm.cxx.
107 if ( cs.retrieve().isFailure() ) {
109 return StatusCode::SUCCESS;
111 if (cs->regHandle(
this,*
h).isFailure()) {
112 sc = StatusCode::FAILURE;
113 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 194 of file AthMonitorAlgorithm.cxx.
198 if (vTrigNames.empty())
return true;
210 bool expressPass = passedBits & TrigDefs::Express_passed;
217 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 177 of file StgcRawDataUtils.cxx.
179 double trigger_sector_phicenter = sectorMapping.
sectorPhi((sourceid & 0xf) + 1);
180 double trigger_phi = trigger_sector_phicenter + (trigger_phiid*9.)/1000.;
182 if((sourceid & 0xf) == 8 && trigger_phiid < 0) {
183 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
DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects |
|
privateinherited |
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 153 of file AthReentrantAlgorithm.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
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
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
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)
bool accumulate(AccumulateMap &map, std::vector< module_t > const &modules, FPGATrackSimMatrixAccumulator const &acc)
Accumulates an accumulator (e.g.
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)
Identifier identify(const UncalibratedMeasurement *meas)
Returns the associated identifier.
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
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
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
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.
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...
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
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.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
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
virtual StatusCode sysInitialize() override
Override sysInitialize.
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
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.
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
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
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
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