ATLAS Offline Software
JfexMonitorAlgorithm.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "JfexMonitorAlgorithm.h"
7 #include "TMath.h"
9 
12 
13 JfexMonitorAlgorithm::JfexMonitorAlgorithm( const std::string& name, ISvcLocator* pSvcLocator )
14  : AthMonitorAlgorithm(name,pSvcLocator)
15 {
16 }
17 
19 
20  ATH_MSG_DEBUG("JfexMonitorAlgorith::initialize");
21  ATH_MSG_DEBUG("Package Name "<< m_Grouphist);
22 
23  ATH_MSG_DEBUG("m_jFexLRJetContainerKey"<< m_jFexLRJetContainerKey);
24  ATH_MSG_DEBUG("m_jFexSRJetContainerKey"<< m_jFexSRJetContainerKey);
25  ATH_MSG_DEBUG("m_jFexTauContainerKey" << m_jFexTauContainerKey);
26  ATH_MSG_DEBUG("m_jFexFwdElContainerKey"<< m_jFexFwdElContainerKey);
27  ATH_MSG_DEBUG("m_jFexMETContainerKey" << m_jFexMETContainerKey);
28  ATH_MSG_DEBUG("m_jFexSumEtContainerKey"<< m_jFexSumEtContainerKey);
29 
30  ATH_CHECK( m_jFexLRJetContainerKey.initialize() );
31  ATH_CHECK( m_jFexSRJetContainerKey.initialize() );
32  ATH_CHECK( m_jFexTauContainerKey.initialize() );
33  ATH_CHECK( m_jFexFwdElContainerKey.initialize() );
34  ATH_CHECK( m_jFexMETContainerKey.initialize() );
35  ATH_CHECK( m_jFexSumEtContainerKey.initialize() );
36 
37  // TOBs may come from trigger bytestream - renounce from scheduler
44 
46 }
47 
48 StatusCode JfexMonitorAlgorithm::fillHistograms( const EventContext& ctx ) const {
49 
50  ATH_MSG_DEBUG("JfexMonitorAlgorithm::fillHistograms");
51 
52  bool jJ_isInValid = false;
53  bool jLJ_isInValid = false;
54  bool jTau_isInValid = false;
55  bool jEM_isInValid = false;
56  bool jXE_isInValid = false;
57  bool jTE_isInValid = false;
58 
60  if(!jFexSRJetContainer.isValid()) {
61  ATH_MSG_WARNING("No jFex SR Jet container found in storegate "<< m_jFexSRJetContainerKey<<". Will be skipped!");
62  jJ_isInValid = true;
63  }
65  if(!jFexLRJetContainer.isValid()) {
66  ATH_MSG_WARNING("No jFex LR Jet container found in storegate "<< m_jFexLRJetContainerKey<<". Will be skipped!");
67  jLJ_isInValid = true;
68  }
70  if(!jFexTauContainer.isValid()) {
71  ATH_MSG_WARNING("No jFex Tau container found in storegate "<< m_jFexTauContainerKey<<". Will be skipped!");
72  jTau_isInValid = true;
73  }
75  if(!jFexEMContainer.isValid()) {
76  ATH_MSG_WARNING("No jFex EM container found in storegate "<< m_jFexFwdElContainerKey<<". Will be skipped!");
77  jEM_isInValid = true;
78  }
80  if(!jFexMETContainer.isValid()) {
81  ATH_MSG_WARNING("No jFex MET container found in storegate "<< m_jFexMETContainerKey<<". Will be skipped!");
82  jXE_isInValid = true;
83  }
85  if(!jFexSumETContainer.isValid()) {
86  ATH_MSG_WARNING("No jFex MET container found in storegate "<< m_jFexSumEtContainerKey<<". Will be skipped!");
87  jTE_isInValid = true;
88  }
89 
90  // variables for histograms
91  auto lbn = Monitored::Scalar<int>("LBN",GetEventInfo(ctx)->lumiBlock());
92  // jJ
93  auto jFexSRJetModule = Monitored::Scalar<int> ("jJ_jFexNumber",0);
94  auto jFexSRJetFPGA = Monitored::Scalar<int> ("jJ_fpgaNumber",0);
95  auto jFexSRJetEt = Monitored::Scalar<int> ("jJ_Et",0);
96  auto jFexSRJeteta = Monitored::Scalar<float>("jJ_Eta",0.0);
97  auto jFexSRJetphi = Monitored::Scalar<float>("jJ_Phi",0.0);
98  auto jFexSRJeteta_glo = Monitored::Scalar<float>("jJ_GlobalEta",0.0);
99  auto jFexSRJetphi_glo = Monitored::Scalar<float>("jJ_GlobalPhi",0.0);
100  auto jFexSRJetBinNumber = Monitored::Scalar<int>("jJ_binNumber",0);
101 
102  // jLJ
103  auto jFexLRJetModule = Monitored::Scalar<int> ("jLJ_jFexNumber",0);
104  auto jFexLRJetFPGA = Monitored::Scalar<int> ("jLJ_fpgaNumber",0);
105  auto jFexLRJetEt = Monitored::Scalar<int> ("jLJ_Et",0);
106  auto jFexLRJeteta = Monitored::Scalar<float>("jLJ_Eta",0.0);
107  auto jFexLRJetphi = Monitored::Scalar<float>("jLJ_Phi",0.0);
108  auto jFexLRJeteta_glo = Monitored::Scalar<float>("jLJ_GlobalEta",0.0);
109  auto jFexLRJetphi_glo = Monitored::Scalar<float>("jLJ_GlobalPhi",0.0);
110 
111 
112  // jTau
113  auto jFexTauModule = Monitored::Scalar<int> ("jTau_jFexNumber",0);
114  auto jFexTauFPGA = Monitored::Scalar<int> ("jTau_fpgaNumber",0);
115  auto jFexTauEt = Monitored::Scalar<int> ("jTau_Et",0);
116  auto jFexTauIso = Monitored::Scalar<int> ("jTau_Iso",0);
117  auto jFexTaueta = Monitored::Scalar<float>("jTau_Eta",0.0);
118  auto jFexTauphi = Monitored::Scalar<float>("jTau_Phi",0.0);
119  auto jFexTaueta_glo = Monitored::Scalar<float>("jTau_GlobalEta",0.0);
120  auto jFexTauphi_glo = Monitored::Scalar<float>("jTau_GlobalPhi",0.0);
121  auto jFexTauBinNumber = Monitored::Scalar<int>("jTau_binNumber",0);
122 
123  // jEM
124  auto jFexEMModule = Monitored::Scalar<int> ("jEM_jFexNumber",0);
125  auto jFexEMFPGA = Monitored::Scalar<int> ("jEM_fpgaNumber",0);
126  auto jFexEMEt = Monitored::Scalar<int> ("jEM_Et",0);
127  auto jFexEMeta = Monitored::Scalar<float>("jEM_Eta",0.0);
128  auto jFexEMphi = Monitored::Scalar<float>("jEM_Phi",0.0);
129  auto jFexEMeta_glo = Monitored::Scalar<float>("jEM_GlobalEta",0.0);
130  auto jFexEMphi_glo = Monitored::Scalar<float>("jEM_GlobalPhi",0.0);
131  auto jFexEMIso = Monitored::Scalar<int> ("jEM_Iso",0);
132  auto jFexEMf1 = Monitored::Scalar<int> ("jEM_f1",0);
133  auto jFexEMf2 = Monitored::Scalar<int> ("jEM_f2",0);
134  auto jFexEMBinNumber = Monitored::Scalar<int>("jEM_binNumber",0);
135 
136  // jXE
137  auto jFexMETX = Monitored::Scalar<int> ("jXE_X",0);
138  auto jFexMETY = Monitored::Scalar<int> ("jXE_Y",0);
139  auto jFexMET = Monitored::Scalar<float>("jXE_MET",0.0);
140  auto jFexMETphi = Monitored::Scalar<float>("jXE_phi",0.0);
141 
142  // jTE
143  auto jFexSumEt_low = Monitored::Scalar<int> ("jTE_low",0);
144  auto jFexSumEt_high = Monitored::Scalar<int> ("jTE_high",0);
145  auto jFexSumEt_total = Monitored::Scalar<float>("jTE_SumEt",0.0);
146 
147  auto weight = Monitored::Scalar<float>("weight",1);
148 
149  // write -1 into bins in maps that are always empty
150  {
151  std::scoped_lock lock(m_mutex);
152  if (m_firstEvent) {
153  weight = -1;
154  // empty bins due to irregular structure of FCAL
155  for (auto& [eta, phi] : jFEXMapEmptyBinCenters) {
156  jFexSRJeteta = eta;
157  jFexSRJetphi = phi;
158  jFexEMeta = eta;
159  jFexEMphi = phi;
160  fill(m_Groupmaps,jFexSRJeteta,jFexSRJetphi,jFexEMeta,jFexEMphi,weight);
161  fill(m_GroupmapsHighPt,jFexSRJeteta,jFexSRJetphi,jFexEMeta,jFexEMphi,weight);
162  }
163 
164  for (auto& [eta, phi] : jFEXMapEmptyBinCentersJetsOnly) {
165  jFexSRJeteta = eta;
166  jFexSRJetphi = phi;
167  fill(m_Groupmaps,jFexSRJeteta,jFexSRJetphi,weight);
168  fill(m_GroupmapsHighPt,jFexSRJeteta,jFexSRJetphi,weight);
169  }
170 
171  // central region without jEM
172  for (int ieta=-23; ieta<23; ieta++){
173  jFexEMeta = 0.1 * ieta + 0.05;
174  for (int iphi=-32; iphi<33; iphi++){
175  jFexEMphi = M_PI/32 * iphi + M_PI/64;
176  fill(m_Groupmaps,jFexEMeta,jFexEMphi,weight);
177  }
178  }
179  m_firstEvent = false;
180  weight = 1;
181  }
182  }
183 
184  if (!jJ_isInValid) {
185  for (const xAOD::jFexSRJetRoI *jFexSRJetRoI : *jFexSRJetContainer) {
186  if (jFexSRJetRoI->tobWord() == 0)
187  continue; // remove empty TOBs
188  jFexSRJetModule = jFexSRJetRoI->jFexNumber();
189  jFexSRJetFPGA = jFexSRJetRoI->fpgaNumber();
190  jFexSRJetEt = jFexSRJetRoI->tobEt();
191  jFexSRJeteta = jFexSRJetRoI->eta();
192  jFexSRJetphi = jFexSRJetRoI->phi();
193  jFexSRJeteta_glo = jFexSRJetRoI->globalEta();
194  jFexSRJetphi_glo = jFexSRJetRoI->globalPhi();
195  fill(m_Grouphist, jFexSRJetModule, jFexSRJetFPGA, jFexSRJetEt,
196  jFexSRJeteta, jFexSRJetphi, jFexSRJeteta_glo, jFexSRJetphi_glo);
197 
198  ANA_CHECK(fillJetMaps(jFexSRJetRoI, jFexSRJeteta, jFexSRJetphi,
199  jFexSRJetBinNumber, lbn, weight));
200  }
201  }
202 
203  if (!jTau_isInValid) {
204  for (const xAOD::jFexTauRoI *jFexTauRoI : *jFexTauContainer) {
205  if (jFexTauRoI->tobWord() == 0)
206  continue; // remove empty TOBs
207  jFexTauModule = jFexTauRoI->jFexNumber();
208  jFexTauFPGA = jFexTauRoI->fpgaNumber();
209  jFexTauEt = jFexTauRoI->tobEt();
210  jFexTauIso = jFexTauRoI->tobIso();
211  jFexTaueta = jFexTauRoI->eta();
212  jFexTauphi = jFexTauRoI->phi();
213  jFexTaueta_glo = jFexTauRoI->globalEta();
214  jFexTauphi_glo = jFexTauRoI->globalPhi();
215  ANA_CHECK(fillMapsCentralAndFCAL(jFexTauRoI, jFexTaueta, jFexTauphi,
216  jFexTauBinNumber, lbn, m_jTauEtaBins,
217  weight));
218  }
219  }
220 
221  if (!jEM_isInValid) {
222  for (const xAOD::jFexFwdElRoI *jFexFwdElRoI : *jFexEMContainer) {
223  if (jFexFwdElRoI->tobWord() == 0)
224  continue; // remove empty TOBs
225  jFexEMModule = jFexFwdElRoI->jFexNumber();
226  jFexEMFPGA = jFexFwdElRoI->fpgaNumber();
227  jFexEMEt = jFexFwdElRoI->tobEt();
228  jFexEMeta = jFexFwdElRoI->eta();
229  jFexEMphi = jFexFwdElRoI->phi();
230  jFexEMeta_glo = jFexFwdElRoI->globalEta();
231  jFexEMphi_glo = jFexFwdElRoI->globalPhi();
232  jFexEMIso = jFexFwdElRoI->tobEMIso();
233  jFexEMf1 = jFexFwdElRoI->tobEMf1();
234  jFexEMf2 = jFexFwdElRoI->tobEMf2();
235  fill(m_Grouphist, jFexEMModule, jFexEMFPGA, jFexEMEt, jFexEMeta,
236  jFexEMphi, jFexEMeta_glo, jFexEMphi_glo, jFexEMIso, jFexEMf1,
237  jFexEMf2);
238  ANA_CHECK(fillEMMaps(jFexFwdElRoI, jFexEMeta, jFexEMphi, jFexEMBinNumber,
239  lbn, weight));
240  }
241  }
242 
243  if(!jLJ_isInValid) {
244  for(const xAOD::jFexLRJetRoI* jFexLRJetRoI : *jFexLRJetContainer) {
245  if(jFexLRJetRoI->tobWord()==0) continue; //remove empty TOBs
246  jFexLRJetModule=jFexLRJetRoI->jFexNumber();
247  jFexLRJetFPGA=jFexLRJetRoI->fpgaNumber();
248  jFexLRJetEt=jFexLRJetRoI->tobEt();
249  jFexLRJeteta=jFexLRJetRoI->eta();
250  jFexLRJetphi=jFexLRJetRoI->phi();
251  jFexLRJeteta_glo=jFexLRJetRoI->globalEta();
252  jFexLRJetphi_glo=jFexLRJetRoI->globalPhi();
253  fill(m_Grouphist,jFexLRJetModule,jFexLRJetFPGA,jFexLRJetEt,jFexLRJeteta,jFexLRJetphi,jFexLRJeteta_glo,jFexLRJetphi_glo);
254  }
255  }
256 
257  if(!jXE_isInValid){
258  float metx = 0;
259  float mety = 0;
260  for(const xAOD::jFexMETRoI* jFexMETRoI : *jFexMETContainer) {
261  jFexMETX =jFexMETRoI->tobEx();
262  jFexMETY =jFexMETRoI->tobEy();
263  if(jFexMETRoI->tobEtScale() != 0) {
264  metx += jFexMETRoI->Ex()/jFexMETRoI->tobEtScale();
265  mety += jFexMETRoI->Ey()/jFexMETRoI->tobEtScale();
266  }
267 
268  fill(m_Grouphist,jFexMETX,jFexMETY);
269  }
270  if(jFexMETContainer->size()>0) {
271  jFexMET = TMath::Sqrt(std::pow(metx,2)+std::pow(mety,2));
272  jFexMETphi = TMath::ATan2(mety,metx);
273  fill(m_Grouphist,jFexMET,jFexMETphi);
274  }
275  }
276 
277  if(!jTE_isInValid){
278  int sumEt_total = 0;
279  for(const xAOD::jFexSumETRoI* jFexSumETRoI : *jFexSumETContainer) {
280  jFexSumEt_low =jFexSumETRoI->tobEt_lower();
281  jFexSumEt_high =jFexSumETRoI->tobEt_upper();
282  sumEt_total += jFexSumETRoI->tobEt_lower()+jFexSumETRoI->tobEt_upper();
283  fill(m_Grouphist,jFexSumEt_low,jFexSumEt_high);
284  }
285  if(jFexSumETContainer->size()>0) {
286  jFexSumEt_total = sumEt_total;
287  fill(m_Grouphist,jFexSumEt_total);
288  }
289  }
290 
291  return StatusCode::SUCCESS;
292 }
293 
298  if (abs(eta) > 2.5 && abs(eta) < 3.1) {
299  ANA_CHECK(
300  fillMapsEndcap(tob, eta, phi, binNumber, lbn, m_jJEtaBins, weight));
301  } else if (abs(eta) > 3.1 && abs(eta) < 3.2) {
302  ANA_CHECK(
303  fillMapsOverlap(tob, eta, phi, binNumber, lbn, m_jJEtaBins, weight));
304  } else {
305  ANA_CHECK(fillMapsCentralAndFCAL(tob, eta, phi, binNumber, lbn, m_jJEtaBins,
306  weight));
307  }
308 
309  return StatusCode::SUCCESS;
310 }
311 
316  if (abs(eta) > 2.5 && abs(eta) < 3.2) {
317  ANA_CHECK(
318  fillMapsEndcap(tob, eta, phi, binNumber, lbn, m_jEMEtaBins, weight));
319  } else {
320  ANA_CHECK(fillMapsCentralAndFCAL(tob, eta, phi, binNumber, lbn,
321  m_jEMEtaBins, weight));
322  }
323  return StatusCode::SUCCESS;
324 }
325 
326 template <typename TOB>
330  const std::vector<float>& etaBinBorders, Monitored::Scalar<float> &weight) const {
331  binNumber = binNumberFromCoordinates(eta, phi, etaBinBorders);
332  fill(m_Groupmaps, eta, phi, lbn, binNumber, weight);
333  if (passesEnergyCut(tob))
334  fill(m_GroupmapsHighPt, eta, phi, lbn, binNumber, weight);
335  return StatusCode::SUCCESS;
336 }
337 
338 template <typename TOB>
342  const std::vector<float>& etaBinBorders, Monitored::Scalar<float> &weight) const {
343  float originalPhi = phi;
344  phi = originalPhi - M_PI / 64;
345  fill(m_Groupmaps, eta, phi, weight);
346  binNumber = binNumberFromCoordinates(eta, phi, etaBinBorders);
347  fill(m_Groupmaps, lbn, binNumber);
348  if (passesEnergyCut(tob))
349  fill(m_GroupmapsHighPt, eta, phi, lbn, binNumber, weight);
350  phi = originalPhi + M_PI / 64;
351  fill(m_Groupmaps, eta, phi, weight);
352  binNumber = binNumberFromCoordinates(eta, phi, etaBinBorders);
353  fill(m_Groupmaps, lbn, binNumber);
354  if (passesEnergyCut(tob))
355  fill(m_GroupmapsHighPt, eta, phi, lbn, binNumber, weight);
356 
357  return StatusCode::SUCCESS;
358 }
359 
363  Monitored::Scalar<int> &lbn, const std::vector<float>& etaBinBorders,
365  binNumber = binNumberFromCoordinates(eta, phi, etaBinBorders);
366  fill(m_Groupmaps, lbn, binNumber);
367  float originalPhi = phi;
368  uint8_t localEta = tob->tobLocalEta();
369  bool isFCAL = localEta >= 13;
370  if (isFCAL) {
371  eta = eta > 0 ? 3.175 : -3.175;
372  fill(m_Groupmaps, eta, phi, weight);
373  if (passesEnergyCut(tob))
374  fill(m_GroupmapsHighPt, eta, phi, lbn, binNumber, weight);
375  } else {
376  eta = eta > 0 ? 3.125 : -3.125;
377  phi = originalPhi - M_PI / 64;
378  fill(m_Groupmaps, eta, phi, weight);
379  if (passesEnergyCut(tob))
380  fill(m_GroupmapsHighPt, eta, phi, lbn, binNumber, weight);
381  phi = originalPhi + M_PI / 64;
382  fill(m_Groupmaps, eta, phi, weight);
383  if (passesEnergyCut(tob))
384  fill(m_GroupmapsHighPt, eta, phi, lbn, binNumber, weight);
385  }
386  return StatusCode::SUCCESS;
387 }
388 
390  const xAOD::jFexSRJetRoI *tob) const {
391  return tob->et() >= 20000;
392 }
393 
395  const xAOD::jFexFwdElRoI *tob) const {
396  return tob->et() >= 10000;
397 }
398 
400  return tob->et() >= 10000;
401 }
402 
404  float eta, float phi, const std::vector<float>& etaBinBorders) const {
405  if (etaBinBorders.size() == 0) {
406  ANA_MSG_ERROR("List of eta bin borders is empty!");
407  return 0;
408  }
409 
410  int iEta = 0;
411  int iPhi = 0;
412 
413  for (size_t i = 0; i < etaBinBorders.size() - 1; ++i) {
414  if (etaBinBorders.at(i) <= eta && etaBinBorders.at(i + 1) > eta) {
415  iEta = i;
416  break;
417  }
418  }
419 
420  // 64 regular bins from -pi to pi
421  constexpr float phiBinWidth = 2 * M_PI / 64;
422  for (int i = 0; i < 64 - 1; i++) {
423  if (i * phiBinWidth - M_PI <= phi && (i + 1) * phiBinWidth - M_PI > phi) {
424  iPhi = i;
425  break;
426  }
427  }
428 
429  // following ROOT's convention of lowest bin being number 1
430  iPhi++;
431 
432  int binNumber = iEta * 64 + iPhi;
433  return binNumber;
434 }
JfexMonitorAlgorithm::JfexMonitorAlgorithm
JfexMonitorAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Definition: JfexMonitorAlgorithm.cxx:13
xAOD::jFexTauRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexTauRoI_v1.h:23
xAOD::jFexSRJetRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexSRJetRoI_v1.h:23
JfexMonitorAlgorithm::m_jFexFwdElContainerKey
SG::ReadHandleKey< xAOD::jFexFwdElRoIContainer > m_jFexFwdElContainerKey
Definition: JfexMonitorAlgorithm.h:51
xAOD::jFexTauRoI_v1::eta
float eta() const
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
xAOD::jFexTauRoI_v1::jFexNumber
uint8_t jFexNumber() const
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
xAOD::jFexLRJetRoI_v1::eta
float eta() const
xAOD::jFexLRJetRoI
jFexLRJetRoI_v1 jFexLRJetRoI
Define the latest version of the jFexLRJetRoI class
Definition: jFexLRJetRoI.h:13
xAOD::jFexFwdElRoI_v1::tobEMf1
uint8_t tobEMf1() const
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
xAOD::jFexFwdElRoI_v1::eta
float eta() const
xAOD::jFexSRJetRoI_v1::globalEta
int globalEta() const
JfexMonitorAlgorithm::m_jFexMETContainerKey
SG::ReadHandleKey< xAOD::jFexMETRoIContainer > m_jFexMETContainerKey
Definition: JfexMonitorAlgorithm.h:52
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
xAOD::jFexFwdElRoI_v1::jFexNumber
uint8_t jFexNumber() const
Additional info (initialization)
xAOD::jFexTauRoI_v1::globalPhi
uint globalPhi() const
xAOD::jFexFwdElRoI_v1::phi
float phi() const
xAOD::jFexMETRoI_v1::tobEtScale
int tobEtScale() const
xAOD::jFexFwdElRoI_v1::globalEta
int globalEta() const
Calculated from Tob.
xAOD::jFexMETRoI_v1::Ex
int Ex() const
Methods that require combining results or applying scales.
Definition: jFexMETRoI_v1.cxx:105
M_PI
#define M_PI
Definition: ActiveFraction.h:11
xAOD::jFexTauRoI_v1::tobIso
uint16_t tobIso() const
xAOD::jFexLRJetRoI_v1::jFexNumber
uint8_t jFexNumber() const
ANA_MSG_ERROR
#define ANA_MSG_ERROR(xmsg)
Macro printing error messages.
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:294
xAOD::jFexTauRoI_v1::globalEta
int globalEta() const
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
xAOD::jFexSRJetRoI_v1::eta
float eta() const
xAOD::jFexSRJetRoI_v1::phi
float phi() const
xAOD::jFexSRJetRoI_v1::tobWord
uint32_t tobWord() const
The "raw" 32-bit word describing the object candidate.
xAOD::jFexTauRoI_v1::et
unsigned int et() const
Methods that require combining results or applying scales.
Definition: jFexTauRoI_v1.cxx:114
JfexMonitorAlgorithm::m_jFexSumEtContainerKey
SG::ReadHandleKey< xAOD::jFexSumETRoIContainer > m_jFexSumEtContainerKey
Definition: JfexMonitorAlgorithm.h:53
JfexMonitorAlgorithm::m_jFexLRJetContainerKey
SG::ReadHandleKey< xAOD::jFexLRJetRoIContainer > m_jFexLRJetContainerKey
Definition: JfexMonitorAlgorithm.h:49
JfexMonitorAlgorithm::m_jJEtaBins
Gaudi::Property< std::vector< float > > m_jJEtaBins
Definition: JfexMonitorAlgorithm.h:42
xAOD::jFexMETRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexMETRoI_v1.h:22
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
xAOD::jFexFwdElRoI_v1::tobEMIso
uint8_t tobEMIso() const
JfexMonitorAlgorithm::fillMapsCentralAndFCAL
StatusCode fillMapsCentralAndFCAL(TOB tob, Monitored::Scalar< float > &eta, Monitored::Scalar< float > &phi, Monitored::Scalar< int > &binNumber, Monitored::Scalar< int > &lbn, const std::vector< float > &etaBinBorders, Monitored::Scalar< float > &weight) const
Definition: JfexMonitorAlgorithm.cxx:327
JfexMonitorAlgorithm::passesEnergyCut
bool passesEnergyCut(const xAOD::jFexSRJetRoI *tob) const
Definition: JfexMonitorAlgorithm.cxx:389
JfexMonitorAlgorithm::m_firstEvent
bool m_firstEvent
Definition: JfexMonitorAlgorithm.h:36
xAOD::jFexLRJetRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexLRJetRoI_v1.h:23
xAOD::jFexLRJetRoI_v1::tobWord
uint32_t tobWord() const
The "raw" 32-bit word describing the object candidate.
JfexMonitorAlgorithm::fillMapsOverlap
StatusCode fillMapsOverlap(const xAOD::jFexSRJetRoI *tob, Monitored::Scalar< float > &eta, Monitored::Scalar< float > &phi, Monitored::Scalar< int > &binNumber, Monitored::Scalar< int > &lbn, const std::vector< float > &etaBinBorders, Monitored::Scalar< float > &weight) const
Definition: JfexMonitorAlgorithm.cxx:360
xAOD::jFexFwdElRoI_v1::globalPhi
uint globalPhi() const
JfexMonitorAlgorithm::m_jTauEtaBins
Gaudi::Property< std::vector< float > > m_jTauEtaBins
Definition: JfexMonitorAlgorithm.h:43
xAOD::jFexTauRoI_v1::tobEt
uint16_t tobEt() const
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::jFexTauRoI_v1::fpgaNumber
uint8_t fpgaNumber() const
xAOD::jFexLRJetRoI_v1::globalEta
int globalEta() const
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::jFexMETRoI_v1::tobEy
int tobEy() const
xAOD::jFexLRJetRoI_v1::tobEt
uint16_t tobEt() const
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
xAOD::jFexLRJetRoI_v1::globalPhi
uint globalPhi() const
MessageCheck.h
macros for messaging and checking status codes
xAOD::jFexSRJetRoI_v1::tobEt
uint16_t tobEt() const
xAOD::jFexTauRoI_v1::tobWord
uint32_t tobWord() const
The "raw" 32-bit word describing the object candidate.
xAOD::jFexMETRoI_v1::tobEx
int tobEx() const
xAOD::jFexFwdElRoI_v1::tobEMf2
uint8_t tobEMf2() const
JfexMonitorAlgorithm::fillMapsEndcap
StatusCode fillMapsEndcap(TOB tob, Monitored::Scalar< float > &eta, Monitored::Scalar< float > &phi, Monitored::Scalar< int > &binNumber, Monitored::Scalar< int > &lbn, const std::vector< float > &etaBinBorders, Monitored::Scalar< float > &weight) const
Definition: JfexMonitorAlgorithm.cxx:339
xAOD::jFexSRJetRoI_v1::globalPhi
uint globalPhi() const
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAOD::jFexSRJetRoI
jFexSRJetRoI_v1 jFexSRJetRoI
Define the latest version of the jFexSRJetRoI class
Definition: jFexSRJetRoI.h:14
JfexMonitorAlgorithm::m_GroupmapsHighPt
StringProperty m_GroupmapsHighPt
Definition: JfexMonitorAlgorithm.h:41
xAOD::jFexTauRoI_v1::phi
float phi() const
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
JfexMonitorAlgorithm::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override
adds event to the monitoring histograms
Definition: JfexMonitorAlgorithm.cxx:48
JfexMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: JfexMonitorAlgorithm.cxx:18
JfexMonitorAlgorithm::fillJetMaps
StatusCode fillJetMaps(const xAOD::jFexSRJetRoI *tob, Monitored::Scalar< float > &eta, Monitored::Scalar< float > &phi, Monitored::Scalar< int > &binNumber, Monitored::Scalar< int > &lbn, Monitored::Scalar< float > &weight) const
Definition: JfexMonitorAlgorithm.cxx:294
JfexMapForwardEmptyBins.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
JfexMonitorAlgorithm::fillEMMaps
StatusCode fillEMMaps(const xAOD::jFexFwdElRoI *tob, Monitored::Scalar< float > &eta, Monitored::Scalar< float > &phi, Monitored::Scalar< int > &binNumber, Monitored::Scalar< int > &lbn, Monitored::Scalar< float > &weight) const
Definition: JfexMonitorAlgorithm.cxx:312
xAOD::jFexFwdElRoI_v1::tobEt
uint16_t tobEt() const
Decoded from Tob (for convenience)
JfexMonitorAlgorithm::m_Groupmaps
StringProperty m_Groupmaps
Definition: JfexMonitorAlgorithm.h:40
xAOD::EgammaHelpers::isFCAL
bool isFCAL(const xAOD::CaloCluster *cluster)
return true if the cluster (or the majority of its energy) is in the FCAL0
Definition: EgammaxAODHelpers.cxx:46
xAOD::jFexSumETRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexSumETRoI_v1.h:22
xAOD::jFexFwdElRoI
jFexFwdElRoI_v1 jFexFwdElRoI
Define the latest version of the jFexFwdElJetRoI class
Definition: jFexFwdElRoI.h:13
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
Definition: JfexMonitorAlgorithm.cxx:11
xAOD::jFexFwdElRoI_v1::et
unsigned int et() const
Methods that require combining results or applying scales.
Definition: jFexFwdElRoI_v1.cxx:151
xAOD::jFexMETRoI_v1::Ey
int Ey() const
Met Ey in 1 MeV scale (all signs considered)
Definition: jFexMETRoI_v1.cxx:114
xAOD::jFexSumETRoI_v1::tobEt_upper
uint16_t tobEt_upper() const
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:47
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
JfexMonitorAlgorithm::binNumberFromCoordinates
int binNumberFromCoordinates(float eta, float phi, const std::vector< float > &etaBinBorders) const
Definition: JfexMonitorAlgorithm.cxx:403
JfexMonitorAlgorithm::m_mutex
std::mutex m_mutex
Definition: JfexMonitorAlgorithm.h:37
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::jFexSRJetRoI_v1::tobLocalEta
uint8_t tobLocalEta() const
JfexMonitorAlgorithm::m_Grouphist
StringProperty m_Grouphist
Definition: JfexMonitorAlgorithm.h:39
xAOD::jFexLRJetRoI_v1::phi
float phi() const
xAOD::jFexMETRoI
jFexMETRoI_v1 jFexMETRoI
Define the latest version of the jFexMETRoI class
Definition: jFexMETRoI.h:13
xAOD::jFexSRJetRoI_v1::fpgaNumber
uint8_t fpgaNumber() const
jFEXMapEmptyBinCentersJetsOnly
constexpr std::array< std::pair< float, float >, 96 > jFEXMapEmptyBinCentersJetsOnly
Definition: JfexMapForwardEmptyBins.h:2040
xAOD::jFexTauRoI
jFexTauRoI_v1 jFexTauRoI
Define the latest version of the jFexSRJetRoI class
Definition: jFexTauRoI.h:13
JfexMonitorAlgorithm.h
JfexMonitorAlgorithm::m_jFexSRJetContainerKey
SG::ReadHandleKey< xAOD::jFexSRJetRoIContainer > m_jFexSRJetContainerKey
Definition: JfexMonitorAlgorithm.h:48
xAOD::jFexFwdElRoI_v1::tobWord
uint32_t tobWord() const
The "raw" 32-bit word describing the object candidate, 27 bit-word used at hardware level.
xAOD::jFexSumETRoI
jFexSumETRoI_v1 jFexSumETRoI
Define the latest version of the jFexSumETJetRoI class
Definition: jFexSumETRoI.h:13
xAOD::jFexSRJetRoI_v1::jFexNumber
uint8_t jFexNumber() const
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
xAOD::lumiBlock
setTeId lumiBlock
Definition: L2StandAloneMuon_v1.cxx:327
checker_macros.h
Define macros for attributes used to control the static checker.
xAOD::jFexSumETRoI_v1::tobEt_lower
uint16_t tobEt_lower() const
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:77
xAOD::jFexFwdElRoI_v1
Class describing properties of a LVL1 jFEX global Trigger Object (TOB) in the xAOD format.
Definition: jFexFwdElRoI_v1.h:23
xAOD::jFexLRJetRoI_v1::fpgaNumber
uint8_t fpgaNumber() const
JfexMonitorAlgorithm::m_jEMEtaBins
Gaudi::Property< std::vector< float > > m_jEMEtaBins
Definition: JfexMonitorAlgorithm.h:44
xAOD::jFexFwdElRoI_v1::fpgaNumber
uint8_t fpgaNumber() const
JfexMonitorAlgorithm::m_jFexTauContainerKey
SG::ReadHandleKey< xAOD::jFexTauRoIContainer > m_jFexTauContainerKey
Definition: JfexMonitorAlgorithm.h:50
LArGeo::ATan2
GeoGenfun::FunctionNoop ATan2(GeoGenfun::GENFUNCTION y, GeoGenfun::GENFUNCTION x)
Definition: BarrelAuxFunctions.cxx:50
xAOD::jFexSRJetRoI_v1::et
unsigned int et() const
Methods that require combining results or applying scales.
Definition: jFexSRJetRoI_v1.cxx:138
jFEXMapEmptyBinCenters
constexpr std::array< std::pair< float, float >, 2036 > jFEXMapEmptyBinCenters
Definition: JfexMapForwardEmptyBins.h:1