ATLAS Offline Software
AthMonitorAlgorithm.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
7 
8 AthMonitorAlgorithm::AthMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator )
9 :AthReentrantAlgorithm(name,pSvcLocator)
10  // Put this here rather than in the header to allow forward-declaring
11  // TrigDecisionTool.
12 ,m_trigDecTool{this, "TrigDecisionTool",""}
13 ,m_environment(Environment_t::user)
14 ,m_dataType(DataType_t::userDefined)
15 ,m_vTrigChainNames({})
16 {}
17 
18 
20 
21 
23  StatusCode sc;
24 
25  // ROOT global histogram flag: off (not thread-safe to have it on)
26  TH1::AddDirectory(kFALSE);
27 
28  // Retrieve the generic monitoring tools (a ToolHandleArray)
29  if ( !m_tools.empty() ) {
30  ATH_CHECK( m_tools.retrieve() );
31  for (size_t idx = 0; idx < m_tools.size(); ++idx) {
32  if (m_tools[idx].empty()) {
33  ATH_MSG_FATAL("Encountered empty ToolHandle");
34  return StatusCode::FAILURE;
35  }
36  std::string name(m_tools[idx].name());
38  }
39  }
40 
41  // Retrieve the trigger decision tool if requested
42  if ( !m_trigDecTool.empty() ) {
43  ATH_CHECK( m_trigDecTool.retrieve() );
44  ATH_MSG_DEBUG( "TDT retrieved" );
45 
46  // If the trigger chain is specified, parse it into a list.
47  if ( !m_triggerChainString.empty() ) {
49  if ( !sc.isSuccess() ) {
50  ATH_MSG_WARNING("Error parsing trigger chain list, using empty list instead.");
51  m_vTrigChainNames.clear();
52  }
53  }
54  } else sc = StatusCode::SUCCESS;
55 
56  // Retrieve filters
57  ATH_CHECK( m_DQFilterTools.retrieve() );
58 
59  // Convert the data type and environment strings from the python configuration into the
60  // enum class types DataType_t and Environment_t
63 
67 
68  // get event info key
70 
71  // end of initialization
72  ATH_MSG_DEBUG("Exiting AthMonitorAlgorithm::initialize() successfully.");
73  return sc;
74 }
75 
76 
77 StatusCode AthMonitorAlgorithm::execute( const EventContext& ctx ) const {
78 
79  // Checks that all of the DQ filters are passed. If any one of the filters
80  // fails, return SUCCESS code and do not fill the histograms with the event.
81  for ( const auto& filterItr : m_DQFilterTools ) {
82  if (!filterItr->accept()) {
83  ATH_MSG_DEBUG("Event rejected due to filter tool.");
84  return StatusCode::SUCCESS;
85  }
86  }
87 
88  // Trigger: If there is a decision tool and the chains fail, skip the event.
90  ATH_MSG_DEBUG("Event rejected due to trigger filter.");
91  return StatusCode::SUCCESS;
92  }
93 
94  ATH_MSG_DEBUG("Event accepted!");
95  return fillHistograms(ctx);
96 }
97 
98 
99 void AthMonitorAlgorithm::fill( const ToolHandle<GenericMonitoringTool>& groupHandle,
100  MonVarVec_t&& variables ) const {
101  Monitored::Group(groupHandle,std::move(variables)).fill();
102 }
103 
104 
105 void AthMonitorAlgorithm::fill( const std::string& groupName,
106  MonVarVec_t&& variables ) const {
107  this->fill(getGroup(groupName),std::move(variables));
108 }
109 
110 
113 }
114 
115 
117  // convert the string to all lowercase
118  std::string lowerCaseStr = str;
119  std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower);
120 
121  // check if it matches one of the enum choices
122  if( lowerCaseStr == "user" ) {
123  return Environment_t::user;
124  } else if( lowerCaseStr == "online" ) {
125  return Environment_t::online;
126  } else if( lowerCaseStr == "tier0" ) {
127  return Environment_t::tier0;
128  } else if( lowerCaseStr == "tier0raw" ) {
130  } else if( lowerCaseStr == "tier0esd" ) {
132  } else if( lowerCaseStr == "aod" ) {
133  return Environment_t::AOD;
134  } else if( lowerCaseStr == "altprod" ) {
135  return Environment_t::altprod;
136  } else { // otherwise, warn the user and return "user"
137  ATH_MSG_WARNING("AthMonitorAlgorithm::envStringToEnum(): Unknown environment "
138  <<str<<", returning user.");
139  return Environment_t::user;
140  }
141 }
142 
143 
145  // convert the string to all lowercase
146  std::string lowerCaseStr = str;
147  std::transform(lowerCaseStr.begin(), lowerCaseStr.end(), lowerCaseStr.begin(), ::tolower);
148 
149  // check if it matches one of the enum choices
150  if( lowerCaseStr == "userdefined" ) {
152  } else if( lowerCaseStr == "montecarlo" ) {
153  return DataType_t::monteCarlo;
154  } else if( lowerCaseStr == "collisions" ) {
155  return DataType_t::collisions;
156  } else if( lowerCaseStr == "cosmics" ) {
157  return DataType_t::cosmics;
158  } else if( lowerCaseStr == "heavyioncollisions" ) {
160  } else { // otherwise, warn the user and return "userDefined"
161  ATH_MSG_WARNING("AthMonitorAlgorithm::dataTypeStringToEnum(): Unknown data type "
162  <<str<<", returning userDefined.");
164  }
165 }
166 
167 
168 const ToolHandle<GenericMonitoringTool>& AthMonitorAlgorithm::getGroup( const std::string& name ) const {
169  // get the pointer to the tool, and check that it exists
170  auto idx = m_toolLookupMap.find(name);
171  if (ATH_LIKELY(idx != m_toolLookupMap.end())) {
172  return m_tools[idx->second];
173  }
174  else {
175  // treat empty tool handle case as in Monitored::Group
176  if (m_toolLookupMap.empty()) {
177  return m_dummy;
178  }
179 
180  if (!isInitialized()) {
182  "It seems that the AthMonitorAlgorithm::initialize was not called "
183  "in derived class initialize method");
184  } else {
185  std::string available = std::accumulate(
186  m_toolLookupMap.begin(), m_toolLookupMap.end(), std::string(""),
187  [](const std::string& s, auto h) { return s + "," + h.first; });
188  ATH_MSG_FATAL("The tool " << name << " could not be found in the tool array of the "
189  << "monitoring algorithm " << m_name << ". This probably reflects a discrepancy between "
190  << "your python configuration and c++ filling code. Note: your available groups are {"
191  << available << "}.");
192  }
193  }
194  return m_dummy;
195 }
196 
197 
198 const ToolHandle<Trig::TrigDecisionTool>& AthMonitorAlgorithm::getTrigDecisionTool() const {
199  return m_trigDecTool;
200 }
201 
202 
203 bool AthMonitorAlgorithm::trigChainsArePassed( const std::vector<std::string>& vTrigNames ) const {
204 
205 
206  // If no triggers were given, return true.
207  if (vTrigNames.empty()) return true;
208 
209 
210  // Trigger: Check if this Algorithm is being run as an Express Stream job.
211  // Events are entering the express stream are chosen randomly, and by chain,
212  // Hence an additional check should be aplied to see if the chain(s)
213  // monitored here are responsible for the event being selected for
214  // the express stream.
215 
216  const auto group = m_trigDecTool->getChainGroup(vTrigNames);
218  const auto passedBits = m_trigDecTool->isPassedBits(group);
219  bool expressPass = passedBits & TrigDefs::Express_passed; //bitwise AND
220  if(!expressPass) {
221  return false;
222  }
223  }
224 
225  // monitor the event if any of the chains in the chain group passes the event.
226  return group->isPassed();
227 
228 }
229 
230 
231 float AthMonitorAlgorithm::lbAverageInteractionsPerCrossing (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
232 {
233  if (!m_lumiDataKey.empty()) {
235  return lumi->lbAverageInteractionsPerCrossing();
236  } else {
237  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbAverageInteractionsPerCrossing() - luminosity tools are not retrieved.");
238  return -1.0;
239  }
240 }
241 
242 
243 float AthMonitorAlgorithm::lbInteractionsPerCrossing (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
244 {
245  if (!m_lumiDataKey.empty()) {
247  float muToLumi = lumi->muToLumi();
248  if (muToLumi > 0) {
249  return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id()) / muToLumi;
250  }
251  return 0;
252  } else {
253  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbInteractionsPerCrossing() - luminosity tools are not retrieved.");
254  return -1.0;
255  }
256 }
257 
258 
259 float AthMonitorAlgorithm::lbAverageLuminosity (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
260 {
261  if (!m_lumiDataKey.empty()) {
263  return lumi->lbAverageLuminosity();
264  } else {
265  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbAverageLuminosity() - luminosity tools are not retrieved.");
266  return -1.0;
267  }
268 }
269 
270 
271 float AthMonitorAlgorithm::lbLuminosityPerBCID (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
272 {
273  if (!m_lumiDataKey.empty()) {
275  return lumi->lbLuminosityPerBCIDVector().at (ctx.eventID().bunch_crossing_id());
276  } else {
277  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbLuminosityPerBCID() - luminosity tools are not retrieved.");
278  return -1.0;
279  }
280 }
281 
282 
283 float AthMonitorAlgorithm::lbAverageLivefraction (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
284 {
287  return 1.0;
288  }
289 
292  return live->lbAverageLiveFraction();
293  } else {
294  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbAverageLivefraction() - luminosity not available.");
295  return -1.0;
296  }
297 }
298 
299 
300 float AthMonitorAlgorithm::livefractionPerBCID (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
301 {
304  return 1.0;
305  }
306 
309  return live->l1LiveFractionVector().at (ctx.eventID().bunch_crossing_id());
310  } else {
311  ATH_MSG_DEBUG("AthMonitorAlgorithm::livefractionPerBCID() - luminosity not available.");
312  return -1.0;
313  }
314 }
315 
316 
317 double AthMonitorAlgorithm::lbLumiWeight (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
318 {
319  if (!m_lumiDataKey.empty()) {
320  return (lbAverageLuminosity(ctx)*lbDuration(ctx))*lbAverageLivefraction(ctx);
321  } else {
322  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbLumiWeight() - luminosity tools are not retrieved.");
323  return -1.0;
324  }
325 }
326 
327 
328 double AthMonitorAlgorithm::lbDuration (const EventContext& ctx /*= Gaudi::Hive::currentContext()*/) const
329 {
332  return m_defaultLBDuration;
333  }
334 
335  if (!m_lbDurationDataKey.empty()) {
337  return dur->lbDuration();
338  } else {
339  ATH_MSG_DEBUG("AthMonitorAlgorithm::lbDuration() - luminosity tools are not retrieved.");
340  return m_defaultLBDuration;
341  }
342 }
343 
344 
345 StatusCode AthMonitorAlgorithm::parseList(const std::string& line, std::vector<std::string>& result) const {
346  std::string item;
347  std::stringstream ss(line);
348 
349  ATH_MSG_DEBUG( "AthMonitorAlgorithm::parseList()" );
350 
351  while ( std::getline(ss, item, ',') ) {
352  std::stringstream iss(item); // remove whitespace
353  iss >> item;
354  result.push_back(item);
355  }
356 
357  return StatusCode::SUCCESS;
358 }
AthMonitorAlgorithm::livefractionPerBCID
virtual float livefractionPerBCID(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the live fraction per bunch crossing ID.
Definition: AthMonitorAlgorithm.cxx:300
AthMonitorAlgorithm::Environment_t::tier0Raw
@ tier0Raw
AthMonitorAlgorithm::m_dataTypeStr
Gaudi::Property< std::string > m_dataTypeStr
DataType string pulled from the job option and converted to enum.
Definition: AthMonitorAlgorithm.h:358
AthMonitorAlgorithm::lbInteractionsPerCrossing
virtual float lbInteractionsPerCrossing(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate instantaneous number of interactions, i.e.
Definition: AthMonitorAlgorithm.cxx:243
AthMonitorAlgorithm::lbLumiWeight
virtual double lbLumiWeight(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average integrated luminosity multiplied by the live fraction.
Definition: AthMonitorAlgorithm.cxx:317
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
TrigDefs::Group
Group
Properties of a chain group.
Definition: GroupProperties.h:13
AthMonitorAlgorithm::m_environmentStr
Gaudi::Property< std::string > m_environmentStr
Environment string pulled from the job option and converted to enum.
Definition: AthMonitorAlgorithm.h:357
AthMonitorAlgorithm::lbAverageLuminosity
virtual float lbAverageLuminosity(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate average luminosity (in ub-1 s-1 => 10^30 cm-2 s-1).
Definition: AthMonitorAlgorithm.cxx:259
get_generator_info.result
result
Definition: get_generator_info.py:21
checkCoolLatestUpdate.variables
variables
Definition: checkCoolLatestUpdate.py:12
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
SG::ReadCondHandle
Definition: ReadCondHandle.h:40
AthMonitorAlgorithm::m_trigDecTool
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
Definition: AthMonitorAlgorithm.h:345
AthMonitorAlgorithm::Environment_t::tier0
@ tier0
AthMonitorAlgorithm::Environment_t::AOD
@ AOD
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
runITkAlign.accumulate
accumulate
Update flags based on parser line args.
Definition: runITkAlign.py:62
AthMonitorAlgorithm::m_triggerChainString
Gaudi::Property< std::string > m_triggerChainString
Trigger chain string pulled from the job option and parsed into a vector.
Definition: AthMonitorAlgorithm.h:360
RunTileMonitoring.groupName
groupName
Definition: RunTileMonitoring.py:158
AthMonitorAlgorithm::m_vTrigChainNames
std::vector< std::string > m_vTrigChainNames
Vector of trigger chain names parsed from trigger chain string.
Definition: AthMonitorAlgorithm.h:361
WriteBchToCrest.user
user
Definition: WriteBchToCrest.py:75
AthMonitorAlgorithm::m_EventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_EventInfoKey
Key for retrieving EventInfo from StoreGate.
Definition: AthMonitorAlgorithm.h:367
AthMonitorAlgorithm::getTrigDecisionTool
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool() const
Get the trigger decision tool member.
Definition: AthMonitorAlgorithm.cxx:198
AthMonitorAlgorithm::m_toolLookupMap
std::unordered_map< std::string, size_t > m_toolLookupMap
Definition: AthMonitorAlgorithm.h:372
AthMonitorAlgorithm::m_environment
AthMonitorAlgorithm::Environment_t m_environment
Instance of the Environment_t enum.
Definition: AthMonitorAlgorithm.h:355
TrigDecisionTool.h
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
dq_defect_bulk_create_defects.line
line
Definition: dq_defect_bulk_create_defects.py:27
AthMonitorAlgorithm::trigChainsArePassed
bool trigChainsArePassed(const std::vector< std::string > &vTrigNames) const
Check whether triggers are passed.
Definition: AthMonitorAlgorithm.cxx:203
AthMonitorAlgorithm::Environment_t::user
@ user
TrigLiveFractionCondData::lbAverageLiveFraction
float lbAverageLiveFraction(bool highPriority=true) const
Luminosity-averaged live fraction over all physics BCIDs.
Definition: TrigLiveFractionCondData.cxx:66
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthMonitorAlgorithm::m_dummy
const ToolHandle< GenericMonitoringTool > m_dummy
Definition: AthMonitorAlgorithm.h:374
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
AthMonitorAlgorithm::lbLuminosityPerBCID
virtual float lbLuminosityPerBCID(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the instantaneous luminosity per bunch crossing.
Definition: AthMonitorAlgorithm.cxx:271
PyPoolBrowser.item
item
Definition: PyPoolBrowser.py:129
AthMonitorAlgorithm::m_DQFilterTools
ToolHandleArray< IDQFilterTool > m_DQFilterTools
Array of Data Quality filter tools.
Definition: AthMonitorAlgorithm.h:346
AthMonitorAlgorithm::dataTypeStringToEnum
DataType_t dataTypeStringToEnum(const std::string &str) const
Convert the data type string from the python configuration to an enum object.
Definition: AthMonitorAlgorithm.cxx:144
AthMonitorAlgorithm::~AthMonitorAlgorithm
virtual ~AthMonitorAlgorithm()
Destructor.
Definition: AthMonitorAlgorithm.cxx:19
AthMonitorAlgorithm::DataType_t::heavyIonCollisions
@ heavyIonCollisions
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthMonitorAlgorithm.h
tolower
void tolower(std::string &s)
Definition: AthenaSummarySvc.cxx:108
python.CaloAddPedShiftConfig.str
str
Definition: CaloAddPedShiftConfig.py:42
AthMonitorAlgorithm::m_defaultLBDuration
Gaudi::Property< float > m_defaultLBDuration
Default duration of one lumi block.
Definition: AthMonitorAlgorithm.h:365
AthMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const =0
adds event to the monitoring histograms
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
AthMonitorAlgorithm::DataType_t
DataType_t
Specifies what type of input data is being monitored.
Definition: AthMonitorAlgorithm.h:194
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthMonitorAlgorithm::execute
virtual StatusCode execute(const EventContext &ctx) const override
Applies filters and trigger requirements.
Definition: AthMonitorAlgorithm.cxx:77
AthMonitorAlgorithm::fill
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.
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
AthMonitorAlgorithm::GetEventInfo
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
Definition: AthMonitorAlgorithm.cxx:111
AthMonitorAlgorithm::Environment_t
Environment_t
Specifies the processing environment.
Definition: AthMonitorAlgorithm.h:175
TrigLiveFractionCondData::l1LiveFractionVector
const std::vector< float > & l1LiveFractionVector(bool highPriority=true) const
Return vector with all BCIDs indexed by BCID number.
Definition: TrigLiveFractionCondData.cxx:42
AthMonitorAlgorithm::m_dataType
AthMonitorAlgorithm::DataType_t m_dataType
Instance of the DataType_t enum.
Definition: AthMonitorAlgorithm.h:356
AthMonitorAlgorithm::DataType_t::cosmics
@ cosmics
LBDurationCondData::lbDuration
double lbDuration() const
Definition: LBDurationCondData.cxx:27
AthMonitorAlgorithm::m_tools
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
Definition: AthMonitorAlgorithm.h:341
AthMonitorAlgorithm::Environment_t::online
@ online
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
AthMonitorAlgorithm::lbAverageLivefraction
virtual float lbAverageLivefraction(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average luminosity livefraction.
Definition: AthMonitorAlgorithm.cxx:283
AthMonitorAlgorithm::Environment_t::tier0ESD
@ tier0ESD
AthMonitorAlgorithm::Environment_t::altprod
@ altprod
AthMonitorAlgorithm::m_enforceExpressTriggers
Gaudi::Property< bool > m_enforceExpressTriggers
Definition: AthMonitorAlgorithm.h:377
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
AthMonitorAlgorithm::lbAverageInteractionsPerCrossing
virtual float lbAverageInteractionsPerCrossing(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the average mu, i.e.
Definition: AthMonitorAlgorithm.cxx:231
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:22
AthMonitorAlgorithm::m_lumiDataKey
SG::ReadCondHandleKey< LuminosityCondData > m_lumiDataKey
Definition: AthMonitorAlgorithm.h:349
ATH_LIKELY
#define ATH_LIKELY(x)
Definition: AthUnlikelyMacros.h:16
lumiFormat.lumi
lumi
Definition: lumiFormat.py:106
CaloLCW_tf.group
group
Definition: CaloLCW_tf.py:28
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
AthMonitorAlgorithm::DataType_t::collisions
@ collisions
AthMonitorAlgorithm::parseList
virtual StatusCode parseList(const std::string &line, std::vector< std::string > &result) const
Parse a string into a vector.
Definition: AthMonitorAlgorithm.cxx:345
AthMonitorAlgorithm::m_name
std::string m_name
Definition: AthMonitorAlgorithm.h:371
AthMonitorAlgorithm::envStringToEnum
Environment_t envStringToEnum(const std::string &str) const
Convert the environment string from the python configuration to an enum object.
Definition: AthMonitorAlgorithm.cxx:116
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
AthMonitorAlgorithm::AthMonitorAlgorithm
AthMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: AthMonitorAlgorithm.cxx:8
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
str
Definition: BTagTrackIpAccessor.cxx:11
AthMonitorAlgorithm::m_trigLiveFractionDataKey
SG::ReadCondHandleKey< TrigLiveFractionCondData > m_trigLiveFractionDataKey
Definition: AthMonitorAlgorithm.h:353
AthMonitorAlgorithm::lbDuration
virtual double lbDuration(const EventContext &ctx=Gaudi::Hive::currentContext()) const
Calculate the duration of the luminosity block (in seconds)
Definition: AthMonitorAlgorithm.cxx:328
AthMonitorAlgorithm::m_useLumi
Gaudi::Property< bool > m_useLumi
Allows use of various luminosity functions.
Definition: AthMonitorAlgorithm.h:364
AthMonitorAlgorithm::DataType_t::userDefined
@ userDefined
AthMonitorAlgorithm::m_lbDurationDataKey
SG::ReadCondHandleKey< LBDurationCondData > m_lbDurationDataKey
Definition: AthMonitorAlgorithm.h:351
AthMonitorAlgorithm::getGroup
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
Definition: AthMonitorAlgorithm.cxx:168
AthMonitorAlgorithm::DataType_t::monteCarlo
@ monteCarlo