ATLAS Offline Software
electronMonTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 //
7 // 2014-05-21 Author: Remi Lafaye (Annecy)
8 // 2015-01-26 Author: Bertrand LAFORGE (LPNHE Paris)
9 //
10 // 2015-05-22 Add monitoring of LH Medium and Tight electrons, cut based Medium and Tight electrons
11 // Add LumiAware distributions
12 //
13 // NAME: electronMonTool.cxx
14 // PACKAGE: offline/Reconstruction/egamma/egammaPerformance
15 // PURPOSE: Shifter should look for the following defects:
16 // taken from https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/EgammaShifts
17 //
18 // in energies (Et plots for electrons and photons)
19 // ===========
20 // LOWSTAT : For short runs and not enough statistics when not being able
21 // to judge the result using the egamma stream. Needs to be commented.
22 //
23 // ENERGY_(BARREL,ENDCAP,CRACK,FORWARD) : This defect is a significant energy
24 // mis-calibration is observed for a certain part of the detector. This flag
25 // is then intolerable for that detector region.
26 //
27 // LARNOISE_(BARREL,ENDCAP,FORWARD) : If some part of the detector is miscalibrated
28 // causing an energy shift of at least 5% this intolerable defect should be set.
29 //
30 // in eta,phi (eta,phi 2D plots for electrons and photons)
31 // ==========
32 // ETAPHI_SPIKES/LOWOCCUPANCY : Non standard distribution (eta phi plane) of egamma
33 // objects. Region with unusual density of electrons / photons. This could be produced
34 // by a problem in the LAR calorimeter. If there is a spike in the distribution set
35 // EGAMMA_ETAPHI_SPIKES as defect. Examples of runs with this problem can be found in
36 // Click for image. (hot spot) and Click for image. (FEB with 100% rejection during part
37 // of the run). If a HV trip could not be recovered during the run, there will be a region
38 // in the eta phi plane with low occupancy. Then set the defect EGAMMA_LOWOCCUPANCY.
39 //
40 // in eta and phi (eta,phi 1D plots for electrons)
41 // ==============
42 // BEAMSPOT : When the beamspot is shifted with respect to the nominal position the
43 // azimuthal distribution (phi) of tracks is different than normal. When the new
44 // constants for the beam spot get uploaded and reprocessed this defect vanishes.
45 // This is an intolerable defect so only use it after checking the bulk reconstruction,
46 // in some cases express reconstruction can have this problem but usually is solved at
47 // the bulk. Example of the run with a failure in the determination of the beam spot can
48 // be found in Click for image..
49 //
50 // BAD_BLAYER : To be used when the distributions (eta, phi) for medium and tight electrons
51 // have marked excess or defect of entries due to a problem with the b-layer. If this happens
52 // the loose distributions will look fine. To distinguish between this and TRT problem more
53 // details on the run and investigation will be needed. If you have to use this defect you
54 // should document it in the EgammaShiftsBadRuns page. Example of the result of a b-layer
55 // module with low efficiency can be found in Click for image..
56 //
57 // BAD_TRT : To be used when the distributions (eta, phi) for tight electrons / photons have
58 // marked excess or defect of entries due to a problem with the TRT (due to the high threshold
59 // requirement). If this happens the loose and medium distributions will look fine. To distinguish
60 // between this and pixel (b-layer) problem more details on the run and investigation will be needed.
61 // If you have to use this defect you should document it in the Runs List page. Example of the result
62 // of a few RODs disabled in TRT can be found in Click for image..
63 //
64 // in electron ID
65 // ==============
66 // SHAPES : Bad shape for defining variables of electrons or photons. Distributions do not match
67 // the references. As the other defects they can be recoverable or not recoverable. In case, of
68 // a hardware related issue, it will be likely not recoverable, problems related with alignment
69 // or calibration will be likely recoverable. Example of this defect can be found in Click for image.
70 // (decrease in the number of Si Hits due to BCID problem in SCT).
71 //
73 
74 
75 #include "electronMonTool.h"
76 
77 electronMonTool::electronMonTool(const std::string & type, const std::string & name, const IInterface* parent) :
79 {
80  bool WithFullHistList = true;
81  bool WithLimitedHistList = false;
82 
83  m_LhLooseElectrons = new electronHist(std::string("LhLoose"), WithFullHistList);
84  m_LhMediumElectrons = new electronHist(std::string("LhMedium"), WithFullHistList);
85  m_CbLooseElectrons = new electronHist(std::string("CbLoose"), WithLimitedHistList);
86  m_LhTightElectrons = new electronHist(std::string("LhTight"), WithFullHistList);
87  m_CbTightElectrons = new electronHist(std::string("CbTight"), WithLimitedHistList);
88 
89  m_currentLB = -1;
90 }
91 
93 {
94 
95  delete m_CbTightElectrons;
96  delete m_LhTightElectrons;
97  delete m_CbLooseElectrons;
98  delete m_LhMediumElectrons;
99  delete m_LhLooseElectrons;
100 
101 }
102 
104 {
107  return StatusCode::SUCCESS;
108 }
109 
111 {
112 
113  ATH_MSG_DEBUG("electronMonTool::bookHistogramsForOneElectron()");
114 
115  int start = 0;
116  int end = ENDCAP;
117 
118  // MAIN PANEL
119  bookTH1F(myHist.m_hN, *m_electronGroup, "electronN", "Number of electrons", 20, 0.0, 20.0, myHist.m_nameOfEgammaType);
120  bookTH1F(myHist.m_hEt, *m_electronGroup, "electronEt", "Electron transverse energy [MeV]", 100, -1000.0, 250000.0, myHist.m_nameOfEgammaType);
121  bookTH2F(myHist.m_hEtaPhi4GeV, *m_electronGroup, "electronEtaPhiPtgt4GeV", "Electron #eta,#phi map (candidates with Pt>4GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
122  bookTH1F(myHist.m_hEta, *m_electronGroup, "electronEta", "Electron #eta", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
123  bookTH1F(myHist.m_hPhi, *m_electronGroup, "electronPhi", "Electron #phi", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
124  bookTH1F(myHist.m_hTopoEtCone40, *m_electronGroup, "electronTopoEtCone40", "Electron Topocluster Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
125  bookTH1F(myHist.m_hPtCone20, *m_electronGroup, "electronPtCone20", "Electron Track Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
126  bookTH1F(myHist.m_hTime, *m_electronGroup, "electronTime", "Time associated with electron cluster [ns]", 90, -30., 60., myHist.m_nameOfEgammaType);
127 
128  // EXPERT PANEL
129  bookTH2F(myHist.m_hEtaPhi, *m_electronGroup, "electronEtaPhiPtgt2.5GeV", "Electron #eta,#phi map (candidates with Pt>2.5GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
130  bookTH2F(myHist.m_hEtaPhi20GeV, *m_electronGroup, "electronEtaPhiPtgt20GeV", "Electron #eta,#phi map (candidates with Pt>20GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
131 
132  // PER REGION IN EXPERT PANEL
133  if (myHist.m_fullHistoList) {
134  bookTH1FperRegion(myHist.m_hvN, *m_electronGroup, "electronN", "Electron number ; Nel ; Nevents",20, 0.0, 20.0,start,end, myHist.m_nameOfEgammaType);
135  bookTH1FperRegion(myHist.m_hvEta, *m_electronGroup, "electronEta", "Electron #eta distribution ; #eta ; Nevents",64, -3.2, 3.2,start,end, myHist.m_nameOfEgammaType);
136  bookTH1FperRegion(myHist.m_hvPhi, *m_electronGroup, "electronPhi", "Electron #phi distribution ; #phi ; Nevents", 64, -3.2, 3.2,start,end, myHist.m_nameOfEgammaType);
137  bookTH1FperRegion(myHist.m_hvEt, *m_electronGroup, "electronEt", "Electron Et distribution ; Et [MeV] ; Nevents", 100, -1000.0, 250000.0,start,end, myHist.m_nameOfEgammaType);
138  bookTH1FperRegion(myHist.m_hvTopoEtCone40, *m_electronGroup, "electronTopoEtCone40", "Electron Isolation Energy TopoEtCone40 [MeV] ; Eiso ; Nevents", 64, -10000., 40000.,start,end, myHist.m_nameOfEgammaType);
139  bookTH1FperRegion(myHist.m_hvPtCone20, *m_electronGroup, "electronPtCone20", "Electron PtCone20 distribution ; PtCone20 ; Nevents", 64, -10000., 40000.,start,end, myHist.m_nameOfEgammaType);
140  bookTH1FperRegion(myHist.m_hvTime, *m_electronGroup, "electronTime", "Electron time [ns] ; Time [ns] ; Nevents", 90, -30.0, 60.0,start,end, myHist.m_nameOfEgammaType);
141 
142  // TRACK PANEL
143  bookTH1FperRegion(myHist.m_hvNOfBLayerHits, *m_electronTrkGroup, "electronNOfBLayersHits", "Electron number of track B-Layer Hits ; N B-layer hits ; Nevents", 6,-0.5,5.5,start,end, myHist.m_nameOfEgammaType);
144  bookTH1FperRegion(myHist.m_hvNOfSiHits, *m_electronTrkGroup,"electronNOfSiHits", "Electron number of track precision Hits ;N Si hits;Nevents", 26,-0.5,25.5,start,end, myHist.m_nameOfEgammaType);
145  bookTH1FperRegion(myHist.m_hvNOfTRTHits, *m_electronTrkGroup, "electronNOfTRTHits", "Electron number of TRT Hits ;N TRT hits;Nevents", 51,-0.5,50.5,start,end, myHist.m_nameOfEgammaType);
146  bookTH1FperRegion(myHist.m_hvNOfTRTHighThresholdHits, *m_electronTrkGroup, "electronNOfTRTHighThresholdHits", "Electron number of High Threshold TRT Hits ;N TRT High Threshold hits;Nevents", 51,-0.5,50.5,start,end, myHist.m_nameOfEgammaType);
147  bookTH1FperRegion(myHist.m_hvDeltaEta1, *m_electronTrkGroup,"electronDeltaEta1", "electron track match #Delta #eta (1st sampling) ;#Delta #eta;Nevents", 50,-0.05,0.05,start,end, myHist.m_nameOfEgammaType);
148  bookTH1FperRegion(myHist.m_hvDeltaPhi2, *m_electronTrkGroup, "electronDeltaPhi2", "electron track match #Delta #phi (2nd sampling) ;#Delta #phi ; Nevents", 50,-0.15,0.1,start,end, myHist.m_nameOfEgammaType);
149  bookTH1FperRegion(myHist.m_hvd0, *m_electronTrkGroup, "electronTrackd0", "electron track match d0 ; d0 ; Nevents", 100,-5.,5.,start,end, myHist.m_nameOfEgammaType);
150 
151  // ID PANEL
152  bookTH1FperRegion(myHist.m_hvEhad1, *m_electronIdGroup, "electronEhad1", "Electron energy leakage in 1st hadronic sampling ; Ehad 1; Nevents", 50, -1000., 10000.,start,end, myHist.m_nameOfEgammaType);
153  bookTH1FperRegion(myHist.m_hvEoverP, *m_electronIdGroup, "electronEoverP", "Electron match track E over P ; E/p ; Nevents", 50,0,5,start,end, myHist.m_nameOfEgammaType);
154  bookTH1FperRegion(myHist.m_hvCoreEM, *m_electronIdGroup, "electronCoreEM", "Electron core energy in EM calorimeter ;E [MeV]; Nevents", 50, -5000., 250000.,start,end, myHist.m_nameOfEgammaType);
155  bookTH1FperRegion(myHist.m_hvF0, *m_electronIdGroup, "electronF0", "Electron fractional energy in PreSampler ; F0 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
156  bookTH1FperRegion(myHist.m_hvF1, *m_electronIdGroup, "electronF1", "Electron fractional energy in 1st sampling ; F1 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
157  bookTH1FperRegion(myHist.m_hvF2, *m_electronIdGroup,"electronF2", "Electron fractional energy in 2nd sampling ; F2 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
158  bookTH1FperRegion(myHist.m_hvF3, *m_electronIdGroup, "electronF3", "Electron fractional energy in 3rd sampling ; F3 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
159  bookTH1FperRegion(myHist.m_hvRe233e237, *m_electronIdGroup, "electronRe233e237", "Electron uncor. energy fraction in 3x3/3x7 cells in em sampling 2 ;R 3x3/3x7; Nevents", 50, 0., 2.,start,end, myHist.m_nameOfEgammaType);
160  bookTH1FperRegion(myHist.m_hvRe237e277, *m_electronIdGroup, "electronRe237e277", "Electron uncor. energy fraction in 3x7/7x7 cells in em sampling 2 ;R 3x7/7x7; Nevents", 50, 0., 2.,start,end, myHist.m_nameOfEgammaType);
161  }
162 
163  // LUMI DEPENDANT PANEL
164  bookTH1F(myHist.m_hLB_N, *m_electronLBGroup, "LBEvoNElectrons", "Number of Electrons vs LB", 2000, -0.5, 1999.5, myHist.m_nameOfEgammaType);
165 
166  return StatusCode::SUCCESS;
167 
168 }
169 
170 
172 {
173  ATH_MSG_DEBUG("electronMonTool::bookHistograms()");
174 
175  // Create groups
176  m_electronGroup = new MonGroup(this,"egamma/electrons"+m_GroupExtension,run); // to be re-booked every new run
177  // Create sub groups
178  m_electronTrkGroup = new MonGroup(this,"egamma/electrons"+m_GroupExtension+"/Track", run); // to be re-booked every new run
179  m_electronIdGroup = new MonGroup(this,"egamma/electrons"+m_GroupExtension+"/ID", run); // to be re-booked every new run
180  m_electronLBGroup = new MonGroup(this,"egamma/electrons"+m_GroupExtension+"/LBMon", run, ATTRIB_X_VS_LB, "", "merge"); // to be re-booked every new run
181 
187 
188  return StatusCode::SUCCESS;
189 }
190 
192  electronHist& myHist){
193 
194  // Basic kinematics
195 
196  float et = (*e_iter)->pt();
197  float eta = (*e_iter)->eta();
198  float phi = (*e_iter)->phi();
199  int ir = GetRegion(eta);
200 
201  ATH_MSG_DEBUG("electrons et, eta and phi" << et << " " << eta << " " << phi);
202 
203  if (et<2500) return StatusCode::SUCCESS;
204 
205  ++myHist.m_nElectronsPerRegion[ir];
206  ++myHist.m_nElectrons;
207 
208  myHist.m_nElectronsInCurrentLB++;
209 
210  if(myHist.m_hEt) myHist.m_hEt->Fill(et);
211  if(myHist.m_hEtaPhi) myHist.m_hEtaPhi->Fill(eta,phi);
212  if(myHist.m_hEtaPhi4GeV&&et>4000) myHist.m_hEtaPhi4GeV->Fill(eta,phi);
213  if(myHist.m_hEtaPhi20GeV&&et>20000) myHist.m_hEtaPhi20GeV->Fill(eta,phi);
214  if(myHist.m_hEta) myHist.m_hEta->Fill(eta);
215  if(myHist.m_hPhi) myHist.m_hPhi->Fill(phi);
216 
217  myHist.m_hLB_N->Fill(m_currentLB);
218 
219  if (myHist.m_fullHistoList) {
220  fillTH1FperRegion(myHist.m_hvEt,ir,et);
223 
224  // Cluster track match details
225  float deltaEta1 = -999.0;
226  if( (*e_iter)->trackCaloMatchValue(deltaEta1, xAOD::EgammaParameters::deltaEta1) ) {
228  }
229  float deltaPhi2 = -999.0;
230  if( (*e_iter)->trackCaloMatchValue(deltaPhi2, xAOD::EgammaParameters::deltaPhi2) ) {
232  }
233  }
234 
235  // Isolation Energy
236  float topoetcone40;
237  if( (*e_iter)->isolationValue(topoetcone40,xAOD::Iso::topoetcone40)) {
238  myHist.m_hTopoEtCone40->Fill(topoetcone40);
239  }
240  float ptcone20;
241  if( (*e_iter)->isolationValue(ptcone20,xAOD::Iso::ptcone20)) {
242  myHist.m_hPtCone20->Fill(ptcone20);
243  }
244 
245  if (myHist.m_fullHistoList) {
248  }
249 
250  ATH_MSG_DEBUG("isolation topocone40=" << topoetcone40 << " ptcone20=" << ptcone20 );
251 
252  // Shower shape variable details
253  float ehad1 = 0.0;
254  float ecore = 0.0;
255  float f1 = 0.0;
256  float f3 = 0.0;
257  float e233 = 0.0;
258  float e237 = 0.0;
259  float e277 = 0.0;
260 
261  if (myHist.m_fullHistoList) {
262  if( (*e_iter)->showerShapeValue(ehad1, xAOD::EgammaParameters::ehad1) ) {
264  }
265  if( (*e_iter)->showerShapeValue(ecore, xAOD::EgammaParameters::ecore) ) {
267  }
268  if( (*e_iter)->showerShapeValue(f1, xAOD::EgammaParameters::f1) ) {
269  fillTH1FperRegion(myHist.m_hvF1,ir,f1);
270  }
271  if( (*e_iter)->showerShapeValue(f3, xAOD::EgammaParameters::f3) ) {
272  fillTH1FperRegion(myHist.m_hvF3,ir,f3);
273  }
274  if( (*e_iter)->showerShapeValue(e237, xAOD::EgammaParameters::e237) ) {
275  float Re233e237 = 0.0;
276  if( e237!=0 && (*e_iter)->showerShapeValue(e233, xAOD::EgammaParameters::e233) ) {
277  Re233e237 = e233 / e237;
278  }
279  fillTH1FperRegion(myHist.m_hvRe233e237,ir,Re233e237);
280  float Re237e277 = 0.0;
281  if( e237!=0 && (*e_iter)->showerShapeValue(e277, xAOD::EgammaParameters::e277) ) {
282  if(e277!=0) Re237e277 = e237 / e277;
283  }
284  fillTH1FperRegion(myHist.m_hvRe237e277,ir,Re237e277);
285  }
286  }
287 
288  // Associated track details
289  const xAOD::TrackParticle *t = (*e_iter)->trackParticle();
290  double trackp = 0;
291  unsigned char numberOfInnermostPixelLayerHits=-1;
292  unsigned char numberOfPixelHits=-1;
293  unsigned char numberOfSCTHits=-1;
294  unsigned char numberOfTRTHits=-1;
295 
296  if (myHist.m_fullHistoList) {
297  if(t) {
298  trackp = t->pt()*cosh(t->eta());
299  // retrieve track summary information
302  }
303  if( t->summaryValue(numberOfPixelHits,xAOD::numberOfPixelHits) && t->summaryValue(numberOfSCTHits,xAOD::numberOfSCTHits) ) {
305  }
306  if( t->summaryValue(numberOfTRTHits,xAOD::numberOfTRTHits) ) {
308  }
309  if(t->d0()) {
310  fillTH1FperRegion(myHist.m_hvd0,ir,t->d0());
311  }
312  } else ATH_MSG_DEBUG( "Error attempting to retrieve associated track");
313  }
314 
315  // Associated cluster details
316  const xAOD::CaloCluster *aCluster = (*e_iter)->caloCluster();
317  if (aCluster) {
318  float time= aCluster->time();
319  myHist.m_hTime->Fill(time);
320  if (myHist.m_fullHistoList) {
322  float ep = 0;
323  if(trackp !=0) ep = aCluster->e()/trackp;
324  fillTH1FperRegion(myHist.m_hvEoverP,ir,ep);
325  double ec = aCluster->et()*cosh(aCluster->eta());
326  float f0=0.0;
327  if (ec!=0) f0 = aCluster->energyBE(0)/ec;
328  fillTH1FperRegion(myHist.m_hvF0,ir,f0);
329  float f1=0.0;
330  if (ec!=0) f1 = aCluster->energyBE(1)/ec;
331  fillTH1FperRegion(myHist.m_hvF1,ir,f1);
332  float f2 = 0.0;
333  if(ec!=0) f2 = aCluster->energyBE(2)/ec;
334  fillTH1FperRegion(myHist.m_hvF2,ir,f2);
335  float f3=0.0;
336  if (ec!=0) f3 = aCluster->energyBE(3)/ec;
337  fillTH1FperRegion(myHist.m_hvF3,ir,f3);
338  }
339  } else ATH_MSG_WARNING("Can't get CaloCluster");
340 
341  return StatusCode::SUCCESS;
342 }
343 
345  ATH_MSG_DEBUG("electronMonTool::fillHistograms()");
346 
347  if (!hasGoodTrigger("single electron")) return StatusCode::SUCCESS;
348 
349  //check whether Lar signalled event bad
350  if(hasBadLar()) {
351  ATH_MSG_DEBUG("electronMonTool::hasBadLar()");
352  return StatusCode::SUCCESS;
353  }
354 
355  //--------------------
356  //figure out current LB
357  //--------------------
358  unsigned int previousLB = m_currentLB;
360 
361  //deal with the change of LB
362  if (m_currentLB>previousLB) {
363 
364  // update the by LB variables
370 
371  // Reset counters
377  }
378 
379  // Get electron container
381  ATH_CHECK(electron_container.isValid());
382 
383  // Check that the auxiliary store association was made successfully:
384  if( ! electron_container->hasStore() ) {
385  ATH_MSG_DEBUG("No auxiliary store got associated to the electron container with key: " << m_ElectronContainer);
386  return StatusCode::FAILURE;
387  }
388 
389  // Loop on electron container
390 
391  xAOD::ElectronContainer::const_iterator e_iter = electron_container->begin();
392  xAOD::ElectronContainer::const_iterator e_end = electron_container->end();
393  ATH_MSG_DEBUG("Number of electrons: " << electron_container->size());
394 
400 
406 
407  for (; e_iter!=e_end; ++e_iter){
408  if(!(*e_iter)) continue;
409 
410  // Formally unnecessary because all electrons in the container have these authors by construction
411  if (!((*e_iter)->author(xAOD::EgammaParameters::AuthorElectron)|| (*e_iter)->author(xAOD::EgammaParameters::AuthorAmbiguous))) continue;
412 
413  //reject electrons outside the kinematic acceptance
414  if ((*e_iter)->pt()<= 7000. && std::abs((*e_iter)->eta()) >= 2.47 ) continue;
415 
416  // Check what electron is being processed
417  bool isGood;
418  // CbMedium
419  if((*e_iter)->passSelection(isGood,"Medium")) {
420  if(isGood) {
422  }
423  } else ATH_MSG_WARNING( "Electron selection menu Medium is not defined" );
424 
425  // LhLoose
426  if((*e_iter)->passSelection(isGood,"LHLoose")) {
427  if(isGood) {
429  }
430  } else ATH_MSG_WARNING( "Electron selection LHLoose is not defined" );
431 
432  // LhMedium
433  if((*e_iter)->passSelection(isGood,"LHMedium")) {
434  if(isGood) {
436  }
437  } else ATH_MSG_WARNING( "Electron selection LHMedium is not defined" );
438 
439  // CbTight
440  if((*e_iter)->passSelection(isGood,"Tight")) {
441  if(isGood) {
443  }
444  } else ATH_MSG_WARNING( "Electron selection menu Tight is not defined" );
445 
446  // LhTight
447  if((*e_iter)->passSelection(isGood,"LHTight")) {
448  if(isGood) {
450  }
451  } else ATH_MSG_WARNING( "Electron selection menu LHTight is not defined" );
452 
453  }
454 
455  // Fill number of electrons histograms
461 
462  for(int i=0;i<NREGION;i++) {
468  }
469 
470  return StatusCode::SUCCESS;
471 }
egammaBaseHist::m_hvN
std::vector< TH1 * > m_hvN
Definition: egammaMonToolBase.h:52
egammaBaseHist::m_hvF1
std::vector< TH1 * > m_hvF1
Definition: egammaMonToolBase.h:45
xAOD::EgammaParameters::ehad1
@ ehad1
E leakage into 1st sampling of had calo (CaloSampling::HEC0 + CaloSampling::TileBar0 + CaloSampling::...
Definition: EgammaEnums.h:48
xAOD::EgammaParameters::e233
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
Definition: EgammaEnums.h:68
xAOD::CaloCluster_v1::time
flt_t time() const
Access cluster time.
et
Extra patterns decribing particle interation process.
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
electronMonTool::fillHistogramsForOneElectron
virtual StatusCode fillHistogramsForOneElectron(xAOD::ElectronContainer::const_iterator e_iter, electronHist &myHist)
Definition: electronMonTool.cxx:191
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
egammaMonToolBase::initialize
virtual StatusCode initialize() override
Definition: egammaMonToolBase.cxx:60
electronMonTool::m_ElectronContainer
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainer
Definition: electronMonTool.h:86
electronMonTool::electronMonTool
electronMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: electronMonTool.cxx:77
egammaBaseHist::m_hvRe233e237
std::vector< TH1 * > m_hvRe233e237
Definition: egammaMonToolBase.h:48
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
egammaBaseHist::m_hN
TH1 * m_hN
Definition: egammaMonToolBase.h:30
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
electronMonTool::m_electronTrkGroup
MonGroup * m_electronTrkGroup
Definition: electronMonTool.h:95
egammaBaseHist::m_hEt
TH1 * m_hEt
Definition: egammaMonToolBase.h:31
xAOD::EgammaParameters::ecore
@ ecore
core energy in em calo E(core) = E0(3x3) + E1(15x2) + E2(5x5) + E3(3x5)
Definition: EgammaEnums.h:152
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
egammaBaseHist::m_hEtaPhi
TH2 * m_hEtaPhi
Definition: egammaMonToolBase.h:34
xAOD::Iso::ptcone20
@ ptcone20
Track isolation.
Definition: IsolationType.h:40
xAOD::CaloCluster_v1::et
double et() const
Definition: CaloCluster_v1.h:856
electronMonTool.h
egammaMonToolBase::ENDCAP
@ ENDCAP
Definition: egammaMonToolBase.h:86
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
electronHist::m_hvNOfSiHits
std::vector< TH1 * > m_hvNOfSiHits
Definition: electronMonTool.h:52
egammaBaseHist::m_hEta
TH1 * m_hEta
Definition: egammaMonToolBase.h:32
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
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
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
electronMonTool::initialize
virtual StatusCode initialize() override
Definition: electronMonTool.cxx:103
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
read_hist_ntuple.f2
f2
Definition: read_hist_ntuple.py:20
electronHist::m_fullHistoList
bool m_fullHistoList
Definition: electronMonTool.h:33
egammaBaseHist::m_hvEhad1
std::vector< TH1 * > m_hvEhad1
Definition: egammaMonToolBase.h:42
xAOD::EgammaParameters::f3
@ f3
fraction of energy reconstructed in 3rd sampling
Definition: EgammaEnums.h:54
egammaMonToolBase
Definition: egammaMonToolBase.h:72
electronHist::m_hvNOfTRTHits
std::vector< TH1 * > m_hvNOfTRTHits
Definition: electronMonTool.h:53
electronMonTool::m_electronLBGroup
MonGroup * m_electronLBGroup
Definition: electronMonTool.h:97
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
electronMonTool::m_electronGroup
MonGroup * m_electronGroup
Definition: electronMonTool.h:94
xAOD::EgammaParameters::f1
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
Definition: EgammaEnums.h:52
egammaMonToolBase::GetRegion
static int GetRegion(float eta)
Definition: egammaMonToolBase.cxx:201
xAOD::CaloCluster_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: CaloCluster_v1.cxx:251
lumiFormat.i
int i
Definition: lumiFormat.py:85
electronHist
Definition: electronMonTool.h:32
egammaBaseHist::m_hPtCone20
TH1 * m_hPtCone20
Definition: egammaMonToolBase.h:38
xAOD::EgammaParameters::AuthorAmbiguous
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:32
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
egammaBaseHist::m_hTime
TH1 * m_hTime
Definition: egammaMonToolBase.h:39
egammaBaseHist::m_hPhi
TH1 * m_hPhi
Definition: egammaMonToolBase.h:33
egammaBaseHist::m_hvF2
std::vector< TH1 * > m_hvF2
Definition: egammaMonToolBase.h:46
egammaMonToolBase::m_GroupExtension
std::string m_GroupExtension
Definition: egammaMonToolBase.h:110
test_pyathena.parent
parent
Definition: test_pyathena.py:15
egammaBaseHist::m_hvEta
std::vector< TH1 * > m_hvEta
Definition: egammaMonToolBase.h:54
egammaBaseHist::m_hvEt
std::vector< TH1 * > m_hvEt
Definition: egammaMonToolBase.h:53
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
electronHist::m_nElectronsPerRegion
std::vector< int > m_nElectronsPerRegion
Definition: electronMonTool.h:61
egammaBaseHist::m_hLB_N
TH1 * m_hLB_N
Definition: egammaMonToolBase.h:63
run
Definition: run.py:1
electronMonTool::m_LhLooseElectrons
electronHist * m_LhLooseElectrons
Definition: electronMonTool.h:88
electronHist::m_hvDeltaPhi2
std::vector< TH1 * > m_hvDeltaPhi2
Definition: electronMonTool.h:50
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
electronMonTool::~electronMonTool
virtual ~electronMonTool()
Definition: electronMonTool.cxx:92
egammaBaseHist::m_hEtaPhi20GeV
TH2 * m_hEtaPhi20GeV
Definition: egammaMonToolBase.h:36
egammaBaseHist::m_hvF3
std::vector< TH1 * > m_hvF3
Definition: egammaMonToolBase.h:47
electronHist::m_hvd0
std::vector< TH1 * > m_hvd0
Definition: electronMonTool.h:55
electronHist::m_hvDeltaEta1
std::vector< TH1 * > m_hvDeltaEta1
Definition: electronMonTool.h:49
egammaBaseHist::m_hvTime
std::vector< TH1 * > m_hvTime
Definition: egammaMonToolBase.h:58
egammaBaseHist::m_hvRe237e277
std::vector< TH1 * > m_hvRe237e277
Definition: egammaMonToolBase.h:49
electronMonTool::bookHistograms
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
Definition: electronMonTool.cxx:171
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
xAOD::EgammaParameters::deltaPhi2
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
Definition: EgammaEnums.h:204
egammaBaseHist::m_hvPhi
std::vector< TH1 * > m_hvPhi
Definition: egammaMonToolBase.h:55
electronHist::m_nElectronsInCurrentLB
unsigned int m_nElectronsInCurrentLB
Definition: electronMonTool.h:58
egammaMonToolBase::NREGION
@ NREGION
Definition: egammaMonToolBase.h:86
ir
int ir
counter of the current depth
Definition: fastadd.cxx:49
electronMonTool::m_CbLooseElectrons
electronHist * m_CbLooseElectrons
Definition: electronMonTool.h:90
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
electronHist::m_hvEoverP
std::vector< TH1 * > m_hvEoverP
Definition: electronMonTool.h:46
electronMonTool::m_CbTightElectrons
electronHist * m_CbTightElectrons
Definition: electronMonTool.h:92
egammaBaseHist::m_hEtaPhi4GeV
TH2 * m_hEtaPhi4GeV
Definition: egammaMonToolBase.h:35
egammaBaseHist::m_hvTopoEtCone40
std::vector< TH1 * > m_hvTopoEtCone40
Definition: egammaMonToolBase.h:56
xAOD::CaloCluster_v1::energyBE
float energyBE(const unsigned layer) const
Get the energy in one layer of the EM Calo.
Definition: CaloCluster_v1.cxx:630
egammaMonToolBase::m_currentLB
unsigned int m_currentLB
Definition: egammaMonToolBase.h:112
electronMonTool::m_LhMediumElectrons
electronHist * m_LhMediumElectrons
Definition: electronMonTool.h:89
egammaBaseHist::m_hvPtCone20
std::vector< TH1 * > m_hvPtCone20
Definition: egammaMonToolBase.h:57
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
xAOD::EgammaParameters::e277
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
Definition: EgammaEnums.h:80
electronHist::m_nElectrons
unsigned int m_nElectrons
Definition: electronMonTool.h:59
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::EgammaParameters::e237
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
Definition: EgammaEnums.h:77
xAOD::Iso::topoetcone40
@ topoetcone40
Definition: IsolationType.h:50
xAOD::EgammaParameters::deltaEta1
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
Definition: EgammaEnums.h:184
electronMonTool::m_LhTightElectrons
electronHist * m_LhTightElectrons
Definition: electronMonTool.h:91
electronHist::m_hvNOfBLayerHits
std::vector< TH1 * > m_hvNOfBLayerHits
Definition: electronMonTool.h:51
electronMonTool::m_electronIdGroup
MonGroup * m_electronIdGroup
Definition: electronMonTool.h:96
egammaMonToolBase::getCurrentLB
unsigned int getCurrentLB()
Definition: egammaMonToolBase.cxx:82
ManagedMonitorToolBase::ATTRIB_X_VS_LB
@ ATTRIB_X_VS_LB
Definition: ManagedMonitorToolBase.h:130
electronMonTool::bookHistogramsForOneElectronType
virtual StatusCode bookHistogramsForOneElectronType(electronHist &myHist)
Definition: electronMonTool.cxx:110
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
egammaBaseHist::m_hTopoEtCone40
TH1 * m_hTopoEtCone40
Definition: egammaMonToolBase.h:37
electronHist::m_hvNOfTRTHighThresholdHits
std::vector< TH1 * > m_hvNOfTRTHighThresholdHits
Definition: electronMonTool.h:54
egammaMonToolBase::hasGoodTrigger
bool hasGoodTrigger(const std::string &comment)
Definition: egammaMonToolBase.cxx:288
xAOD::CaloCluster_v1::e
virtual double e() const
The total energy of the particle.
Definition: CaloCluster_v1.cxx:265
electronMonTool::fillHistograms
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
Definition: electronMonTool.cxx:344
egammaBaseHist::m_hvCoreEM
std::vector< TH1 * > m_hvCoreEM
Definition: egammaMonToolBase.h:43
egammaBaseHist::m_hvF0
std::vector< TH1 * > m_hvF0
Definition: egammaMonToolBase.h:44
xAOD::numberOfInnermostPixelLayerHits
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
Definition: TrackingPrimitives.h:237
xAOD::EgammaParameters::AuthorElectron
const uint16_t AuthorElectron
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:24
electronHist::m_nElectronsPerLumiBlock
std::vector< int > m_nElectronsPerLumiBlock
Definition: electronMonTool.h:60
read_hist_ntuple.f1
f1
Definition: read_hist_ntuple.py:4
egammaBaseHist::m_nameOfEgammaType
std::string m_nameOfEgammaType
Definition: egammaMonToolBase.h:27