ATLAS Offline Software
GfexSimMonitorAlgorithm.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3  */
5 
6 GfexSimMonitorAlgorithm::GfexSimMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator ) : AthMonitorAlgorithm(name,pSvcLocator) {}
7 
9 
10  ATH_MSG_DEBUG("Initializing GfexSimMonitorAlgorithm algorithm with name: "<< name());
11 
12  ATH_MSG_DEBUG("m_data_key_gFexRho" << m_data_gFexRho);
13  ATH_MSG_DEBUG("m_data_gFexBlock" << m_data_gFexBlock );
14  ATH_MSG_DEBUG("m_data_gFexJet" << m_data_gFexJet );
15  ATH_MSG_DEBUG("m_data_gScalarEJwoj" << m_data_gScalarEJwoj );
16  ATH_MSG_DEBUG("m_data_gMETComponentsJwoj" << m_data_gMETComponentsJwoj );
17  ATH_MSG_DEBUG("m_data_gMHTComponentsJwoj" << m_data_gMHTComponentsJwoj );
18  ATH_MSG_DEBUG("m_data_gMSTComponentsJwoj" << m_data_gMSTComponentsJwoj );
19  ATH_MSG_DEBUG("m_data_gMETComponentsNoiseCut" << m_data_gMETComponentsNoiseCut );
20  ATH_MSG_DEBUG("m_data_gMETComponentsRms" << m_data_gMETComponentsRms );
21  ATH_MSG_DEBUG("m_data_gScalarENoiseCut" << m_data_gScalarENoiseCut );
22  ATH_MSG_DEBUG("m_data_gScalarERms" << m_data_gScalarERms );
23 
24 
25  ATH_MSG_DEBUG("m_simu_key_gFexRho" << m_simu_gFexRho);
26  ATH_MSG_DEBUG("m_simu_gFexBlock" << m_simu_gFexBlock );
27  ATH_MSG_DEBUG("m_simu_gFexJet" << m_simu_gFexJet );
28  ATH_MSG_DEBUG("m_simu_gScalarEJwoj" << m_simu_gScalarEJwoj );
29  ATH_MSG_DEBUG("m_simu_gMETComponentsJwoj" << m_simu_gMETComponentsJwoj );
30  ATH_MSG_DEBUG("m_simu_gMHTComponentsJwoj" << m_simu_gMHTComponentsJwoj );
31  ATH_MSG_DEBUG("m_simu_gMSTComponentsJwoj" << m_simu_gMSTComponentsJwoj );
32  ATH_MSG_DEBUG("m_simu_gMETComponentsNoiseCut" << m_simu_gMETComponentsNoiseCut );
33  ATH_MSG_DEBUG("m_simu_gMETComponentsRms" << m_simu_gMETComponentsRms );
34  ATH_MSG_DEBUG("m_simu_gScalarENoiseCut" << m_simu_gScalarENoiseCut );
35  ATH_MSG_DEBUG("m_simu_gScalarERms" << m_simu_gScalarERms );
36 
37 
38  /* ATH_MSG_DEBUG("m_data_key_gGlob " << m_data_key_gGlob );
39  ATH_MSG_DEBUG("m_data_key_gJ " << m_data_key_gJ );
40 
41  ATH_MSG_DEBUG("m_simu_key_gGlob " << m_simu_key_gGlob );
42  ATH_MSG_DEBUG("m_simu_key_gJ " << m_simu_key_gJ );
43  */
44 
45 
46  // we initialise all the containers
47  ATH_CHECK ( m_data_gFexRho.initialize() );
48  ATH_CHECK ( m_data_gFexBlock.initialize() );
49  ATH_CHECK ( m_data_gFexJet.initialize() );
50  ATH_CHECK ( m_data_gScalarEJwoj.initialize() );
51  ATH_CHECK ( m_data_gMETComponentsJwoj.initialize() );
52  ATH_CHECK ( m_data_gMHTComponentsJwoj.initialize() );
53  ATH_CHECK ( m_data_gMSTComponentsJwoj.initialize() );
55  ATH_CHECK ( m_data_gMETComponentsRms.initialize() );
56  ATH_CHECK ( m_data_gScalarENoiseCut.initialize() );
57  ATH_CHECK ( m_data_gScalarERms.initialize() );
58 
59 
60  ATH_CHECK ( m_simu_gFexRho.initialize() );
61  ATH_CHECK ( m_simu_gFexBlock.initialize() );
62  ATH_CHECK ( m_simu_gFexJet.initialize() );
63  ATH_CHECK ( m_simu_gScalarEJwoj.initialize() );
64  ATH_CHECK ( m_simu_gMETComponentsJwoj.initialize() );
65  ATH_CHECK ( m_simu_gMHTComponentsJwoj.initialize() );
66  ATH_CHECK ( m_simu_gMSTComponentsJwoj.initialize() );
68  ATH_CHECK ( m_simu_gMETComponentsRms.initialize() );
69  ATH_CHECK ( m_simu_gScalarENoiseCut.initialize() );
70  ATH_CHECK ( m_simu_gScalarERms.initialize() );
71 
72  ATH_CHECK( m_bcContKey.initialize() );
73 
74 
75 
76  // TOBs may come from trigger bytestream - renounce from scheduler
77 
78 
79 
81 }
82 
83 StatusCode GfexSimMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const {
84 
88  compareGlobalRoI("gTEJWOJ",m_data_gScalarEJwoj,m_simu_gScalarEJwoj,ctx,0xff000fff); // wont compare MET value in scalarE tob
96 
97  return StatusCode::SUCCESS;
98 }
99 
103  const EventContext& ctx, bool simReadyFlag) const {
104  SG::ReadHandle<xAOD::gFexJetRoIContainer> tobs1Cont{tobs1Key, ctx};
105  if(!tobs1Cont.isValid()) {
106  return false;
107  }
108  SG::ReadHandle<xAOD::gFexJetRoIContainer> tobs2Cont{tobs2Key, ctx};
109  if(!tobs1Cont.isValid()) {
110  return false;
111  }
112 
113 
114  auto eventType = Monitored::Scalar<std::string>("EventType","DataTowers"); // always have data towers
115  auto Signature = Monitored::Scalar<std::string>("Signature",label);
116  auto tobMismatched = Monitored::Scalar<double>("tobMismatched",0);
117  auto simReady = Monitored::Scalar<bool>("SimulationReady",simReadyFlag);
118 
119  //sorting mismatched data/sim TOB
120  std::set<const xAOD::gFexJetRoI*> mismatchedTOBs;
121  std::set<const xAOD::gFexJetRoI*> DataMismatchedTOBs;
122 
123  for (auto tob1 : *tobs1Cont) {
124  bool isMatched = false;
125  //bool isPartMatched = false;
126  auto word1 = tob1->word();
127  auto gfex1 = tob1->gFexType();
128  for (auto tob2 : *tobs2Cont) {
129  if(gfex1 == tob2->gFexType()) {
130  if(word1 == tob2->word()) {
131  isMatched = true;
132  break;
133  } /*else if( (word1&0x7FFFFF7F) == (tob2->word()&0x7FFFFF7F) ) {
134  // matches after ignore saturation bit (31st bit) and status bit (7th bit) (first bit is 0th)
135  isPartMatched=true;
136  }*/
137  }
138  }
139  if(!isMatched) {
140  mismatchedTOBs.insert(tob1);
141  DataMismatchedTOBs.insert(tob1); //saving only the mismatched data tob
142  }
143  }
144 
145  // also check for mismatches in tobs2 collection ... since may have extra tobs in tob2 that aren't in tobs1
146  for (auto tob2 : *tobs2Cont) {
147  bool isMatched = false;
148  auto word = tob2->word();auto gfex = tob2->gFexType();
149  for (auto tob1 : *tobs1Cont) {
150  if(gfex == tob1->gFexType() && word == tob1->word()) {
151  isMatched = true;
152  break;
153  }
154  }
155  if(!isMatched) {
156  mismatchedTOBs.insert(tob2);
157  }
158  }
159 
160 
161 
162  auto lbn = Monitored::Scalar<ULong64_t>("LBN",GetEventInfo(ctx)->lumiBlock());
163  if(!mismatchedTOBs.empty()) {
164  // fill the debugging tree with all the words for this signature
165  auto lbnString = Monitored::Scalar<std::string>("LBNString",std::to_string(GetEventInfo(ctx)->lumiBlock()));
166  auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber());
167  auto l1id = Monitored::Scalar<unsigned int>("L1ID",GetEventInfo(ctx)->extendedLevel1ID());
168  {
169  std::scoped_lock lock(m_firstEventsMutex);
170  auto itr = m_firstEvents.find(lbn);
171  if(itr==m_firstEvents.end()) {
172  m_firstEvents[lbn] = std::to_string(lbn)+":"+std::to_string(evtNumber);
173  itr = m_firstEvents.find(lbn);
174  }
175  lbnString = itr->second;
176  }
177  std::vector<SortableTob> sortedDataTobs;
178  std::vector<SortableTob> sortedSimTobs;
179 
180  // Fill your sorted TOB vectors
181  fillVectors(tobs1Key, ctx, sortedDataTobs);
182  fillVectors(tobs2Key, ctx, sortedSimTobs);
183 
184  auto dtobEtas = Monitored::Collection("dataEtas", sortedDataTobs, [](const auto& t) { return t.eta; });
185  auto dtobPhis = Monitored::Collection("dataPhis", sortedDataTobs, [](const auto& t) { return t.phi; });
186  auto dtobEts = Monitored::Collection("dataEts", sortedDataTobs, [](const auto& t) { return t.et; });
187  auto dtobWord0s = Monitored::Collection("dataWord0s", sortedDataTobs, [](const auto& t) { return t.word0; });
188 
189  auto stobEtas = Monitored::Collection("simEtas", sortedSimTobs, [](const auto& t) { return t.eta; });
190  auto stobPhis = Monitored::Collection("simPhis", sortedSimTobs, [](const auto& t) { return t.phi; });
191  auto stobEts = Monitored::Collection("simEts", sortedSimTobs, [](const auto& t) { return t.et; });
192  auto stobWord0s = Monitored::Collection("simWord0s", sortedSimTobs, [](const auto& t) { return t.word0; });
193 
194  /*if(msgLvl(MSG::DEBUG)) {
195  std::cout << "LBN: " << ULong64_t(lbn) << " EventNumber: " << ULong64_t(evtNumber) << " L1ID: " << GetEventInfo(ctx)->extendedLevel1ID() << " signature: " << label << std::endl;
196  std::cout << " data : " << std::hex;
197  for (const auto w: dword0s) std::cout << w << " ";
198  std::cout << std::endl << " sim : ";
199  for (const auto w: sword0s) std::cout << w << " ";
200  std::cout << std::endl << std::dec;
201  }*/
202  tobMismatched=100;
203  auto simReadyMismatch = Monitored::Scalar<bool>("SimulationReadyMismatch",simReady);
204  fill("mismatches",simReadyMismatch,tobMismatched,lbn,lbnString,l1id,evtNumber,dtobEtas,dtobPhis,dtobEts,dtobWord0s,stobEtas,stobPhis,stobEts,stobWord0s,Signature,simReady,eventType);
205  if (label=="gJ" || label=="gLJ") {
206  auto locIdx = Monitored::Scalar<std::string>("locIdx","");
207  for(auto tob : DataMismatchedTOBs) {
208  locIdx = std::to_string(tob->iEta()) + ":" + std::to_string(tob->iPhi());
209  fill("mismatches"+label,lbn,locIdx); //only recording data eta,phi vs LBN
210  }
211  }
212  } else {
213  tobMismatched=0;
214  fill("mismatches",lbn,Signature,tobMismatched,simReady,eventType);
215  }
216 
217  return !mismatchedTOBs.empty();
218 
219 }
220 
221 
225  const EventContext& ctx, uint32_t tobMask) const {
226  SG::ReadHandle<xAOD::gFexGlobalRoIContainer> tobs1Cont{tobs1Key, ctx};
227  if(!tobs1Cont.isValid()) {
228  return false;
229  }
230  SG::ReadHandle<xAOD::gFexGlobalRoIContainer> tobs2Cont{tobs2Key, ctx};
231  if(!tobs1Cont.isValid()) {
232  return false;
233  }
234 
235  auto eventType = Monitored::Scalar<std::string>("EventType","DataTowers"); // always have data towers
236  auto Signature = Monitored::Scalar<std::string>("Signature",label);
237  auto tobMismatched = Monitored::Scalar<double>("tobMismatched",0);
238 
239 
240  bool mismatches = (tobs1Cont->size()!=tobs2Cont->size());
241 
242  for(const auto tob1 : *tobs1Cont) {
243  bool isMatched = false;
244  uint32_t word1 = tob1->word()&tobMask;
245  auto gfex1 = tob1->globalType();
246  for (auto tob2 : *tobs2Cont) {
247  if(gfex1 == tob2->globalType()) {
248  if(word1 == (tob2->word()&tobMask)) {
249  isMatched = true;
250  break;
251  }
252  }
253  }
254  if(!isMatched) {
255  mismatches = true;
256  }
257  }
258 
259  auto lbn = Monitored::Scalar<ULong64_t>("LBN",GetEventInfo(ctx)->lumiBlock());
260  if(mismatches) {
261  // fill the debugging tree with all the words for this signature
262  auto lbnString = Monitored::Scalar<std::string>("LBNString",std::to_string(GetEventInfo(ctx)->lumiBlock()));
263  auto evtNumber = Monitored::Scalar<ULong64_t>("EventNumber",GetEventInfo(ctx)->eventNumber());
264  auto l1id = Monitored::Scalar<unsigned int>("L1ID",GetEventInfo(ctx)->extendedLevel1ID());
265  {
266  std::scoped_lock lock(m_firstEventsMutex);
267  auto itr = m_firstEvents.find(lbn);
268  if(itr==m_firstEvents.end()) {
269  m_firstEvents[lbn] = std::to_string(lbn)+":"+std::to_string(evtNumber);
270  itr = m_firstEvents.find(lbn);
271  }
272  lbnString = itr->second;
273  }
274  auto dtobMet1 = Monitored::Collection("dataTOB1", *tobs1Cont,[](const auto& tob) { return tob->METquantityOne(); });
275  auto dtobMet2 = Monitored::Collection("dataTOB2", *tobs1Cont,[](const auto& tob) { return tob->METquantityTwo(); });
276  auto dtobWord0s = Monitored::Collection("dataWord0s", *tobs1Cont,[](const auto& tob) { return tob->word(); });
277  auto stobMet1 = Monitored::Collection("simTOB1", *tobs2Cont,[](const auto& tob) { return tob->METquantityOne(); });
278  auto stobMet2 = Monitored::Collection("simTOB2", *tobs2Cont,[](const auto& tob) { return tob->METquantityTwo(); });
279  auto stobWord0s = Monitored::Collection("simWord0s", *tobs2Cont,[](const auto& tob) { return tob->word(); });
280 
281  /*if(msgLvl(MSG::DEBUG)) {
282  std::cout << "LBN: " << ULong64_t(lbn) << " EventNumber: " << ULong64_t(evtNumber) << " L1ID: " << GetEventInfo(ctx)->extendedLevel1ID() << " signature: " << label << std::endl;
283  std::cout << " data : " << std::hex;
284  for (const auto w: dword0s) std::cout << w << " ";
285  std::cout << std::endl << " sim : ";
286  for (const auto w: sword0s) std::cout << w << " ";
287  std::cout << std::endl << std::dec;
288  }*/
289  tobMismatched=100;
290 
291  auto simReadyMismatch = Monitored::Scalar<bool>("SimulationReadyMismatch",false/* global RoI not sim ready yet*/);
292  fill("mismatches",simReadyMismatch,lbn,lbnString,evtNumber,l1id,dtobMet1,dtobMet2,dtobWord0s,stobMet1,stobMet2,stobWord0s,Signature,tobMismatched,eventType);
293  } else {
294  tobMismatched=0;
295  fill("mismatches",lbn,Signature,tobMismatched,eventType);
296  }
297 
298 
299  return !mismatches;
300 
301 }
302 
GfexSimMonitorAlgorithm::m_simu_gFexBlock
SG::ReadHandleKey< xAOD::gFexJetRoIContainer > m_simu_gFexBlock
Definition: GfexSimMonitorAlgorithm.h:62
xAOD::word1
word1
Definition: eFexEMRoI_v1.cxx:87
GfexSimMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: GfexSimMonitorAlgorithm.cxx:83
GfexSimMonitorAlgorithm::m_simu_gMHTComponentsJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gMHTComponentsJwoj
Definition: GfexSimMonitorAlgorithm.h:67
GfexSimMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: GfexSimMonitorAlgorithm.cxx:8
GfexSimMonitorAlgorithm::m_simu_gScalarERms
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gScalarERms
Definition: GfexSimMonitorAlgorithm.h:72
GfexSimMonitorAlgorithm::m_data_gFexBlock
SG::ReadHandleKey< xAOD::gFexJetRoIContainer > m_data_gFexBlock
Definition: GfexSimMonitorAlgorithm.h:39
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
GfexSimMonitorAlgorithm::m_simu_gMETComponentsRms
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gMETComponentsRms
Definition: GfexSimMonitorAlgorithm.h:70
GfexSimMonitorAlgorithm::m_data_gScalarERms
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gScalarERms
Definition: GfexSimMonitorAlgorithm.h:49
InDetSecVtxTruthMatchUtils::isMatched
bool isMatched(int matchInfo)
Definition: InDetSecVtxTruthMatchTool.h:75
python.RatesEmulationExample.lock
lock
Definition: RatesEmulationExample.py:148
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
GfexSimMonitorAlgorithm::m_simu_gFexRho
SG::ReadHandleKey< xAOD::gFexJetRoIContainer > m_simu_gFexRho
Definition: GfexSimMonitorAlgorithm.h:61
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition: MonitoredCollection.h:38
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
GfexSimMonitorAlgorithm::m_simu_gScalarENoiseCut
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gScalarENoiseCut
Definition: GfexSimMonitorAlgorithm.h:71
GfexSimMonitorAlgorithm::fillVectors
void fillVectors(const SG::ReadHandleKey< T > &key, const EventContext &ctx, std::vector< SortableTob > &sortedTobs) const
Definition: GfexSimMonitorAlgorithm.h:81
GfexSimMonitorAlgorithm::m_bcContKey
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
Definition: GfexSimMonitorAlgorithm.h:53
GfexSimMonitorAlgorithm::compareGlobalRoI
bool compareGlobalRoI(const std::string &label, const SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > &tobs1Key, const SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > &tobs2Key, const EventContext &ctx, uint32_t tobMask=0xffffffff) const
Definition: GfexSimMonitorAlgorithm.cxx:222
GfexSimMonitorAlgorithm::m_simu_gMSTComponentsJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gMSTComponentsJwoj
Definition: GfexSimMonitorAlgorithm.h:68
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
GfexSimMonitorAlgorithm::m_data_gMETComponentsRms
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gMETComponentsRms
Definition: GfexSimMonitorAlgorithm.h:47
add-xsec-uncert-quadrature-N.label
label
Definition: add-xsec-uncert-quadrature-N.py:104
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAOD::eventNumber
eventNumber
Definition: EventInfo_v1.cxx:124
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.
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:107
GfexSimMonitorAlgorithm::m_data_gFexJet
SG::ReadHandleKey< xAOD::gFexJetRoIContainer > m_data_gFexJet
Definition: GfexSimMonitorAlgorithm.h:40
GfexSimMonitorAlgorithm::GfexSimMonitorAlgorithm
GfexSimMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: GfexSimMonitorAlgorithm.cxx:6
GfexSimMonitorAlgorithm::m_data_gFexRho
SG::ReadHandleKey< xAOD::gFexJetRoIContainer > m_data_gFexRho
Definition: GfexSimMonitorAlgorithm.h:38
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
GfexSimMonitorAlgorithm.h
GfexSimMonitorAlgorithm::compareJetRoI
bool compareJetRoI(const std::string &label, const SG::ReadHandleKey< xAOD::gFexJetRoIContainer > &tobs1Key, const SG::ReadHandleKey< xAOD::gFexJetRoIContainer > &tobs2Key, const EventContext &ctx, bool simReady=false) const
Definition: GfexSimMonitorAlgorithm.cxx:100
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
GfexSimMonitorAlgorithm::m_data_gScalarENoiseCut
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gScalarENoiseCut
Definition: GfexSimMonitorAlgorithm.h:48
GfexSimMonitorAlgorithm::m_data_gScalarEJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gScalarEJwoj
Definition: GfexSimMonitorAlgorithm.h:42
GfexSimMonitorAlgorithm::m_simu_gMETComponentsNoiseCut
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gMETComponentsNoiseCut
Definition: GfexSimMonitorAlgorithm.h:69
GfexSimMonitorAlgorithm::m_simu_gMETComponentsJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gMETComponentsJwoj
Definition: GfexSimMonitorAlgorithm.h:66
GfexSimMonitorAlgorithm::m_data_gMSTComponentsJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gMSTComponentsJwoj
Definition: GfexSimMonitorAlgorithm.h:45
GfexSimMonitorAlgorithm::m_data_gMETComponentsJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gMETComponentsJwoj
Definition: GfexSimMonitorAlgorithm.h:43
GfexSimMonitorAlgorithm::m_simu_gScalarEJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_simu_gScalarEJwoj
Definition: GfexSimMonitorAlgorithm.h:65
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
xAOD::lumiBlock
setTeId lumiBlock
Definition: L2StandAloneMuon_v1.cxx:328
GfexSimMonitorAlgorithm::m_simu_gFexJet
SG::ReadHandleKey< xAOD::gFexJetRoIContainer > m_simu_gFexJet
Definition: GfexSimMonitorAlgorithm.h:63
GfexSimMonitorAlgorithm::m_data_gMETComponentsNoiseCut
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gMETComponentsNoiseCut
Definition: GfexSimMonitorAlgorithm.h:46
GfexSimMonitorAlgorithm::m_data_gMHTComponentsJwoj
SG::ReadHandleKey< xAOD::gFexGlobalRoIContainer > m_data_gMHTComponentsJwoj
Definition: GfexSimMonitorAlgorithm.h:44
GfexSimMonitorAlgorithm::m_firstEventsMutex
std::mutex m_firstEventsMutex
Definition: GfexSimMonitorAlgorithm.h:33