Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
L1CaloCTPMonitorAlgorithm.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 #include <map>
5 #include <utility>
6 #include <set>
7 #include <tuple>
8 #include <algorithm>
9 #include <vector>
10 #include <iomanip>
11 #include <sstream>
12 
14 
16 
17 L1CaloCTPMonitorAlgorithm::L1CaloCTPMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator )
18  : AthMonitorAlgorithm(name,pSvcLocator),
19  m_errorTool("LVL1::TrigT1CaloMonErrorTool/TrigT1CaloMonErrorTool")
20 {
21 }
22 
24 
25  ATH_MSG_DEBUG("L1CaloCTPMonitorAlgorith::initialize");
26  ATH_MSG_DEBUG("Package Name "<< m_packageName);
27 
28  // we initialise all the containers that we need
30  ATH_CHECK(m_cmxJetHitsLocation.initialize());
31  ATH_CHECK(m_cmxEtSumsLocation.initialize());
32  ATH_CHECK(m_cmxCpHitsLocation.initialize());
33 
35  renounce(m_L1MenuKey); // Detector Store data - hide this Data Dependency from the MT Scheduler
36 
37 
38  ATH_CHECK(m_errorTool.retrieve());
39 
41 }
42 
43 StatusCode L1CaloCTPMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const {
44 
45  ATH_MSG_DEBUG("L1CaloCTPMonitorAlgorithm::fillHistograms");
46  ATH_MSG_DEBUG("m_ctpRdoKey=" << m_ctpRdoKey);
47  ATH_MSG_DEBUG("m_cmxJetHitsLocation=" << m_cmxJetHitsLocation);
48  ATH_MSG_DEBUG("m_cmxEtSumsLocation=" << m_cmxEtSumsLocation);
49  ATH_MSG_DEBUG("m_cmxCpHitsLocation=" << m_cmxCpHitsLocation);
50 
51  // monitored variables
52  std::vector<int> errors;
53  std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>> variables;
54 
55  // 1D
56  auto run = Monitored::Scalar<int>("run",GetEventInfo(ctx)->runNumber());
57 
58  // read all objects needed
59  ATH_MSG_DEBUG("Begin to fetch store gate objects ..");
60 
61  //--------------------------------------------------------------------------
62  //---------------- get information sent from CP CMXs to CTP ----------------
63  //--------------------------------------------------------------------------
64 
65  // Retrieve CMX CP hits from StoreGate
67  ATH_CHECK(cmxCpHitsTES.isValid());
68 
69  uint32_t EMHits0 = 0;
70  uint32_t EMHits1 = 0;
71  uint32_t TauHits0 = 0;
72  uint32_t TauHits1 = 0;
73 
74  // CMX information for transmission check: System CMX -> CTP
75  if (cmxCpHitsTES.isValid()) {
76  xAOD::CMXCPHitsContainer::const_iterator cmxIterator = cmxCpHitsTES->begin();
77  xAOD::CMXCPHitsContainer::const_iterator cmxIteratorEnd = cmxCpHitsTES->end();
78 
79  for (; cmxIterator != cmxIteratorEnd; ++cmxIterator) {
80 
81  const uint8_t source = (*cmxIterator)->sourceComponent();
82  const uint8_t crate = (*cmxIterator)->crate();
83  const uint8_t cmx = (*cmxIterator)->cmx();
84 
85  if (source == xAOD::CMXCPHits::TOTAL && crate == 3) {
86  if (cmx == 1) {
87  EMHits0 = (*cmxIterator)->hits0();
88  EMHits1 = (*cmxIterator)->hits1();
89  }
90  else {
91  TauHits0 = (*cmxIterator)->hits0();
92  TauHits1 = (*cmxIterator)->hits1();
93  }
94  }
95  }
96  }
97 
98 
99  //--------------------------------------------------------------------------
100  //----------------- get information sent from JEP CMXs to CTP --------------
101  //--------------------------------------------------------------------------
102 
103  // Retrieve CMX Jet Hits from Storegate
105  ATH_CHECK(cmxJetHitsTES.isValid());
106 
107  if(!cmxJetHitsTES.isValid()){
108  ATH_MSG_ERROR("No Jet Hits found in TES "<< m_cmxJetHitsLocation);
109  return StatusCode::FAILURE;
110  }
111 
112  int Jet3BitHits = 0; // 3-bit multiplicities, thresholds 0-9, cable JET1
113  int Jet2BitHits = 0; // 2-bit multiplicities, thresholds 10-24, cable JET2
114 
115  int Jet3BitHits0 = 0; // 3-bit multiplicities, thresholds 0-4, cable JET1
116  int Jet3BitHits1 = 0; // 3-bit multiplicities, thresholds 5-9, cable JET1
117  int Jet2BitHits0 = 0; // 2-bit multiplicities, thresholds 10-17, cable JET2
118  int Jet2BitHits1 = 0; // 2-bit multiplicities, thresholds 18-24, cable JET2
119 
120  xAOD::CMXJetHitsContainer::const_iterator cmxJetIterator = cmxJetHitsTES->begin();
121  xAOD::CMXJetHitsContainer::const_iterator cmxJetIteratorEnd = cmxJetHitsTES->end();
122 
123  // Transmission check: system CMX -> CTP
124  for (; cmxJetIterator != cmxJetIteratorEnd; ++cmxJetIterator) {
125  const uint32_t source = (*cmxJetIterator)->sourceComponent();
126  const uint32_t crate = (*cmxJetIterator)->crate();
127 
128  if (source == xAOD::CMXJetHits::TOTAL_MAIN && crate == 1) {
129  Jet3BitHits0 = (*cmxJetIterator)->hits0();
130  Jet3BitHits1 = (*cmxJetIterator)->hits1();
131  Jet3BitHits = Jet3BitHits0 + (Jet3BitHits1<<15);
132  }
133  if (source == xAOD::CMXJetHits::TOTAL_FORWARD && crate == 1) {
134  Jet2BitHits0 = (*cmxJetIterator)->hits0();
135  Jet2BitHits1 = (*cmxJetIterator)->hits1();
136  Jet2BitHits = Jet2BitHits0 + (Jet2BitHits1<<16);
137  }
138  }
139 
140  // Retrieve CMX Et sums from Storegate
142  ATH_CHECK(cmxEtHitsTES.isValid());
143 
144  if(!cmxEtHitsTES.isValid()){
145  ATH_MSG_ERROR("No Et Hits found in TES "<< m_cmxEtSumsLocation);
146  return StatusCode::FAILURE;
147  }
148 
149  int TEHits = 0; // Cable EN1 (full eta)
150  int XEHits = 0;
151  int XSHits = 0;
152  int TERestHits = 0; // Cable EN2 (restricted eta)
153  int XERestHits = 0;
154 
155  xAOD::CMXEtSumsContainer::const_iterator cmxEtSumsIterator = cmxEtHitsTES->begin();
156  xAOD::CMXEtSumsContainer::const_iterator cmxEtSumsIteratorEnd = cmxEtHitsTES->end();
157 
158  for (; cmxEtSumsIterator != cmxEtSumsIteratorEnd; ++ cmxEtSumsIterator) {
159  const uint32_t source = (*cmxEtSumsIterator)->sourceComponent();
160  const uint32_t crate = (*cmxEtSumsIterator)->crate();
161 
162  // Sum Et hits
163  if (source == xAOD::CMXEtSums::SUM_ET_STANDARD && crate == 1) { // KW crate check might not be needed here...
164  TEHits = (*cmxEtSumsIterator)->et();
165  }
166 
167  // Missing Et hits
168  if (source == xAOD::CMXEtSums::MISSING_ET_STANDARD && crate == 1) {
169  XEHits = (*cmxEtSumsIterator)->et();
170  }
171 
172  // Missing Et significance hits
173  if (source == xAOD::CMXEtSums::MISSING_ET_SIG_STANDARD && crate == 1) {
174  XSHits = (*cmxEtSumsIterator)->et();
175  }
176 
177  // Sum Et hits (restricted eta)
178  if (source == xAOD::CMXEtSums::SUM_ET_RESTRICTED && crate == 1) {
179  TERestHits = (*cmxEtSumsIterator)->et();
180  }
181 
182  // Missing Et hits (restricted eta)
183  if (source == xAOD::CMXEtSums::MISSING_ET_RESTRICTED && crate == 1) {
184  XERestHits = (*cmxEtSumsIterator)->et();
185  }
186  }
187 
188 //--------------------------------------------------------------------------
189 //----------------------- get the TIPs (input for CTP) ---------------------
190 //--------------------------------------------------------------------------
191 
192  SG::ReadHandle<CTP_RDO> const_ctpRdo(m_ctpRdoKey,ctx);
193  ATH_CHECK(const_ctpRdo.isValid());
194 
195  if(!const_ctpRdo.isValid()){
196  ATH_MSG_ERROR("No CTP_RDO found in TES "<< m_ctpRdoKey);
197  return StatusCode::FAILURE;
198  }
199 
200 
201  // Make a writable copy and Set CTP version number to 4 when reading persistified data
202  std::vector<uint32_t> ctp_data=const_ctpRdo->getDataWords();
203  CTP_RDO ctpRdo(4,std::move(ctp_data));
204  ctpRdo.setL1AcceptBunchPosition(const_ctpRdo->getL1AcceptBunchPosition());
205  ctpRdo.setTurnCounter(const_ctpRdo->getTurnCounter());
206 
207  if (ctpRdo.getCTPVersionNumber()==0) {
208  ATH_MSG_DEBUG("CTP version number not set, skipping CTP test");
209  }
210 
212  ctp.setRDO(&ctpRdo);
213 
214  const uint16_t l1aPos = ctpRdo.getL1AcceptBunchPosition();
215  if (l1aPos >= ctp.getBunchCrossings().size()) {
216  ATH_MSG_DEBUG("CTP_RDO gave Invalid l1aPos");;
217  return StatusCode::SUCCESS;
218  }
219 
220  ATH_MSG_DEBUG("CTP l1aPos, size : " << l1aPos << ", " << ctp.getBunchCrossings().size());
221  const CTP_BC& bunch = ctp.getBunchCrossings().at(l1aPos);
222 
223 //std::cout<<"CTP Confg = "<<getL1Menu(ctx)->thresholds().size()<<std::endl;
224 
225  //--------------------------------------------------------------------------
226  //---------------------- compare L1Calo data with CTP ----------------------
227  //--------------------------------------------------------------------------
228 
229  const int max_JET_2bit_Threshold_Number = 15;
230  const int max_JET_3bit_Threshold_Number = 10;
231  const int max_XE_Threshold_Number = 16;
232  const int max_TE_Threshold_Number = 16;
233  const int max_XS_Threshold_Number = 8;
234 
235  //------------------------ EM Hits (3 bits / thresh) -----------------------
236  int offset = 0;
237  int threshBits = 3;
238  int totalBits = threshBits*L1DataDef::typeConfig(L1DataDef::EM).max/2;
239  ATH_MSG_DEBUG("totalBits = " << totalBits);
240 
241  compare(bunch, EMHits0, totalBits, offset, EM1Type, ctx); // Cable EM1
242 
243  offset += totalBits;
244  compare(bunch, EMHits1, totalBits, offset, EM2Type, ctx); // Cable EM2
245 
246  //----------------------- Tau Hits (3 bits / thresh) ---------------------
247  offset += totalBits;
248  compare(bunch, TauHits0, totalBits, offset, Tau1Type, ctx); // Cable TAU1
249 
250  offset += totalBits;
251  compare(bunch, TauHits1, totalBits, offset, Tau2Type, ctx); // Cable TAU2
252 
253  //------------------------ Jet Hits (3 bits / thresh) ---------------------
254  offset += totalBits;
255  totalBits = threshBits*max_JET_3bit_Threshold_Number;
256  compare(bunch, Jet3BitHits, totalBits, offset, Jet3BitType, ctx); // Cable JET1
257 
258  //----------------------- Jet Hits (2 bits / thresh) -------------------
259  offset += totalBits;
260  threshBits--;
261  totalBits = threshBits*max_JET_2bit_Threshold_Number;
262  compare(bunch, Jet2BitHits, totalBits, offset, Jet2BitType, ctx); // Cable JET2
263 
264  //---------------------- TE Hits (1 bit / thresh) ------------------
265  offset += totalBits;
266  threshBits--;
267  totalBits = threshBits*max_TE_Threshold_Number/2; // Cable EN1
268  compare(bunch, TEHits, totalBits, offset, TEFullEtaType, ctx);
269 
270  //------------------------ XE Hits (1 bit / thresh) --------------------
271  offset += totalBits;
272  totalBits = threshBits*max_XE_Threshold_Number/2;
273  compare(bunch, XEHits, totalBits, offset, XEFullEtaType, ctx);
274 
275  //---------------------- XS Hits (1 bit / thresh) ------------------
276  offset += totalBits;
277  totalBits = threshBits*max_XS_Threshold_Number;
278  compare(bunch, XSHits, totalBits, offset, XSType, ctx);
279 
280  //------------------------ Restricted Eta TE Hits (1 bit / thresh) --------------------
281  offset += totalBits;
282  totalBits = threshBits*max_TE_Threshold_Number/2; // Cable EN2
283  compare(bunch, TERestHits, totalBits, offset, TERestrictedEtaType, ctx);
284 
285  //---------------------- Restricted Eta XE Hits (1 bit / thresh) ------------------
286  offset += totalBits;
287  totalBits = threshBits*max_XE_Threshold_Number/2;
288  compare(bunch, XERestHits, totalBits, offset, XERestrictedEtaType, ctx);
289 
290  variables.push_back(run);
292  variables.clear();
293 
294  return StatusCode::SUCCESS;
295 }
296 
297 // *********************************************************************
298 // Private Methods
299 // *********************************************************************
300 
302  int offset, L1CaloCTPHitTypes type, const EventContext& ctx ) const
303 {
304 
305 
306  const int max_JET_2bit_Threshold_Number = 15;
307  const int max_JET_3bit_Threshold_Number = 10;
308  const int max_TAU_3bit_Threshold_Number = 16;
309  const int max_XE_Threshold_Number = 16;
310  const int max_TE_Threshold_Number = 16;
311  const int max_XS_Threshold_Number = 8;
312 
313  std::map<std::string, int> threshMap;
314 
315  const std::vector<std::shared_ptr<TrigConf::L1Threshold>>& thresholds = getL1Menu(ctx)->thresholds();
316  ATH_MSG_DEBUG("Size of thresholds vector: " << thresholds.size());
317 
318  for (const auto& it : thresholds) {
319  int offset = 0;
320  int nbits = 3;
321  const int threshNumber = it->mapping();
322  int fixedThreshNumber = threshNumber;
323 
324  while (true) {
325  if ( it->type() == L1DataDef::typeAsString(L1DataDef::EM) ) {
326  if (threshNumber >= (int)L1DataDef::typeConfig(L1DataDef::EM).max/2) { // Cable EM2; else cable EM1
327  offset += nbits*L1DataDef::typeConfig(L1DataDef::EM).max/2;
328  fixedThreshNumber -= L1DataDef::typeConfig(L1DataDef::EM).max/2;
329  }
330  break;
331  }
332  offset += nbits*L1DataDef::typeConfig(L1DataDef::EM).max;
333  if ( it->type() == L1DataDef::typeAsString(L1DataDef::TAU) ) {
334  if (threshNumber >= (int)max_TAU_3bit_Threshold_Number/2) { // Cable TAU2; else cable TAU1
335  offset += nbits*max_TAU_3bit_Threshold_Number/2;
336  fixedThreshNumber -= max_TAU_3bit_Threshold_Number/2;
337  }
338  break;
339  }
340  offset += nbits*max_TAU_3bit_Threshold_Number;
341  if ( it->type() == L1DataDef::typeAsString(L1DataDef::JET) ) {
342  if (threshNumber >= (int)max_JET_3bit_Threshold_Number) { // Cable JET2 (2-bit thresholds); else JET1 (3-bit)
343  offset += 3*max_JET_3bit_Threshold_Number;
344  fixedThreshNumber -= max_JET_3bit_Threshold_Number;
345  nbits--;
346  }
347  break;
348  }
349  offset += 3*max_JET_3bit_Threshold_Number;
350  nbits--;
351  offset += 2*max_JET_2bit_Threshold_Number;
352  nbits--;
353  if ( it->type() == L1DataDef::typeAsString(L1DataDef::TE) ) {
354  if (threshNumber >= (int)max_TE_Threshold_Number/2) { // Restricted eta TE threshold: jump to cable EN2
355  offset += nbits*max_TE_Threshold_Number/2 + nbits*max_XE_Threshold_Number/2 + nbits*max_XS_Threshold_Number; // 8+8+8 bits on cable EN1
356  fixedThreshNumber -= max_TE_Threshold_Number/2;
357  }
358  break; // Full eta & restricted eta thresholds separated on two cables
359  }
360  offset += nbits*max_TE_Threshold_Number/2;
361  if ( it->type() == L1DataDef::typeAsString(L1DataDef::XE) ) {
362  if (threshNumber >= (int)max_XE_Threshold_Number/2) { // Restricted eta XE threshold: jump to cable EN2
363  offset += nbits*max_TE_Threshold_Number/2 + nbits*max_XE_Threshold_Number/2 + nbits*max_XS_Threshold_Number;
364  fixedThreshNumber -= max_XE_Threshold_Number/2;
365  }
366  break;
367  }
368  offset += nbits*max_XE_Threshold_Number/2;
369  if ( it->type() == L1DataDef::typeAsString(L1DataDef::XS) ) break;
370  offset += nbits*max_XS_Threshold_Number;
371  nbits--;
372  break;
373  }
374  if (nbits == 0) continue;
375  if (threshNumber < 0) continue;
376  threshMap.insert(std::make_pair(it->name(),
377  offset + fixedThreshNumber*nbits));
378  ATH_MSG_DEBUG("threshMap: name, offset, threshNumber, nbits " << it->name() << " " << offset << " " << fixedThreshNumber << " " << nbits);
379  } // End loop over thresholds vector
380 
381  ATH_MSG_DEBUG("Size of threshMap = " << threshMap.size());
382 
383  std::vector<std::pair<std::string, int>> newMap;
384  newMap.clear();
385 
386  for (const auto& entry : threshMap) {
387 
388  //int numBits = getNumBits(entry.first, ctx);
389  TrigConf::TriggerLine trigger_line = getL1Menu(ctx)->connector(getL1Menu(ctx)->connectorNameFromThreshold(entry.first)).triggerLine(entry.first);
390  int numBits = trigger_line.nbits();
391 
392  for (int bit = 0; bit < numBits; ++bit) {
393  int newValue = entry.second + bit;
394 
395  // Add the entry to the new map
396  newMap.push_back(std::make_pair(entry.first, newValue));
397  }
398  }
399 
400  // Sort the newMap based on the second position values
401  std::sort(newMap.begin(), newMap.end(), [](const auto& lhs, const auto& rhs) {
402  return lhs.second < rhs.second;
403  });
404 
405  ATH_MSG_DEBUG("Size of new threshMap = " << newMap.size());
406 
407  // 1D
408  auto ctp_1d_L1CaloNeCTPSummary = Monitored::Scalar<float>("ctp_1d_L1CaloNeCTPSummary",0);
409  auto ctp_1d_L1CaloEqCTPSummary = Monitored::Scalar<float>("ctp_1d_L1CaloEqCTPSummary",0);
410  auto ctp_1d_TIPMatches = Monitored::Scalar<float>("ctp_1d_TIPMatches",0);
411  auto ctp_1d_HitNoTIPMismatch = Monitored::Scalar<float>("ctp_1d_HitNoTIPMismatch",0);
412  auto ctp_1d_TIPNoHitMismatch = Monitored::Scalar<float>("ctp_1d_TIPNoHitMismatch",0);
413 
414  ATH_MSG_DEBUG("offset: " << offset << " totalBits: " << totalBits);
415  //std::string name(ctp_1d_L1CaloNeCTPSummary->GetXaxis()->GetBinLabel(1+type));
416  //std::string subdet((type == EM1Type || type == EM2Type || type == Tau1Type || type == Tau2Type) ? " CP: " : " JEP: ");
417 
418  int mask = 0;
419  int tipHits = 0;
420 
421  for (int bit = 0; bit < totalBits; ++bit) {
422  const int TIPid = (newMap[offset + bit]).second;
423 
424  ATH_MSG_DEBUG("TIPid = " << TIPid);
425  if (TIPid < 0){ //|| TIPid > 511) {
426  continue;
427  }
428  const int HITbit= ((hits >> bit) & 0x1);
429  const int TIPbit = bunch.getTIP().test( TIPid );
430 
431  ATH_MSG_DEBUG(TIPbit << " ");
432  tipHits |= (TIPbit << bit);
433  mask |= (1 << bit);
434  if (HITbit && HITbit == TIPbit){
435  ctp_1d_TIPMatches = TIPid;
436  fill(m_packageName,ctp_1d_TIPMatches);
437  }
438  else if (HITbit != TIPbit) {
439  if (HITbit){
440  ctp_1d_HitNoTIPMismatch = TIPid;
441  fill(m_packageName,ctp_1d_HitNoTIPMismatch);
442  }
443  else{
444  ctp_1d_TIPNoHitMismatch = TIPid;
445  fill(m_packageName,ctp_1d_TIPNoHitMismatch);
446  }
447  }
448  }
449 
450 
451  if (tipHits != (hits&mask)) {
452  ctp_1d_L1CaloNeCTPSummary = type;
453  fill(m_packageName, ctp_1d_L1CaloNeCTPSummary);
454  }
455  else if (tipHits){
456  ctp_1d_L1CaloEqCTPSummary = type;
457  fill(m_packageName,ctp_1d_L1CaloEqCTPSummary);
458  }
459 }
460 
461 const TrigConf::L1Menu* L1CaloCTPMonitorAlgorithm::getL1Menu(const EventContext& ctx) const {
462  const TrigConf::L1Menu* menu = nullptr;
463  if (detStore()->contains<TrigConf::L1Menu>(m_L1MenuKey.key())) {
465  if( l1MenuHandle.isValid() ){
466  menu=l1MenuHandle.cptr();
467  }
468  } else {
469  menu = &(m_configSvc->l1Menu(ctx));
470  }
471 
472  return menu;
473 }
474 
475 /*void L1CaloCTPMon::setLabels(LWHist* hist, bool xAxis)
476 {
477  LWHist::LWHistAxis* axis = (xAxis) ? hist->GetXaxis() : hist->GetYaxis();
478  axis->SetBinLabel(1+EM1Type, "EM1");
479  axis->SetBinLabel(1+EM2Type, "EM2");
480  axis->SetBinLabel(1+Tau1Type, "Tau1");
481  axis->SetBinLabel(1+Tau2Type, "Tau2");
482  axis->SetBinLabel(1+Jet3BitType, "Jet1 (3-bit)");
483  axis->SetBinLabel(1+Jet2BitType, "Jet2 (2-bit)");
484  axis->SetBinLabel(1+TEFullEtaType, "TE (full eta)");
485  axis->SetBinLabel(1+XEFullEtaType, "XE (full eta)");
486  axis->SetBinLabel(1+XSType, "XS");
487  axis->SetBinLabel(1+TERestrictedEtaType, "TE (restr. eta)");
488  axis->SetBinLabel(1+XERestrictedEtaType, "XE (restr. eta)");
489 }*/
490 
491 
492 
493 
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
xAOD::CMXEtSums_v1::MISSING_ET_RESTRICTED
@ MISSING_ET_RESTRICTED
Definition: CMXEtSums_v1.h:34
TRTCalib_Extractor.hits
hits
Definition: TRTCalib_Extractor.py:35
checkCoolLatestUpdate.variables
variables
Definition: checkCoolLatestUpdate.py:13
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TrigConf::L1Connector::triggerLine
const TrigConf::TriggerLine & triggerLine(const std::string &lineName) const
Definition: L1Connector.cxx:181
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
xAOD::CMXJetHits_v1::TOTAL_MAIN
@ TOTAL_MAIN
Definition: CMXJetHits_v1.h:35
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
L1CaloCTPMonitorAlgorithm::m_cmxCpHitsLocation
SG::ReadHandleKey< xAOD::CMXCPHitsContainer > m_cmxCpHitsLocation
Definition: L1CaloCTPMonitorAlgorithm.h:69
L1CaloCTPMonitorAlgorithm::m_L1MenuKey
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
Definition: L1CaloCTPMonitorAlgorithm.h:71
L1CaloCTPMonitorAlgorithm::m_cmxJetHitsLocation
SG::ReadHandleKey< xAOD::CMXJetHitsContainer > m_cmxJetHitsLocation
Definition: L1CaloCTPMonitorAlgorithm.h:67
python.TriggerConfig.menu
menu
Definition: TriggerConfig.py:875
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce
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)
Definition: AthCommonDataStore.h:380
L1CaloCTPMonitorAlgorithm::TERestrictedEtaType
@ TERestrictedEtaType
Definition: L1CaloCTPMonitorAlgorithm.h:55
L1CaloCTPMonitorAlgorithm::XSType
@ XSType
Definition: L1CaloCTPMonitorAlgorithm.h:54
skel.it
it
Definition: skel.GENtoEVGEN.py:407
L1CaloCTPMonitorAlgorithm::m_ctpRdoKey
SG::ReadHandleKey< CTP_RDO > m_ctpRdoKey
Definition: L1CaloCTPMonitorAlgorithm.h:66
TrigConf::L1Menu
L1 menu configuration.
Definition: L1Menu.h:28
CTP_RDO::getCTPVersionNumber
unsigned int getCTPVersionNumber() const
Definition: CTP_RDO.h:64
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
L1CaloCTPMonitorAlgorithm::compare
void compare(const CTP_BC &bunch, int hits, int totalBits, int offset, L1CaloCTPHitTypes type, const EventContext &ctx) const
Compare L1Calo hits with corresponding TIP hits.
Definition: L1CaloCTPMonitorAlgorithm.cxx:301
CTP_RDO::getDataWords
const std::vector< uint32_t > & getDataWords() const
Definition: CTP_RDO.h:39
L1CaloCTPMonitorAlgorithm::Jet2BitType
@ Jet2BitType
Definition: L1CaloCTPMonitorAlgorithm.h:53
L1CaloCTPMonitorAlgorithm::TEFullEtaType
@ TEFullEtaType
Definition: L1CaloCTPMonitorAlgorithm.h:54
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
CTP_Decoder
Definition: CTP_Decoder.h:141
L1CaloCTPMonitorAlgorithm::Tau2Type
@ Tau2Type
Definition: L1CaloCTPMonitorAlgorithm.h:52
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
L1CaloCTPMonitorAlgorithm::XERestrictedEtaType
@ XERestrictedEtaType
Definition: L1CaloCTPMonitorAlgorithm.h:55
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
CTP_BC::getTIP
const std::bitset< 512 > & getTIP() const
get bitset of TIP words
Definition: CTP_Decoder.h:80
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
L1CaloCTPMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: L1CaloCTPMonitorAlgorithm.cxx:23
TCS::JET
@ JET
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:12
MCTruthPartClassifier::totalBits
@ totalBits
Definition: TruthClassifiers.h:148
menu
make the sidebar many part of the config
Definition: hcg.cxx:551
TrigConf::L1DataDef
Definition: L1DataDef.h:16
TrigConf::TriggerLine
a TriggerLine entry describes the location of a threshold multiplicity on a cable (connector)
Definition: L1Connector.h:21
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Ringer::EM
@ EM
Definition: CaloRingsDefs.h:19
xAOD::uint16_t
setWord1 uint16_t
Definition: eFexEMRoI_v1.cxx:93
xAOD::CMXCPHits_v1::TOTAL
@ TOTAL
Definition: CMXCPHits_v1.h:29
xAOD::CMXEtSums_v1::MISSING_ET_STANDARD
@ MISSING_ET_STANDARD
Definition: CMXEtSums_v1.h:34
mergePhysValFiles.errors
list errors
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:43
L1CaloCTPMonitorAlgorithm::m_configSvc
ServiceHandle< TrigConf::ITrigConfigSvc > m_configSvc
Definition: L1CaloCTPMonitorAlgorithm.h:46
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
CTP_BC
Definition: CTP_Decoder.h:17
L1CaloCTPMonitorAlgorithm::getL1Menu
const TrigConf::L1Menu * getL1Menu(const EventContext &ctx) const
Definition: L1CaloCTPMonitorAlgorithm.cxx:461
TrigConf::L1Menu::thresholds
std::vector< std::shared_ptr< TrigConf::L1Threshold > > thresholds() const
Access to list of all L1Thresholds.
Definition: L1Menu.cxx:267
CTP_RDO::setL1AcceptBunchPosition
void setL1AcceptBunchPosition(const uint8_t)
Definition: CTP_RDO.cxx:141
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
L1CaloCTPMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: L1CaloCTPMonitorAlgorithm.cxx:43
run
Definition: run.py:1
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
L1CaloCTPMonitorAlgorithm::m_cmxEtSumsLocation
SG::ReadHandleKey< xAOD::CMXEtSumsContainer > m_cmxEtSumsLocation
Definition: L1CaloCTPMonitorAlgorithm.h:68
xAOD::CMXEtSums_v1::MISSING_ET_SIG_STANDARD
@ MISSING_ET_SIG_STANDARD
Definition: CMXEtSums_v1.h:35
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
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
L1CaloCTPMonitorAlgorithm::EM2Type
@ EM2Type
Definition: L1CaloCTPMonitorAlgorithm.h:51
L1CaloCTPMonitorAlgorithm::EM1Type
@ EM1Type
Definition: L1CaloCTPMonitorAlgorithm.h:51
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
xAOD::CMXEtSums_v1::SUM_ET_STANDARD
@ SUM_ET_STANDARD
Definition: CMXEtSums_v1.h:33
CTP_RDO::setTurnCounter
void setTurnCounter(const uint32_t)
Definition: CTP_RDO.cxx:148
L1CaloCTPMonitorAlgorithm::Tau1Type
@ Tau1Type
Definition: L1CaloCTPMonitorAlgorithm.h:52
L1CaloCTPMonitorAlgorithm::Jet3BitType
@ Jet3BitType
Definition: L1CaloCTPMonitorAlgorithm.h:53
TrigConf::L1Menu::connector
const TrigConf::L1Connector & connector(const std::string &connectorName) const
Access to connector by name.
Definition: L1Menu.cxx:335
L1CaloCTPMonitorAlgorithm.h
L1CaloCTPMonitorAlgorithm::m_packageName
StringProperty m_packageName
Bin labels for summary plots.
Definition: L1CaloCTPMonitorAlgorithm.h:63
TrigConf::TriggerLine::nbits
unsigned int nbits() const
Definition: L1Connector.h:30
CTP_RDO::getL1AcceptBunchPosition
uint32_t getL1AcceptBunchPosition() const
Definition: CTP_RDO.cxx:94
TriggerTest.ctp
ctp
Retrieve trigger EDM objects.
Definition: TriggerTest.py:14
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DeMoAtlasDataLoss.runNumber
string runNumber
Definition: DeMoAtlasDataLoss.py:64
CTP_RDO
Definition: CTP_RDO.h:20
CTP_RDO::getTurnCounter
uint32_t getTurnCounter() const
Definition: CTP_RDO.cxx:106
L1CaloCTPMonitorAlgorithm::L1CaloCTPMonitorAlgorithm
L1CaloCTPMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: L1CaloCTPMonitorAlgorithm.cxx:17
L1CaloCTPMonitorAlgorithm::L1CaloCTPHitTypes
L1CaloCTPHitTypes
Hit types for binning.
Definition: L1CaloCTPMonitorAlgorithm.h:51
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
xAOD::CMXJetHits_v1::TOTAL_FORWARD
@ TOTAL_FORWARD
Definition: CMXJetHits_v1.h:38
copySelective.source
string source
Definition: copySelective.py:32
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
xAOD::CMXEtSums_v1::SUM_ET_RESTRICTED
@ SUM_ET_RESTRICTED
Definition: CMXEtSums_v1.h:33
L1CaloCTPMonitorAlgorithm::XEFullEtaType
@ XEFullEtaType
Definition: L1CaloCTPMonitorAlgorithm.h:54
L1CaloCTPMonitorAlgorithm::m_errorTool
ToolHandle< LVL1::ITrigT1CaloMonErrorTool > m_errorTool
Definition: L1CaloCTPMonitorAlgorithm.h:74
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.