ATLAS Offline Software
forwardElectronMonTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 //
7 // 2014-10-22 Author: Remi Lafaye (Annecy)
8 // 2015-03-24 Author: Bertrand LAFORGE (LPNHE Paris)
9 //
10 // NAME: forwardElectronMonTool.cxx
11 // PACKAGE: offline/Reconstruction/egamma/egammaPerformance
12 // PURPOSE: Shifter should look for the following defects:
13 // taken from https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/EgammaShifts
14 //
15 // in energies (Et plots for electrons and photons)
16 // ===========
17 // LOWSTAT : For short runs and not enough statistics when not being able
18 // to judge the result using the egamma stream. Needs to be commented.
19 //
20 // ENERGY_(BARREL,ENDCAP,CRACK,FORWARD) : This defect is a significant energy
21 // mis-calibration is observed for a certain part of the detector. This flag
22 // is then intolerable for that detector region.
23 //
24 // LARNOISE_(BARREL,ENDCAP,FORWARD) : If some part of the detector is miscalibrated
25 // causing an energy shift of at least 5% this intolerable defect should be set.
26 //
27 // in eta,phi (eta,phi 2D plots for electrons and photons)
28 // ==========
29 // ETAPHI_SPIKES/LOWOCCUPANCY : Non standard distribution (eta phi plane) of egamma
30 // objects. Region with unusual density of electrons / photons. This could be produced
31 // by a problem in the LAR calorimeter. If there is a spike in the distribution set
32 // EGAMMA_ETAPHI_SPIKES as defect. Examples of runs with this problem can be found in
33 // Click for image. (hot spot) and Click for image. (FEB with 100% rejection during part
34 // of the run). If a HV trip could not be recovered during the run, there will be a region
35 // in the eta phi plane with low occupancy. Then set the defect EGAMMA_LOWOCCUPANCY.
36 //
37 // in eta and phi (eta,phi 1D plots for electrons)
38 // ==============
39 // BEAMSPOT : When the beamspot is shifted with respect to the nominal position the
40 // azimuthal distribution (phi) of tracks is different than normal. When the new
41 // constants for the beam spot get uploaded and reprocessed this defect vanishes.
42 // This is an intolerable defect so only use it after checking the bulk reconstruction,
43 // in some cases express reconstruction can have this problem but usually is solved at
44 // the bulk. Example of the run with a failure in the determination of the beam spot can
45 // be found in Click for image..
46 //
47 // BAD_BLAYER : To be used when the distributions (eta, phi) for medium and tight electrons
48 // have marked excess or defect of entries due to a problem with the b-layer. If this happens
49 // the loose distributions will look fine. To distinguish between this and TRT problem more
50 // details on the run and investigation will be needed. If you have to use this defect you
51 // should document it in the EgammaShiftsBadRuns page. Example of the result of a b-layer
52 // module with low efficiency can be found in Click for image..
53 //
54 // BAD_TRT : To be used when the distributions (eta, phi) for tight electrons / photons have
55 // marked excess or defect of entries due to a problem with the TRT (due to the high threshold
56 // requirement). If this happens the loose and medium distributions will look fine. To distinguish
57 // between this and pixel (b-layer) problem more details on the run and investigation will be needed.
58 // If you have to use this defect you should document it in the Runs List page. Example of the result
59 // of a few RODs disabled in TRT can be found in Click for image..
60 //
61 // in electron ID
62 // ==============
63 // SHAPES : Bad shape for defining variables of electrons or photons. Distributions do not match
64 // the references. As the other defects they can be recoverable or not recoverable. In case, of
65 // a hardware related issue, it will be likely not recoverable, problems related with alignment
66 // or calibration will be likely recoverable. Example of this defect can be found in Click for image.
67 // (decrease in the number of Si Hits due to BCID problem in SCT).
68 //
70 
71 
72 #include "forwardElectronMonTool.h"
73 #include "GaudiKernel/MsgStream.h"
74 #include "GaudiKernel/StatusCode.h"
75 #include "StoreGate/StoreGateSvc.h"
78 #include "xAODEgamma/Electron.h"
80 #include "TH1F.h"
81 #include "TH2F.h"
82 
83 forwardElectronMonTool::forwardElectronMonTool(const std::string & type, const std::string & name, const IInterface* parent)
85  m_hN(nullptr),
86  m_hEt(nullptr),
87  m_hEta(nullptr),
88  m_hPhi(nullptr),
89  m_hEtaPhi(nullptr),
90  m_hTime(nullptr),
91  m_hTightN(nullptr),
92  m_hTightEt(nullptr),
93  m_hTightEta(nullptr),
94  m_hTightPhi(nullptr),
95  m_hTightEtaPhi(nullptr),
96  m_hTightTime(nullptr),
97  m_hLB_N(nullptr),
98  m_nForwardElectrons(0)
99 {
100  m_lumiBlockNumber = 0;
103 
104 }
105 
107 {
110  return StatusCode::SUCCESS;
111 }
112 
114 {
115  ATH_MSG_DEBUG("forwardElectronMonTool::bookHistograms()");
116  int start;
117  int end;
118  start = ENDCAP;
119  end = FORWARD;
120 
121  // Create groups
122  MonGroup electronGroup(this,"egamma/forwardElectrons",run); // to be re-booked every new run
123 
124  // Create sub groups
125  MonGroup electronIdGroup (this,"egamma/forwardElectrons/ID", run); // to be re-booked every new run
126  MonGroup electronLBGroup (this,"egamma/forwardElectrons/LBMON",run, ATTRIB_X_VS_LB, "", "merge"); // to be re-booked every new run
127 
128  // MAIN PANEL
129  bookTH1F(m_hN, electronGroup, "forwardElectronN", "Number of LOOSE electrons",40, 0.0, 40.0);
130  bookTH1F(m_hEt, electronGroup, "forwardElectronEt", "LOOSE electron transverse energy [MeV]",100, -1000.0, 250000.0);
131  bookTH2F(m_hEtaPhi, electronGroup, "forwardElectronEtaPhi", "LOOSE electron #eta,#phi map (candidates with E>10GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2);
132  bookTH1F(m_hEta, electronGroup, "forwardElectronEta", "LOOSE electron #eta", 64, -5., 5.);
133  bookTH1F(m_hPhi, electronGroup, "forwardElectronPhi", "LOOSE electron #phi", 64, -3.2, 3.2);
134  //bookTH1F(m_hTopoEtCone40, electronGroup, "forwardElectronTopoEtCone40","LOOSE forward electron Isolation Energy TopoEtCone40", 64, -10000., 40000.);
135  bookTH1F(m_hTime, electronGroup, "forwardElectronTime", "Time associated with the LOOSE electron cluster [ns]", 90, -30., 60.);
136 
137  bookTH1F(m_hTightN, electronGroup, "forwardElectronTightN", "Number of TIGHT electrons",40, 0.0, 40.0);
138  bookTH1F(m_hTightEt, electronGroup, "forwardElectronTightEt", "TIGHT electron transverse energy [MeV]",100, -1000.0, 250000.0);
139  bookTH2F(m_hTightEtaPhi, electronGroup, "forwardElectronTightEtaPhi", "TIGHT electron #eta,#phi map (candidates with E>10GeV)", 64, -5., 5., 64, -3.2, 3.2);
140  bookTH1F(m_hTightEta, electronGroup, "forwardElectronTightEta", "TIGHT electron #eta", 100, -5., 5.);
141  bookTH1F(m_hTightPhi, electronGroup, "forwardElectronTightPhi", "TIGHT electron #phi", 64, -3.2, 3.2);
142  //bookTH1F(m_hTightTopoEtCone40, electronGroup, "forwardElectronTightTopoEtCone40","TIGHT forward electron Isolation Energy TopoEtCone40", 64, -10000., 40000.);
143  bookTH1F(m_hTightTime, electronGroup, "forwardElectronTightTime", "Time associated with the TIGHT electron cluster [ns]", 90, -30., 60.);
144 
145  // ID PANEL
146  bookTH1FperRegion(m_hvDensity, electronIdGroup, "forwardElectronENG_DENS", "First Moment of Energy Density ;FistEngDens; Nevents", 200,0.,2., start,end);
147  bookTH1FperRegion(m_hvFrac, electronIdGroup, "forwardElectronFRAC_MAX", "Fraction of most energetic cell ;FacMax;Nevents", 50,0.,1., start,end);
148  bookTH1FperRegion(m_hvLongitu, electronIdGroup, "forwardElectronLONGITUDINAL", "Normalized Longitudinal Moment ;Longitudinal;Nevents", 100,0.,1., start,end);
149  bookTH1FperRegion(m_hvLambda, electronIdGroup, "forwardElectron2ND_LAMBDA", "Second Moment of Lambda ;SecondLambda;Nevents", 500,0.,10000.,start,end);
150  bookTH1FperRegion(m_hvLateral, electronIdGroup, "forwardElectronLATERAL", "Normalized Lateral Moment ;Lateral;Nevents", 100,0.,1., start,end);
151  bookTH1FperRegion(m_hvSecondR, electronIdGroup, "forwardElectron2ND_R", "Second Moment of R ;SecondR;Nevents", 500,0.,20000.,start,end);
152  bookTH1FperRegion(m_hvCenterL, electronIdGroup, "forwardElectronCENTER_LAMBDA", "distance of shower center from calo front face;CenterLambda;Nevents",500,0,2000,start,end);
153 
154  bookTH1FperRegion(m_hvTightDensity, electronIdGroup, "forwardElectronTightENG_DENS", "First Moment of Energy Density ;FistEngDens; Nevents", 200,0.,2., start,end);
155  bookTH1FperRegion(m_hvTightFrac, electronIdGroup, "forwardElectronTightFRAC_MAX", "Fraction of most energetic cell ;FacMax;Nevents", 50,0.,1., start,end);
156  bookTH1FperRegion(m_hvTightLongitu, electronIdGroup, "forwardElectronTightLONGITUDINAL", "Normalized Longitudinal Moment ;Longitudinal;Nevents", 100,0.,1., start,end);
157  bookTH1FperRegion(m_hvTightLambda, electronIdGroup, "forwardElectronTight2ND_LAMBDA", "Second Moment of Lambda ;SecondLambda;Nevents", 500,0.,10000.,start,end);
158  bookTH1FperRegion(m_hvTightLateral, electronIdGroup, "forwardElectronTightLATERAL", "Normalized Lateral Moment ;Lateral;Nevents", 100,0.,1., start,end);
159  bookTH1FperRegion(m_hvTightSecondR, electronIdGroup, "forwardElectronTight2ND_R", "Second Moment of R ;SecondR;Nevents", 500,0.,20000.,start,end);
160  bookTH1FperRegion(m_hvTightCenterL, electronIdGroup, "forwardElectronTightCENTER_LAMBDA", "distance of shower center from calo front face;CenterLambda;Nevents",500,0,2000,start,end);
161 
162 
163  // EXPERT PER REGION PANEL
164  bookTH1FperRegion(m_hvN, electronGroup, "forwardElectronN", "Number of LOOSE electrons",40, 0.0, 40.0,start,end);
165  bookTH1FperRegion(m_hvEt, electronGroup, "forwardElectronEt", "LOOSE electron transverse energy [MeV]",100, -1000.0, 250000.0,start,end);
166  bookTH1FperRegion(m_hvEta, electronGroup, "forwardElectronEta","LOOSE electron #eta",64, -5., 5.,start,end);
167  bookTH1FperRegion(m_hvPhi, electronGroup, "forwardElectronPhi","LOOSE electron #phi",64, -3.2, 3.2,start,end);
168  //bookTH1FperRegion(m_hvTopoEtCone40, electronGroup,"forwardElectronTopoEtCone40", "LOOSE Forward electron Isolation Energy TopoEtCone40 [MeV]", 64, -10000., 40000.,start,end);
169  bookTH1FperRegion(m_hvTime,electronGroup,"forwardElectronTime", "LOOSE electron time [ns]",90, -30.0, 60.0,start,end);
170 
171  bookTH1FperRegion(m_hvTightN, electronGroup,"forwardElectronTightN", "Number of TIGHT electrons",40, 0.0, 40.0,start,end);
172  bookTH1FperRegion(m_hvTightEt, electronGroup,"forwardElectronTightEt", "TIGHT electron transverse energy [MeV]",100, -1000.0, 250000.0,start,end);
173  bookTH1FperRegion(m_hvTightEta, electronGroup,"forwardElectronTightEta","TIGHT electron #eta",100, -5., 5.,start,end);
174  bookTH1FperRegion(m_hvTightPhi, electronGroup,"forwardElectronTightPhi","TIGHT electron #phi",64, -3.2, 3.2,start,end);
175  //bookTH1FperRegion(m_hvTightTopoEtCone40, electronGroup,"forwardElectronTightTopoEtCone40", "TIGHT Forward electron Isolation Energy TopoEtCone40 [MeV]", 64, -10000., 40000.,start,end);
176  bookTH1FperRegion(m_hvTightTime, electronGroup,"forwardElectronTightTime", "TIGHT electron time [ns]",90, -30.0, 60.0,start,end);
177 
178  // LB MONITORING PANEL
179  bookTH1F(m_hLB_N, electronLBGroup, "forwardElectronNumbervsLB", "Number of Forward Electrons vs LB", 2000, -0.5, 1999.5);
180 
181  return StatusCode::SUCCESS;
182 }
183 
185 {
186  ATH_MSG_DEBUG("forwardElectronMonTool::fillHistograms()");
187 
188  if (!hasGoodTrigger("forward electron")) return StatusCode::SUCCESS;
189 
190  //check whether Lar signalled event bad
191 
192  if(hasBadLar()) {
193  ATH_MSG_DEBUG("forwardElectronMonTool::hasBadLar()");
194  return StatusCode::RECOVERABLE;
195  }
196 
197  //--------------------
198  //figure out current LB
199  //--------------------
200  unsigned int previousLB = m_currentLB;
202 
203  //deal with the change of LB
204  if (m_currentLB>previousLB) {
205  // update the by LB variables
207  // Reset counters
209  }
210 
211  // Get electron container
213  ATH_CHECK(electron_container.isValid());
214 
215  xAOD::ElectronContainer::const_iterator e_iter = electron_container->begin();
216  xAOD::ElectronContainer::const_iterator e_end = electron_container->end();
217 
218  ATH_MSG_DEBUG("Number of electrons: " << electron_container->size());
219 
220  // Check that the auxiliary store association was made successfully:
221  if( ! electron_container->hasStore() ) {
222  ATH_MSG_DEBUG("No auxiliary store got associated to the electron container with key: " << m_ForwardElectronContainer);
223  return StatusCode::FAILURE;
224  }
225 
226  //
227 
228  int n_tot = 0;
229  int n_tot_tight = 0;
230  std::vector<int> n_el;
231  std::vector<int> n_el_tight;
232  n_el.resize(NREGION,0);
233  n_el_tight.resize(NREGION,0);
234 
235  for (; e_iter!=e_end; ++e_iter) {
236  if(!(*e_iter)) continue;
237  if((*e_iter)->author(xAOD::EgammaParameters::AuthorFwdElectron)==0) continue;
238 
239  // Basic kinematics
240  float et = (*e_iter)->pt();
241  float eta = (*e_iter)->eta();
242  float phi = (*e_iter)->phi();
243  int ir = GetForwardRegion(eta);
244  //ATH_MSG_DEBUG("electrons et, eta and phi" << et << " " << eta << " " << phi);
245 
246  if (et<5000) return StatusCode::SUCCESS;
247 
248  // Isolation Energy
249  //float topoetcone40 = -999.;
250  // Shower shape variable details
251  double firstENGdens=-999.;
252  double lateral=-999.;
253  double secondR=-999.;
254  double centerLambda=-999.;
255  double fracMax=-999.;
256  double longitudinal=-999.;
257  double secondLambda=-999.;
258  double time= -999.;
259 
260  ATH_MSG_DEBUG( "Found one Forward Electron..." );
261 
262  // bool isLoose;
263  // if ((*e_iter)->passSelection(isLoose,"FWDLoose")) { // cut based Loose Forward electrons
264  // if (isLoose) {
265 
266  ATH_MSG_DEBUG( "this electron is also a Loose Forward Electron..." );
267 
268  ++n_tot;
269  ++(n_el[ir]);
270  if(m_hEt) m_hEt->Fill(et);
271  if(m_hEtaPhi&&et>10000.) m_hEtaPhi->Fill(eta,phi);
272  if(m_hEta) m_hEta->Fill(eta);
273  if(m_hPhi) m_hPhi->Fill(phi);
274 
275  m_hLB_N->Fill(m_currentLB);
276 
280 
281  // Isolation Energy
282  //if( (*e_iter)->isolationValue(topoetcone40,xAOD::Iso::topoetcone40)) {
283  // if (m_hTopoEtCone40) m_hTopoEtCone40->Fill(topoetcone40);
284  //}
285  //fillTH1FperRegion(m_hvTopoEtCone40,ir,topoetcone40);
286 
287  // Associated cluster details
288  const xAOD::CaloCluster *aCluster = (*e_iter)->caloCluster();
289 
290  if (aCluster) {
291  // loop on moments
292  if( aCluster->retrieveMoment( xAOD::CaloCluster::FIRST_ENG_DENS,firstENGdens) )
293  fillTH1FperRegion(m_hvDensity,ir,firstENGdens);
294  if( aCluster->retrieveMoment( xAOD::CaloCluster::ENG_FRAC_MAX, fracMax) )
295  fillTH1FperRegion(m_hvFrac,ir,fracMax);
296  if( aCluster->retrieveMoment( xAOD::CaloCluster::LONGITUDINAL, longitudinal) )
297  fillTH1FperRegion(m_hvLongitu,ir,longitudinal);
298  if( aCluster->retrieveMoment( xAOD::CaloCluster::SECOND_LAMBDA,secondLambda) )
299  fillTH1FperRegion(m_hvLambda,ir,secondLambda);
300  if( aCluster->retrieveMoment( xAOD::CaloCluster::LATERAL, lateral) )
302  if( aCluster->retrieveMoment( xAOD::CaloCluster::SECOND_R, secondR) )
304  if( aCluster->retrieveMoment( xAOD::CaloCluster::CENTER_LAMBDA, centerLambda) )
305  fillTH1FperRegion(m_hvCenterL,ir,centerLambda);
306  time = aCluster->time();
307  if (m_hTime) m_hTime->Fill(time);
309  }
310 
311  // TIGHT electrons
312  bool isTight;
313  if((*e_iter)->passSelection(isTight,"Tight")) { // Tight Forward electrons
314  if(isTight) {
315  ATH_MSG_DEBUG( "this electron is also a Tight Forward Electron" );
316  n_tot_tight++;
317  ++(n_el_tight[ir]);
318  if(m_hTightEt) m_hTightEt->Fill(et);
319  if(m_hTightEtaPhi&&et>10000) m_hTightEtaPhi->Fill(eta,phi);
320  if(m_hTightEta) m_hTightEta->Fill(eta);
321  if(m_hTightPhi) m_hTightPhi->Fill(phi);
322  if (m_hTightTime) m_hTightTime->Fill(time);
323  //if (m_hTightTopoEtCone40) m_hTightTopoEtCone40->Fill(topoetcone40);
324 
328 
329  fillTH1FperRegion(m_hvTightDensity,ir,firstENGdens);
331  fillTH1FperRegion(m_hvTightLongitu,ir,longitudinal);
332  fillTH1FperRegion(m_hvTightLambda,ir,secondLambda);
335  fillTH1FperRegion(m_hvTightCenterL,ir,centerLambda);
337  //fillTH1FperRegion(m_hvTightTopoEtCone40,ir,topoetcone40);
338  }
339  } else {
340  ATH_MSG_DEBUG( "Electron selection menu Tight is not defined" );
341  }
342 
343  // Fill number of electrons histograms
344  if (m_hN) m_hN->Fill(n_tot);
345  if (m_hTightN) m_hTightN->Fill(n_tot_tight);
346  for(int i=0;i<NREGION;i++) {
347  fillTH1FperRegion(m_hvN,i,n_el[i]);
348  fillTH1FperRegion(m_hvTightN,i,n_el_tight[i]);
349  }
350  //} else {
351  //ATH_MSG_DEBUG( "Electron selection menu Loose is not defined" );
352  //}
353  }
354 
355  return StatusCode::SUCCESS;
356 }
xAOD::CaloCluster_v1::SECOND_R
@ SECOND_R
Second Moment in .
Definition: CaloCluster_v1.h:123
forwardElectronMonTool::m_hvFrac
std::vector< TH1 * > m_hvFrac
Definition: forwardElectronMonTool.h:53
forwardElectronMonTool::m_nForwardElectronsPerLumiBlock
std::vector< int > m_nForwardElectronsPerLumiBlock
Definition: forwardElectronMonTool.h:89
xAOD::CaloCluster_v1::time
flt_t time() const
Access cluster time.
forwardElectronMonTool::m_hvPhi
std::vector< TH1 * > m_hvPhi
Definition: forwardElectronMonTool.h:47
forwardElectronMonTool::m_hEta
TH1 * m_hEta
Definition: forwardElectronMonTool.h:37
et
Extra patterns decribing particle interation process.
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
forwardElectronMonTool::m_hPhi
TH1 * m_hPhi
Definition: forwardElectronMonTool.h:38
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
forwardElectronMonTool::m_hvLongitu
std::vector< TH1 * > m_hvLongitu
Definition: forwardElectronMonTool.h:54
forwardElectronMonTool::m_hTightEt
TH1 * m_hTightEt
Definition: forwardElectronMonTool.h:62
forwardElectronMonTool::m_hvTightTime
std::vector< TH1 * > m_hvTightTime
Definition: forwardElectronMonTool.h:75
egammaMonToolBase::initialize
virtual StatusCode initialize() override
Definition: egammaMonToolBase.cxx:60
forwardElectronMonTool::forwardElectronMonTool
forwardElectronMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: forwardElectronMonTool.cxx:83
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
forwardElectronMonTool::m_hEt
TH1 * m_hEt
Definition: forwardElectronMonTool.h:36
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
forwardElectronMonTool::m_hvCenterL
std::vector< TH1 * > m_hvCenterL
Definition: forwardElectronMonTool.h:58
xAOD::CaloCluster_v1::CENTER_LAMBDA
@ CENTER_LAMBDA
Shower depth at Cluster Centroid.
Definition: CaloCluster_v1.h:136
egammaMonToolBase::ENDCAP
@ ENDCAP
Definition: egammaMonToolBase.h:86
forwardElectronMonTool::m_hvTightPhi
std::vector< TH1 * > m_hvTightPhi
Definition: forwardElectronMonTool.h:73
forwardElectronMonTool::m_hvTightSecondR
std::vector< TH1 * > m_hvTightSecondR
Definition: forwardElectronMonTool.h:83
forwardElectronMonTool::m_hvTightEt
std::vector< TH1 * > m_hvTightEt
Definition: forwardElectronMonTool.h:71
xAOD::EgammaParameters::AuthorFwdElectron
const uint16_t AuthorFwdElectron
Electron reconstructed by the Forward cluster-based algorithm.
Definition: EgammaDefs.h:30
egammaMonToolBase::bookTH1F
void bookTH1F(TH1 *&h, MonGroup &mygroup, const std::string &hname, const std::string &htitle, int nbins, float low, float high)
Definition: egammaMonToolBase.cxx:100
egammaMonToolBase::fillTH1FperRegion
static void fillTH1FperRegion(std::vector< TH1 * > &vhist, unsigned int ir, float x)
Definition: egammaMonToolBase.cxx:178
xAOD::CaloCluster_v1::ENG_FRAC_MAX
@ ENG_FRAC_MAX
Energy fraction of hottest cell.
Definition: CaloCluster_v1.h:140
forwardElectronMonTool::m_hvSecondR
std::vector< TH1 * > m_hvSecondR
Definition: forwardElectronMonTool.h:57
egammaMonToolBase::bookTH1FperRegion
void bookTH1FperRegion(std::vector< TH1 * > &vhist, MonGroup &mygroup, const std::string &hname, const std::string &htitle, int nbins, float low, float high, unsigned int min_region, unsigned int max_region)
Definition: egammaMonToolBase.cxx:132
forwardElectronMonTool::m_hvEt
std::vector< TH1 * > m_hvEt
Definition: forwardElectronMonTool.h:45
forwardElectronMonTool::m_hvTightLambda
std::vector< TH1 * > m_hvTightLambda
Definition: forwardElectronMonTool.h:81
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
xAOD::CaloCluster_v1::SECOND_LAMBDA
@ SECOND_LAMBDA
Second Moment in .
Definition: CaloCluster_v1.h:124
forwardElectronMonTool::m_hvTightDensity
std::vector< TH1 * > m_hvTightDensity
Definition: forwardElectronMonTool.h:78
forwardElectronMonTool::m_hTightEtaPhi
TH2 * m_hTightEtaPhi
Definition: forwardElectronMonTool.h:65
egammaMonToolBase
Definition: egammaMonToolBase.h:72
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:137
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
egammaMonToolBase::FORWARD
@ FORWARD
Definition: egammaMonToolBase.h:86
forwardElectronMonTool::m_hTightN
TH1 * m_hTightN
Definition: forwardElectronMonTool.h:61
ElectronContainer.h
forwardElectronMonTool::m_hvLateral
std::vector< TH1 * > m_hvLateral
Definition: forwardElectronMonTool.h:56
lumiFormat.i
int i
Definition: lumiFormat.py:85
forwardElectronMonTool::m_hTightEta
TH1 * m_hTightEta
Definition: forwardElectronMonTool.h:63
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
forwardElectronMonTool::m_hvTightN
std::vector< TH1 * > m_hvTightN
Definition: forwardElectronMonTool.h:70
perfmonmt-refit.n_tot
n_tot
Definition: perfmonmt-refit.py:104
test_pyathena.parent
parent
Definition: test_pyathena.py:15
AthenaMonManager.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAOD::CaloCluster_v1::retrieveMoment
bool retrieveMoment(MomentType type, double &value) const
Retrieve individual moment.
Definition: CaloCluster_v1.cxx:738
run
Definition: run.py:1
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
xAOD::CaloCluster_v1::FIRST_ENG_DENS
@ FIRST_ENG_DENS
First Moment in E/V.
Definition: CaloCluster_v1.h:143
forwardElectronMonTool::m_hvTightFrac
std::vector< TH1 * > m_hvTightFrac
Definition: forwardElectronMonTool.h:79
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
forwardElectronMonTool::m_hvDensity
std::vector< TH1 * > m_hvDensity
Definition: forwardElectronMonTool.h:52
forwardElectronMonTool::m_hTightTime
TH1 * m_hTightTime
Definition: forwardElectronMonTool.h:67
forwardElectronMonTool::m_hEtaPhi
TH2 * m_hEtaPhi
Definition: forwardElectronMonTool.h:39
EventInfo.h
egammaMonToolBase::NREGION
@ NREGION
Definition: egammaMonToolBase.h:86
forwardElectronMonTool::m_ForwardElectronContainer
SG::ReadHandleKey< xAOD::ElectronContainer > m_ForwardElectronContainer
Definition: forwardElectronMonTool.h:32
ir
int ir
counter of the current depth
Definition: fastadd.cxx:49
forwardElectronMonTool::m_hTime
TH1 * m_hTime
Definition: forwardElectronMonTool.h:41
forwardElectronMonTool::bookHistograms
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
Definition: forwardElectronMonTool.cxx:113
forwardElectronMonTool::m_lumiBlockNumber
unsigned int m_lumiBlockNumber
Definition: forwardElectronMonTool.h:87
forwardElectronMonTool::fillHistograms
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
Definition: forwardElectronMonTool.cxx:184
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
forwardElectronMonTool::m_hvTightCenterL
std::vector< TH1 * > m_hvTightCenterL
Definition: forwardElectronMonTool.h:84
forwardElectronMonTool::m_hvTightLongitu
std::vector< TH1 * > m_hvTightLongitu
Definition: forwardElectronMonTool.h:80
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
egammaMonToolBase::m_currentLB
unsigned int m_currentLB
Definition: egammaMonToolBase.h:112
xAOD::CaloCluster_v1::LATERAL
@ LATERAL
Normalized lateral moment.
Definition: CaloCluster_v1.h:137
forwardElectronMonTool::initialize
virtual StatusCode initialize() override
Definition: forwardElectronMonTool.cxx:106
Electron.h
forwardElectronMonTool::m_hvTime
std::vector< TH1 * > m_hvTime
Definition: forwardElectronMonTool.h:49
forwardElectronMonTool::m_hvN
std::vector< TH1 * > m_hvN
Definition: forwardElectronMonTool.h:44
forwardElectronMonTool::m_hvTightEta
std::vector< TH1 * > m_hvTightEta
Definition: forwardElectronMonTool.h:72
forwardElectronMonTool.h
forwardElectronMonTool::m_hLB_N
TH1 * m_hLB_N
Definition: forwardElectronMonTool.h:86
egammaMonToolBase::getCurrentLB
unsigned int getCurrentLB()
Definition: egammaMonToolBase.cxx:82
ManagedMonitorToolBase::ATTRIB_X_VS_LB
@ ATTRIB_X_VS_LB
Definition: ManagedMonitorToolBase.h:130
xAOD::CaloCluster_v1::LONGITUDINAL
@ LONGITUDINAL
Normalized longitudinal moment.
Definition: CaloCluster_v1.h:138
egammaMonToolBase::hasBadLar
bool hasBadLar()
Definition: egammaMonToolBase.cxx:222
egammaMonToolBase::bookTH2F
void bookTH2F(TH2 *&h, MonGroup &mygroup, const std::string &hname, const std::string &htitle, int nbinsx, float xlow, float xhigh, int nbinsy, float ylow, float yhigh)
Definition: egammaMonToolBase.cxx:113
egammaMonToolBase::hasGoodTrigger
bool hasGoodTrigger(const std::string &comment)
Definition: egammaMonToolBase.cxx:288
StoreGateSvc.h
forwardElectronMonTool::m_hN
TH1 * m_hN
Definition: forwardElectronMonTool.h:35
forwardElectronMonTool::m_nForwardElectronsInCurrentLB
unsigned int m_nForwardElectronsInCurrentLB
Definition: forwardElectronMonTool.h:88
forwardElectronMonTool::m_hTightPhi
TH1 * m_hTightPhi
Definition: forwardElectronMonTool.h:64
forwardElectronMonTool::m_hvLambda
std::vector< TH1 * > m_hvLambda
Definition: forwardElectronMonTool.h:55
forwardElectronMonTool::m_hvTightLateral
std::vector< TH1 * > m_hvTightLateral
Definition: forwardElectronMonTool.h:82
forwardElectronMonTool::m_hvEta
std::vector< TH1 * > m_hvEta
Definition: forwardElectronMonTool.h:46
egammaMonToolBase::GetForwardRegion
static int GetForwardRegion(float eta)
Definition: egammaMonToolBase.cxx:194