ATLAS Offline Software
ZeeTaPMonTool.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-05-21 Author: Remi Lafaye (Annecy)
8 // 2015-05-20 Author: Bertrand LAFORGE (LPNHE Paris)
9 //
10 // NAME: ZeeTaPMonTool.cxx
11 // PACKAGE: offline/Reconstruction/egamma/egammaPerformance
12 // PURPOSE: Simple tag and probe method to check electron
13 // ID and ISO performance
14 //
16 
17 
18 #include "ZeeTaPMonTool.h"
19 #include "GaudiKernel/MsgStream.h"
20 #include "GaudiKernel/StatusCode.h"
21 #include "StoreGate/StoreGateSvc.h"
24 #include "xAODEgamma/Electron.h"
26 #include "TH1F.h"
27 
28 #include "GaudiKernel/SystemOfUnits.h"
29 using Gaudi::Units::GeV;
30 
31 ZeeTaPMonTool::ZeeTaPMonTool(const std::string & type, const std::string & name, const IInterface* parent)
33  m_hNZcandidates(nullptr),
34  m_electronGroup(nullptr),
35  m_electronTrkGroup(nullptr),
36  m_electronIdGroup(nullptr),
37  m_electronIsoGroup(nullptr),
38  m_electronLBGroup(nullptr),
39  m_electronEffGroup(nullptr),
40  m_hMass(nullptr),
41  m_hIDEt(nullptr),
42  m_hIDEta(nullptr),
43  m_hIDPhi(nullptr),
44  m_effhIDEt(nullptr),
45  m_effhIDEta(nullptr),
46  m_effhIDPhi(nullptr),
47  m_hISOEt(nullptr),
48  m_hISOEta(nullptr),
49  m_hISOPhi(nullptr),
50  m_effhISOEt(nullptr),
51  m_effhISOEta(nullptr),
52  m_effhISOPhi(nullptr),
53  m_hN(nullptr),
54  m_hEt(nullptr),
55  m_hEta(nullptr),
56  m_hPhi(nullptr),
57  m_hEtaPhi(nullptr),
58  m_hLB_N(nullptr)
59 {
60  // Name of the electron collection
61  declareProperty("massPeak", m_MassPeak = 91188, "Resonance peak position" );
62  declareProperty("electronEtCut",m_ElectronEtCut = 15*GeV, "Et cut for electrons");
63  declareProperty("massLowerCut", m_MassLowerCut = 70*GeV,"Lower mass cut");
64  declareProperty("massUpperCut", m_MassUpperCut = 110*GeV,"Upper mass cut");
65  declareProperty("PhiBinning", m_PhiBinning = 64,"Number of bins for phi");
66 
69  m_nZCandidates = 0;
70 }
71 
73 {
76  return StatusCode::SUCCESS;
77 }
78 
80 {
81  ATH_MSG_DEBUG("ZeeTaPMonTool::bookHistograms()");
82  int start;
83  int end;
84  start = 0;
85  end = ENDCAP;
86 
87  // Create groups
88  m_electronGroup = new MonGroup(this,"egamma/tagandprobe"+m_GroupExtension, run); // to be re-booked every new run
89  // Create sub groups
90  m_electronTrkGroup = new MonGroup(this,"egamma/tagandprobe"+m_GroupExtension+"/Track", run); // to be re-booked every new run
91  m_electronIdGroup = new MonGroup(this,"egamma/tagandprobe"+m_GroupExtension+"/ID", run); // to be re-booked every new run
92  m_electronEffGroup = new MonGroup(this,"egamma/tagandprobe"+m_GroupExtension+"/EfficienciesIDISO", run, ManagedMonitorToolBase::ATTRIB_MANAGED , "", "effAsPerCent"); // to be re-booked every new run
93  m_electronIsoGroup = new MonGroup(this,"egamma/tagandprobe"+m_GroupExtension+"/Isolation", run); // to be re-booked every new run
94  m_electronLBGroup = new MonGroup(this,"egamma/tagandprobe"+m_GroupExtension+"/LBMon", run); // to be re-booked every new run
95 
96  // Number of Z candidates vs eta of leading electron
97  bookTH1F(m_hNZcandidates,*m_electronGroup,"electronTagAndProbeNcandidates", "Number of "+m_GroupExtension+" candidates vs eta of leading electron",64,-3.2,3.2);
98 
99  // Mass plots
100  bookTH1F(m_hMass, *m_electronGroup,"electronTagAndProbeGlobalMass", "ee invariant mass",100,m_MassLowerCut,m_MassUpperCut);
101  bookTH1FperRegion(m_hvMass, *m_electronGroup,"electronTagAndProbeMass", "ee invariant mass",100,m_MassLowerCut,m_MassUpperCut,start,end);
102 
103  // EFFICIENCIES IN MAIN PANEL
104  bookTH1F(m_hIDEt, *m_electronEffGroup,"EfficiencyTagAndProbeElectronIDvsEtOld", "LHTight electron ID efficiency vs Et [MeV]",100, -1000.0, 250000.0);
105  bookTH1F(m_hIDEta, *m_electronEffGroup,"EfficiencyTagAndProbeElectronIDvsEtaOld", "LHTight electron ID efficiency vs #eta", 64, -3.2, 3.2);
106  bookTH1F(m_hIDPhi, *m_electronEffGroup,"EfficiencyTagAndProbeElectronIDvsPhiOld", "LHTight electron ID efficiency vs #phi", m_PhiBinning, -3.2, 3.2);
107  bookTH1F(m_hISOEt, *m_electronEffGroup,"EfficiencyTagAndProbeElectronISOvsEtOld", "LHTight electron ISO efficiency vs Et [MeV]",100, -1000.0, 250000.0);
108  bookTH1F(m_hISOEta,*m_electronEffGroup,"EfficiencyTagAndProbeElectronISOvsEtaOld", "LHTight electron ISO efficiency vs #eta", 64, -3.2, 3.2);
109  bookTH1F(m_hISOPhi,*m_electronEffGroup,"EfficiencyTagAndProbeElectronISOvsPhiOld", "LHTight electron ISO efficiency vs #phi", m_PhiBinning, -3.2, 3.2);
110 
111  bookTProfile(m_effhIDEt, *m_electronGroup,"EfficiencyTagAndProbeElectronIDvsEt", "LHTight electron ID efficiency vs Et [MeV]",100, -1000.0, 250000.0, 0.,1.1);
112  bookTProfile(m_effhIDEta, *m_electronGroup,"EfficiencyTagAndProbeElectronIDvsEta", "LHTight electron ID efficiency vs #eta", 64, -3.2, 3.2, 0.,1.1);
113  bookTProfile(m_effhIDPhi, *m_electronGroup,"EfficiencyTagAndProbeElectronIDvsPhi", "LHTight electron ID efficiency vs #phi", m_PhiBinning, -3.2, 3.2, 0.,1.1);
114  bookTProfile(m_effhISOEt, *m_electronGroup,"EfficiencyTagAndProbeElectronISOvsEt", "LHTight electron ISO efficiency vs Et [MeV]",100, -1000.0, 250000.0, 0.,1.1);
115  bookTProfile(m_effhISOEta,*m_electronGroup,"EfficiencyTagAndProbeElectronISOvsEta", "LHTight electron ISO efficiency vs #eta", 64, -3.2, 3.2, 0., 1.1);
116  bookTProfile(m_effhISOPhi,*m_electronGroup,"EfficiencyTagAndProbeElectronISOvsPhi", "LHTight electron ISO efficiency vs #phi", m_PhiBinning, -3.2, 3.2, 0., 1.1);
117 
118  // COMPLEMENTARY HISTOGRAMS FOR EXPERT PANEL
119  bookTH1F(m_hN, *m_electronGroup,"electronTagAndProbeN", "Number of Probe electrons",40, 0.0, 40.0);
120  bookTH1F(m_hEt, *m_electronGroup,"electronTagAndProbeEt", "Probe electron Et [MeV]",100, -1000.0, 250000.0);
121  bookTH2F(m_hEtaPhi, *m_electronGroup,"electronTagAndProbeEtaPhi", "Probe electron #eta,#phi map", 64, -3.2, 3.2, m_PhiBinning, -3.2, 3.2);
122  bookTH1F(m_hEta, *m_electronGroup,"electronTagAndProbeEta", "Probe electron #eta", 64, -3.2, 3.2);
123  bookTH1F(m_hPhi, *m_electronGroup,"electronTagAndProbePhi", "Probe electron #phi", m_PhiBinning, -3.2, 3.2);
124 
125  // TRACK PANEL
126  bookTH1FperRegion(m_hvDeltaEta1 , *m_electronTrkGroup,"electronTagAndProbeDeltaEta1", "PROBE electron track match #Delta #eta (1st sampling) ;#Delta #eta;Nevents", 50,-0.05,0.05,start,end);
127  bookTH1FperRegion(m_hvDeltaPhi2 , *m_electronTrkGroup,"electronTagAndProbeDeltaPhi2", "PROBE electron track match #Delta #phi (2st sampling) ;#Delta #phi;Nevents", 50,-0.15,0.1,start,end);
128  bookTH1FperRegion(m_hvNOfBLayerHits , *m_electronTrkGroup,"electronTagAndProbeNOfBLayerHits", "PROBE electron number of track B-Layer Hits ;N B layer hits;Nevents", 6,-0.5,5.5,start,end);
129  bookTH1FperRegion(m_hvNOfSiHits , *m_electronTrkGroup,"electronTagAndProbeNOfSiHits", "PROBE electron number of track precision Hits ;N Si hits;Nevents", 26,-0.5,25.5,start,end);
130  bookTH1FperRegion(m_hvNOfTRTHits , *m_electronTrkGroup,"electronTagAndProbeNOfTRTHits", "PROBE electron number of TRT Hits ;N TRT hits;Nevents", 51,-0.5,50.5,start,end);
131 
132  // ID PANEL
133  bookTH1FperRegion(m_hvEhad1 , *m_electronIdGroup,"electronTagAndProbeEhad1", "PROBE electron energy leakage in 1st sampling of hadronic cal. ;E had1; Nevents", 50, -1000., 10000.,start,end);
134  bookTH1FperRegion(m_hvEoverP , *m_electronIdGroup,"electronTagAndProbeEoverP", "PROBE electron match track E over P ;E/p;Nevents", 50,0,5,start,end);
135  bookTH1FperRegion(m_hvCoreEM , *m_electronIdGroup,"electronTagAndProbeCoreEM", "PROBE electron core energy in EM calorimeter ;E [MeV]; Nevents",50, -5000., 250000.,start,end);
136  bookTH1FperRegion(m_hvF1 , *m_electronIdGroup,"electronTagAndProbeF1", "PROBE electron fractional energy in 1st sampling;F1; Nevents", 50, -0.2,1.0,start,end);
137  bookTH1FperRegion(m_hvF2 , *m_electronIdGroup,"electronTagAndProbeF2", "PROBE electron fractional energy in 2nd sampling;F2; Nevents", 50, -0.2,1.0,start,end);
138  bookTH1FperRegion(m_hvF3 , *m_electronIdGroup,"electronTagAndProbeF3", "PROBE electron fractional energy in 3rd sampling;F3; Nevents", 50, -0.2,1.0,start,end);
139  bookTH1FperRegion(m_hvRe233e237 , *m_electronIdGroup,"electronTagAndProbeRe233e237", "PROBE electron uncor. energy fraction in 3x3/3x7 cells in em sampling 2 ;R 3x3/3x7; Nevents", 50, 0., 2.,start,end);
140  bookTH1FperRegion(m_hvRe237e277 , *m_electronIdGroup,"electronTagAndProbeRe237e277", "PROBE electron uncor. energy fraction in 3x7/7x7 cells in em sampling 2 ;R 3x7/7x7; Nevents", 50, 0., 2.,start,end);
141 
142  // ISO PANEL
143  bookTH1FperRegion(m_hvCaloIso , *m_electronIsoGroup,"electronTagAndProbeCaloIso", "PROBE electron calorimeter isolation;E_{iso} [MeV];Nevents", 50,-10000.,40000.0,start,end);
144  bookTH1FperRegion(m_hvTrackIso , *m_electronIsoGroup,"electronTagAndProbeTrackIso", "PROBE electron track isolation;E_{trk iso} [MeV];Nevents", 50,-10000.,40000.0,start,end);
145 
146  // LUMI BLOCK MONITORING PANEL
147 
148  std::string hname = std::string("LBEvoNZcandidates");
149  std::string hlongname = std::string("Number of Z candidates vs LB");
150  bookTH1F(m_hLB_N, *m_electronLBGroup, hname, hlongname, 2000, -0.5, 1999.5);
151 
152  return StatusCode::SUCCESS;
153 }
154 
156 {
157  ATH_MSG_DEBUG("ZeeTaPMonTool::fillHistograms()");
158 
159  if (!hasGoodTrigger("Zee T&P electron")) return StatusCode::SUCCESS;
160 
161  //check whether Lar signaled event bad
162  if(hasBadLar()) {
163  ATH_MSG_DEBUG("ZeeTaPMonTool::hasBadLar()");
164  return StatusCode::RECOVERABLE;
165  }
166 
167  //--------------------
168  //figure out current LB
169  //--------------------
170  unsigned int previousLB = m_currentLB;
172 
173  //deal with the change of LB
174  if (m_currentLB>previousLB) {
175  // update the by LB variables
177  // Reset counters
179  }
180 
181  // Get electron container
183  ATH_CHECK(electron_container.isValid());
184 
185  xAOD::ElectronContainer::const_iterator e_iter = electron_container->begin();
186  xAOD::ElectronContainer::const_iterator e_end = electron_container->end();
187  ATH_MSG_DEBUG("Number of electrons: " << electron_container->size());
188 
189  int ngood_el = 0;
190  float lead_et=-999;
191  float subl_et=-999;
192  const xAOD::Electron *lead_el = nullptr;
193  const xAOD::Electron *subl_el = nullptr;
194 
195  for (; e_iter!=e_end; ++e_iter) {
196 
197  if(!(*e_iter)) continue;
198  // Formally unnecessary because all electrons in the container have these authors by construction
199  if (!((*e_iter)->author(xAOD::EgammaParameters::AuthorElectron)|| (*e_iter)->author(xAOD::EgammaParameters::AuthorAmbiguous))) continue;
200 
201  // Ask these electrons to be LHLoose
202  bool isGood=false;
203 
204  bool passed = (*e_iter)->passSelection(isGood,"LHLoose");
205  if( passed || !isGood ) ATH_MSG_DEBUG("not a good LHLoose electron candidate found in TDS");
206 
207  // LHMedium
208  // sc = (*e_iter)->passSelection(isGood,"LHMedium");
209  // if(sc.isFailure() || !isGood ) ATH_MSG_DEBUG("not a good LHMedium electron candidate found in TDS");
210 
211  // LHTight
212  // sc = (*e_iter)->passSelection(isGood,"LHTight");
213  // if(sc.isFailure() || !isGood ) ATH_MSG_DEBUG("not a good electron candidate found in TDS");
214 
215  if(isGood) {
216  ++ngood_el;
217  // Look for two electrons
218  float et = (*e_iter)->pt();
219  if(et>lead_et) {
220  subl_et = lead_et;
221  subl_el = lead_el;
222  lead_et = et;
223  lead_el = *e_iter;
224  } else if(et>subl_et) {
225  subl_et = et;
226  subl_el = *e_iter;
227  }
228  }
229  }
230 
231 
232  // Fill number of electrons histograms
233  if (m_hN) m_hN->Fill(ngood_el);
234 
235  // request at least two electrons
236 
237  if (ngood_el<2) return StatusCode::SUCCESS;
238 
239  // Et cuts
240  if(lead_et<m_ElectronEtCut || lead_et<0) return StatusCode::SUCCESS;
241  if(subl_et<m_ElectronEtCut || subl_et<0) return StatusCode::SUCCESS;
242 
243  // Mass window
244  float mass = (lead_el->p4()+subl_el->p4()).M();
245  ATH_MSG_DEBUG("Zee mass & cuts: (" << mass << ", " << m_MassLowerCut << ", " << m_MassUpperCut << ")");
246  if(mass<m_MassLowerCut || mass>m_MassUpperCut) return StatusCode::SUCCESS;
247 
248  // Basic kinematics
249  float lead_eta = lead_el->eta();
250  float lead_phi = lead_el->phi();
251  float subl_eta = subl_el->eta();
252  float subl_phi = subl_el->phi();
253  ATH_MSG_DEBUG("Leading electron (eta,phi,et,q): (" << lead_eta << ", " << lead_phi << ", " << lead_et << ", " << lead_el->charge() << ")");
254  ATH_MSG_DEBUG("Subleading electron (eta,phi,et,q): (" << subl_eta << ", " << subl_phi << ", " << subl_et << ", " << subl_el->charge() << ")");
255 
256  // Eta cuts
257  if(fabs(lead_eta)>2.47 || fabs(subl_eta)>2.47) return StatusCode::SUCCESS;
258 
259  // Check charges
260  if (lead_el->charge()*subl_el->charge()>=0) return StatusCode::SUCCESS;
261 
262  bool lead_isLHTight = false;
263  if ( !lead_el->passSelection(lead_isLHTight,"LHTight") ) return StatusCode::FAILURE;
264 
265  bool subl_isLHTight = false;
266  if ( !subl_el->passSelection(subl_isLHTight,"LHTight") ) return StatusCode::FAILURE;
267 
268  bool EventZcandidateUsed = false;
269 
270  // If leading electron is LHTight use subleading as probe
271  if(lead_isLHTight) {
272  m_hNZcandidates->Fill(lead_eta);
273  EventZcandidateUsed = true;
274  // Isolation Energy
275  float topoetcone40;
276  bool subl_isIsolated = false;
277  if ( !subl_el->isolationValue(topoetcone40,xAOD::Iso::topoetcone40) ) return StatusCode::FAILURE;
278  if ( topoetcone40 < 4.5*GeV ) subl_isIsolated = true;
279  fillElectronProbe(subl_el, subl_isLHTight, subl_isIsolated, mass);
280  }
281 
282  // If subleading electron is LHTight use leading as probe
283  if(subl_isLHTight) {
284  if (!EventZcandidateUsed) m_hNZcandidates->Fill(subl_eta);
285  // Isolation Energy
286  float topoetcone40;
287  bool lead_isIsolated = false;
288  if ( !lead_el->isolationValue(topoetcone40,xAOD::Iso::topoetcone40) ) return StatusCode::FAILURE;
289  if ( topoetcone40 < 4.5*GeV ) lead_isIsolated = true;
290  fillElectronProbe(lead_el, lead_isLHTight, lead_isIsolated, mass);
291  }
292 
293  // Fill number of Z found in the LB
295 
296  return StatusCode::SUCCESS;
297 }
298 
299 void ZeeTaPMonTool::fillElectronProbe(const xAOD::Electron *el, bool isTight, bool isIso, double mass)
300 {
301 
302  float et = el->pt();
303  float eta = el->eta();
304  float phi = el->phi();
305 
306  int ir = GetRegion(eta);
307  if (m_hEt) m_hEt->Fill(et);
308  if (m_hEtaPhi) m_hEtaPhi->Fill(eta,phi);
309  if (m_hEta) {
310  m_hEta->Fill(eta);
311  }
312  else {
313  ATH_MSG_DEBUG("ERRORBL eta histo not filled !!!!");
314  }
315 
316  if (m_hPhi) m_hPhi->Fill(phi);
318  if (m_hMass) m_hMass->Fill(mass);
319 
320  if (isTight) {
321  if (m_hIDEt) m_hIDEt->Fill(et);
322  if (m_hIDEta) m_hIDEta->Fill(eta);
323  if (m_hIDPhi) m_hIDPhi->Fill(phi);
324  if (m_effhIDEt) m_effhIDEt->Fill(et,1.);
325  if (m_effhIDEta) m_effhIDEta->Fill(eta,1.);
326  if (m_effhIDPhi) m_effhIDPhi->Fill(phi,1.);
327  } else {
328  if (m_effhIDEt) m_effhIDEt->Fill(et,0.);
329  if (m_effhIDEta) m_effhIDEta->Fill(eta,0.);
330  if (m_effhIDPhi) m_effhIDPhi->Fill(phi,0.);
331  }
332 
333  if (isTight && isIso) {
334  if (m_hISOEt) m_hISOEt->Fill(et);
335  if (m_hISOEta) m_hISOEta->Fill(eta);
336  if (m_hISOPhi) m_hISOPhi->Fill(phi);
337  if (m_effhISOEt) m_effhISOEt->Fill(et,1.);
338  if (m_effhISOEta) m_effhISOEta->Fill(eta,1.);
339  if (m_effhISOPhi) m_effhISOPhi->Fill(phi,1.);
340  } else {
341  if (m_effhISOEt) m_effhISOEt->Fill(et,0.);
342  if (m_effhISOEta) m_effhISOEta->Fill(eta,0.);
343  if (m_effhISOPhi) m_effhISOPhi->Fill(phi,0.);
344  }
345 
346  // Cluster track match details
347  float deltaEta1 = -999.0;
348  if( el->trackCaloMatchValue(deltaEta1, xAOD::EgammaParameters::deltaEta1) ) {
350  }
351  float deltaPhi2 = -999.0;
352  if( el->trackCaloMatchValue(deltaPhi2, xAOD::EgammaParameters::deltaPhi2) ) {
354  }
355 
356  // Shower shape variable details
357  float ehad1 = 0.0;
358  float ecore = 0.0;
359  float f1 = 0.0;
360  float f3 = 0.0;
361  float e233 = 0.0;
362  float e237 = 0.0;
363  float e277 = 0.0;
364  if( el->showerShapeValue(ehad1, xAOD::EgammaParameters::ehad1) ) {
366  }
367  if( el->showerShapeValue(ecore, xAOD::EgammaParameters::ecore) ) {
369  }
370  if( el->showerShapeValue(f1, xAOD::EgammaParameters::f1) ) {
372  }
373  if( el->showerShapeValue(f3, xAOD::EgammaParameters::f3) ) {
375  }
376  if( el->showerShapeValue(e237, xAOD::EgammaParameters::e237) ) {
377  float Re233e237 = 0.0;
378  if( e237!=0 && el->showerShapeValue(e233, xAOD::EgammaParameters::e233) ) {
379  Re233e237 = e233 / e237;
380  }
382  float Re237e277 = 0.0;
383  if( e237!=0 && el->showerShapeValue(e277, xAOD::EgammaParameters::e277) ) {
384  if(e277!=0) Re237e277 = e237 / e277;
385  }
387  }
388 
389  // Isolation Energy
390  float topoetcone40;
391  if( el->isolationValue(topoetcone40,xAOD::Iso::topoetcone40)) {
393  }
394  float ptcone20;
395  if( el->isolationValue(ptcone20,xAOD::Iso::ptcone20)) {
397  }
398 
399  // Associated track details
400  const xAOD::TrackParticle *t = el->trackParticle();
401  double trackp = 0;
402  unsigned char numberOfInnermostPixelLayerHits=-1;
403  unsigned char numberOfPixelHits=-1;
404  unsigned char numberOfSCTHits=-1;
405  unsigned char numberOfTRTHits=-1;
406  if(t) {
407  trackp = t->pt()*cosh(t->eta());
408  // retrieve track summary information
411  }
412  if( t->summaryValue(numberOfPixelHits,xAOD::numberOfPixelHits) && t->summaryValue(numberOfSCTHits,xAOD::numberOfSCTHits) ) {
414  }
415  if( t->summaryValue(numberOfTRTHits,xAOD::numberOfTRTHits) ) {
417  }
418  } else ATH_MSG_DEBUG( "Error attempting to retrieve associated track");
419 
420  // Associated cluster details
421  const xAOD::CaloCluster *aCluster = el->caloCluster();
422  if (aCluster) {
423  float ep = 0;
424  if(trackp !=0) ep = aCluster->e()/trackp;
426  double ec = aCluster->et()*cosh(aCluster->eta());
427  float f2 = 0.0;
428  if(ec!=0) f2 = aCluster->energyBE(2)/ec;
430  } else ATH_MSG_WARNING( "Can't get CaloCluster" );
431 }
432 
434 {
435  ATH_MSG_DEBUG("ZeeTaPMonTool::procHistograms()");
436  //normalize efficiencies
443 
444  return StatusCode::SUCCESS;
445 }
446 
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
TH2::Fill
int Fill(double, double)
Definition: rootspy.cxx:382
ZeeTaPMonTool::m_hPhi
TH1 * m_hPhi
Definition: ZeeTaPMonTool.h:79
et
Extra patterns decribing particle interation process.
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
xAOD::Electron_v1::charge
float charge() const
Obtain the charge of the object.
egammaMonToolBase::bookTProfile
void bookTProfile(TProfile *&h, MonGroup &mygroup, const std::string &hname, const std::string &htitle, int nbins, float xlow, float xhigh, float ylow, float yhigh)
Definition: egammaMonToolBase.cxx:132
ZeeTaPMonTool::m_electronEffGroup
MonGroup * m_electronEffGroup
Definition: ZeeTaPMonTool.h:53
ZeeTaPMonTool::m_nZCandidatesPerLumiBlock
std::vector< int > m_nZCandidatesPerLumiBlock
Definition: ZeeTaPMonTool.h:107
ZeeTaPMonTool::m_hvEhad1
std::vector< TH1 * > m_hvEhad1
Definition: ZeeTaPMonTool.h:90
ZeeTaPMonTool::m_effhIDEt
TProfile * m_effhIDEt
Definition: ZeeTaPMonTool.h:63
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
ZeeTaPMonTool::m_hvMass
std::vector< TH1 * > m_hvMass
Definition: ZeeTaPMonTool.h:56
ZeeTaPMonTool::m_hvF1
std::vector< TH1 * > m_hvF1
Definition: ZeeTaPMonTool.h:93
ZeeTaPMonTool::ZeeTaPMonTool
ZeeTaPMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ZeeTaPMonTool.cxx:31
egammaMonToolBase::fillEfficiencies
void fillEfficiencies(TH1 *h, TH1 *href)
Definition: egammaMonToolBase.cxx:264
TrigCompositeUtils::passed
bool passed(DecisionID id, const DecisionIDContainer &idSet)
checks if required decision ID is in the set of IDs in the container
Definition: TrigCompositeUtilsRoot.cxx:117
ZeeTaPMonTool::fillHistograms
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
Definition: ZeeTaPMonTool.cxx:155
egammaMonToolBase::initialize
virtual StatusCode initialize() override
Definition: egammaMonToolBase.cxx:61
ZeeTaPMonTool::m_hEta
TH1 * m_hEta
Definition: ZeeTaPMonTool.h:78
xAOD::et
et
Definition: TrigEMCluster_v1.cxx:25
ZeeTaPMonTool::m_hvRe237e277
std::vector< TH1 * > m_hvRe237e277
Definition: ZeeTaPMonTool.h:97
ZeeTaPMonTool::m_nZCandidates
unsigned int m_nZCandidates
Definition: ZeeTaPMonTool.h:109
dqt_zlumi_pandas.hname
string hname
Definition: dqt_zlumi_pandas.py:272
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
ZeeTaPMonTool::m_hvDeltaPhi2
std::vector< TH1 * > m_hvDeltaPhi2
Definition: ZeeTaPMonTool.h:84
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::Egamma_v1::isolationValue
bool isolationValue(float &value, const Iso::IsolationType information) const
old Accessor for Isolation values.
Definition: Egamma_v1.h:257
ZeeTaPMonTool::m_ElectronEtCut
float m_ElectronEtCut
Definition: ZeeTaPMonTool.h:39
ZeeTaPMonTool::m_hNZcandidates
TH1 * m_hNZcandidates
Definition: ZeeTaPMonTool.h:46
ZeeTaPMonTool::m_effhIDPhi
TProfile * m_effhIDPhi
Definition: ZeeTaPMonTool.h:65
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
ZeeTaPMonTool::m_hMass
TH1 * m_hMass
Definition: ZeeTaPMonTool.h:57
ZeeTaPMonTool::initialize
virtual StatusCode initialize() override
Definition: ZeeTaPMonTool.cxx:72
xAOD::Iso::ptcone20
@ ptcone20
Track isolation.
Definition: IsolationType.h:40
xAOD::CaloCluster_v1::et
double et() const
Definition: CaloCluster_v1.h:856
xAOD::Egamma_v1::p4
virtual FourMom_t p4() const override final
The full 4-momentum of the particle as a TLoretzVector.
Definition: Egamma_v1.cxx:98
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
ZeeTaPMonTool::m_MassLowerCut
float m_MassLowerCut
Definition: ZeeTaPMonTool.h:40
xAOD::numberOfTRTHits
@ numberOfTRTHits
number of TRT hits [unit8_t].
Definition: TrackingPrimitives.h:275
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ZeeTaPMonTool::m_electronLBGroup
MonGroup * m_electronLBGroup
Definition: ZeeTaPMonTool.h:52
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:106
egammaMonToolBase::fillTH1FperRegion
static void fillTH1FperRegion(std::vector< TH1 * > &vhist, unsigned int ir, float x)
Definition: egammaMonToolBase.cxx:184
ZeeTaPMonTool::m_hvEoverP
std::vector< TH1 * > m_hvEoverP
Definition: ZeeTaPMonTool.h:91
ZeeTaPMonTool::m_electronIsoGroup
MonGroup * m_electronIsoGroup
Definition: ZeeTaPMonTool.h:51
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:138
dqt_zlumi_pandas.mass
mass
Definition: dqt_zlumi_pandas.py:170
ZeeTaPMonTool::m_effhISOPhi
TProfile * m_effhISOPhi
Definition: ZeeTaPMonTool.h:73
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
ZeeTaPMonTool.h
read_hist_ntuple.f2
f2
Definition: read_hist_ntuple.py:20
ZeeTaPMonTool::m_hISOEta
TH1 * m_hISOEta
Definition: ZeeTaPMonTool.h:69
xAOD::EgammaParameters::f3
@ f3
fraction of energy reconstructed in 3rd sampling
Definition: EgammaEnums.h:54
egammaMonToolBase
Definition: egammaMonToolBase.h:72
ZeeTaPMonTool::m_hN
TH1 * m_hN
Definition: ZeeTaPMonTool.h:76
ManagedMonitorToolBase::MonGroup
A container of information describing a monitoring object.
Definition: ManagedMonitorToolBase.h:138
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
ZeeTaPMonTool::fillElectronProbe
void fillElectronProbe(const xAOD::Electron *el, bool isTight, bool isIso, double mass)
Definition: ZeeTaPMonTool.cxx:299
ZeeTaPMonTool::m_MassUpperCut
float m_MassUpperCut
Definition: ZeeTaPMonTool.h:41
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:207
ElectronContainer.h
xAOD::CaloCluster_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: CaloCluster_v1.cxx:251
ZeeTaPMonTool::m_effhISOEta
TProfile * m_effhISOEta
Definition: ZeeTaPMonTool.h:72
ZeeTaPMonTool::m_hvNOfSiHits
std::vector< TH1 * > m_hvNOfSiHits
Definition: ZeeTaPMonTool.h:86
xAOD::EgammaParameters::AuthorAmbiguous
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:32
ZeeTaPMonTool::m_effhISOEt
TProfile * m_effhISOEt
Definition: ZeeTaPMonTool.h:71
ZeeTaPMonTool::m_hvNOfTRTHits
std::vector< TH1 * > m_hvNOfTRTHits
Definition: ZeeTaPMonTool.h:87
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
egammaMonToolBase::m_GroupExtension
std::string m_GroupExtension
Definition: egammaMonToolBase.h:113
test_pyathena.parent
parent
Definition: test_pyathena.py:15
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
ZeeTaPMonTool::m_electronTrkGroup
MonGroup * m_electronTrkGroup
Definition: ZeeTaPMonTool.h:49
ZeeTaPMonTool::m_hvCaloIso
std::vector< TH1 * > m_hvCaloIso
Definition: ZeeTaPMonTool.h:100
AthenaMonManager.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
run
Definition: run.py:1
ZeeTaPMonTool::bookHistograms
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
Definition: ZeeTaPMonTool.cxx:79
xAOD::Egamma_v1::phi
virtual double phi() const override final
The azimuthal angle ( ) of the particle.
Definition: Egamma_v1.cxx:75
ZeeTaPMonTool::m_ElectronContainer
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronContainer
Definition: ZeeTaPMonTool.h:37
ManagedMonitorToolBase::ATTRIB_MANAGED
@ ATTRIB_MANAGED
Definition: ManagedMonitorToolBase.h:131
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
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
ZeeTaPMonTool::m_electronIdGroup
MonGroup * m_electronIdGroup
Definition: ZeeTaPMonTool.h:50
ZeeTaPMonTool::m_hEtaPhi
TH2 * m_hEtaPhi
Definition: ZeeTaPMonTool.h:80
ZeeTaPMonTool::m_hLB_N
TH1 * m_hLB_N
Definition: ZeeTaPMonTool.h:111
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ZeeTaPMonTool::m_hIDEta
TH1 * m_hIDEta
Definition: ZeeTaPMonTool.h:61
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
xAOD::Electron_v1
Definition: Electron_v1.h:34
ZeeTaPMonTool::m_nZCandidatesInCurrentLB
unsigned int m_nZCandidatesInCurrentLB
Definition: ZeeTaPMonTool.h:106
ZeeTaPMonTool::m_hISOPhi
TH1 * m_hISOPhi
Definition: ZeeTaPMonTool.h:70
ZeeTaPMonTool::m_hISOEt
TH1 * m_hISOEt
Definition: ZeeTaPMonTool.h:68
EventInfo.h
ZeeTaPMonTool::m_hvCoreEM
std::vector< TH1 * > m_hvCoreEM
Definition: ZeeTaPMonTool.h:92
ZeeTaPMonTool::m_hvNOfBLayerHits
std::vector< TH1 * > m_hvNOfBLayerHits
Definition: ZeeTaPMonTool.h:85
ZeeTaPMonTool::m_hvF2
std::vector< TH1 * > m_hvF2
Definition: ZeeTaPMonTool.h:94
ir
int ir
counter of the current depth
Definition: fastadd.cxx:49
TProfile::Fill
int Fill(double, double)
Definition: rootspy.cxx:523
ZeeTaPMonTool::m_PhiBinning
int m_PhiBinning
Definition: ZeeTaPMonTool.h:42
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
ZeeTaPMonTool::m_electronGroup
MonGroup * m_electronGroup
Definition: ZeeTaPMonTool.h:48
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
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
ZeeTaPMonTool::m_hEt
TH1 * m_hEt
Definition: ZeeTaPMonTool.h:77
egammaMonToolBase::m_currentLB
unsigned int m_currentLB
Definition: egammaMonToolBase.h:115
ZeeTaPMonTool::m_hvF3
std::vector< TH1 * > m_hvF3
Definition: ZeeTaPMonTool.h:95
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
ZeeTaPMonTool::m_effhIDEta
TProfile * m_effhIDEta
Definition: ZeeTaPMonTool.h:64
xAOD::Egamma_v1::eta
virtual double eta() const override final
The pseudorapidity ( ) of the particle.
Definition: Egamma_v1.cxx:70
ZeeTaPMonTool::m_hvRe233e237
std::vector< TH1 * > m_hvRe233e237
Definition: ZeeTaPMonTool.h:96
Electron.h
ZeeTaPMonTool::m_lumiBlockNumber
unsigned int m_lumiBlockNumber
Definition: ZeeTaPMonTool.h:105
egammaMonToolBase::ENDCAP
@ ENDCAP
Definition: egammaMonToolBase.h:86
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
ZeeTaPMonTool::m_hvDeltaEta1
std::vector< TH1 * > m_hvDeltaEta1
Definition: ZeeTaPMonTool.h:83
egammaMonToolBase::getCurrentLB
unsigned int getCurrentLB()
Definition: egammaMonToolBase.cxx:88
ZeeTaPMonTool::m_hIDEt
TH1 * m_hIDEt
Definition: ZeeTaPMonTool.h:60
egammaMonToolBase::hasBadLar
bool hasBadLar()
Definition: egammaMonToolBase.cxx:228
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:119
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
egammaMonToolBase::hasGoodTrigger
bool hasGoodTrigger(const std::string &comment)
Definition: egammaMonToolBase.cxx:294
StoreGateSvc.h
xAOD::CaloCluster_v1::e
virtual double e() const
The total energy of the particle.
Definition: CaloCluster_v1.cxx:265
ZeeTaPMonTool::m_MassPeak
float m_MassPeak
Definition: ZeeTaPMonTool.h:38
ZeeTaPMonTool::procHistograms
virtual StatusCode procHistograms() override
An inheriting class should either override this function or finalHists().
Definition: ZeeTaPMonTool.cxx:433
xAOD::Egamma_v1::passSelection
bool passSelection(bool &value, const std::string &menu) const
Check if the egamma object pass a selection menu (using the name) If the menu decision is stored in t...
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
read_hist_ntuple.f1
f1
Definition: read_hist_ntuple.py:4
ZeeTaPMonTool::m_hIDPhi
TH1 * m_hIDPhi
Definition: ZeeTaPMonTool.h:62
ZeeTaPMonTool::m_hvTrackIso
std::vector< TH1 * > m_hvTrackIso
Definition: ZeeTaPMonTool.h:101