ATLAS Offline Software
photonMonTool.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-02-15 Author: Bertrand LAFORGE (LPNHE Paris)
9 //
10 // NAME: photonMonTool.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 "photonMonTool.h"
73 #include "GaudiKernel/MsgStream.h"
74 #include "GaudiKernel/StatusCode.h"
75 #include "StoreGate/StoreGateSvc.h"
78 #include "xAODEgamma/Photon.h"
81 #include "TH1F.h"
82 #include "TH2F.h"
83 
84 photonMonTool::photonMonTool(const std::string & type, const std::string & name, const IInterface* parent)
86 {
87  m_CbTightPhotons = new photonHist(std::string("CbTight"));
88  m_CbLoosePhotons = new photonHist(std::string("CbLoose"));
89 
90  m_currentLB = -1;
91 }
92 
94 {
95 
96  delete m_CbLoosePhotons;
97  delete m_CbTightPhotons;
98 }
99 
101 {
103  ATH_CHECK( m_PhotonContainer.initialize() );
104  return StatusCode::SUCCESS;
105 }
106 
108 {
109 
110  ATH_MSG_DEBUG("photonMonTool::bookHistogramsForOnePhoton()");
111 
112  int start = 0;
113  int end = ENDCAP;
114 
115  // MAIN PANEL
116  bookTH1F(myHist.m_hN, *m_photonGroup, "photonN", "Number of photons", 20, 0.0, 20.0, myHist.m_nameOfEgammaType);
117  bookTH1F(myHist.m_hEt, *m_photonGroup, "photonEt", "Photon transverse energy [MeV]", 100, -1000.0, 250000.0, myHist.m_nameOfEgammaType);
118  bookTH2F(myHist.m_hEtaPhi4GeV, *m_photonGroup, "photonEtaPhiPtgt4GeV", "Photon #eta,#phi map (candidates with Pt>4 GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
119  bookTH1F(myHist.m_hEta, *m_photonGroup, "photonEta", "Photon #eta", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
120  bookTH1F(myHist.m_hPhi, *m_photonGroup, "photonPhi", "Photon #phi", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
121  bookTH1F(myHist.m_hTopoEtCone40, *m_photonGroup, "photonTopoEtCone40", "Photon Topocluster Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
122  bookTH1F(myHist.m_hPtCone20, *m_photonGroup, "photonPtCone20", "Photon Track Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
123  bookTH1F(myHist.m_hTime, *m_photonGroup, "photonTime", "Time associated with photon cluster [ns]", 90, -30., 60., myHist.m_nameOfEgammaType);
124 
125  // EXPERT PANEL
126  bookTH2F(myHist.m_hEtaPhi, *m_photonGroup, "photonEtaPhiPt2.5GeV", "Photon #eta,#phi map (candidates with Pt>2.5 GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
127  bookTH2F(myHist.m_hEtaPhi20GeV, *m_photonGroup, "photonEtaPhiPtgt20GeV", "Photon #eta,#phi map (candidates with Pt>20 GeV)", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
128 
129  // RConv
130  bookTH1F(myHist.m_hRConv, *m_photonGroup, "photonRconv", "RConv of photon [mm]", 100, 0., 800., myHist.m_nameOfEgammaType);
131 
132  // REGION PANEL
133  bookTH1FperRegion(myHist.m_hvN, *m_photonRegionGroup, "photonN", "Photon number ; Nel ; Nevents",20, 0.0, 20.0,start,end, myHist.m_nameOfEgammaType);
134  bookTH1FperRegion(myHist.m_hvEta, *m_photonRegionGroup, "photonEta", "Photon #eta distribution ; #eta ; Nevents",64, -3.2, 3.2,start,end, myHist.m_nameOfEgammaType);
135  bookTH1FperRegion(myHist.m_hvPhi, *m_photonRegionGroup, "photonPhi", "Photon #phi distribution ; #phi ; Nevents", 64, -3.2, 3.2,start,end, myHist.m_nameOfEgammaType);
136  bookTH1FperRegion(myHist.m_hvEt, *m_photonRegionGroup, "photonEt", "Photon Et distribution ; Et [MeV] ; Nevents", 100, -1000.0, 250000.0,start,end, myHist.m_nameOfEgammaType);
137  bookTH1FperRegion(myHist.m_hvTopoEtCone40, *m_photonRegionGroup, "photonTopoEtCone40", "Photon Isolation Energy TopoEtCone40 [MeV] ; Eiso ; Nevents", 64, -10000., 40000.,start,end, myHist.m_nameOfEgammaType);
138  bookTH1FperRegion(myHist.m_hvPtCone20, *m_photonRegionGroup, "photonPtCone20", "Photon PtCone20 distribution ; PtCone20 ; Nevents", 64, -10000., 40000.,start,end, myHist.m_nameOfEgammaType);
139  bookTH1FperRegion(myHist.m_hvTime, *m_photonRegionGroup, "photonTime", "Photon time [ns] ; Time [ns] ; Nevents", 90, -30.0, 60.0,start,end, myHist.m_nameOfEgammaType);
140  bookTH1FperRegion(myHist.m_hvConvType, *m_photonRegionGroup, "photonConvType", "Photon conv type; Nevents", 4,0,4,start,end, myHist.m_nameOfEgammaType);
141  bookTH1FperRegion(myHist.m_hvConvTrkMatch1, *m_photonRegionGroup, "photonConvTrkMatch1", "Photon ConvTrkMatch1; Nevents", 4,0,4,start,end, myHist.m_nameOfEgammaType);
142  bookTH1FperRegion(myHist.m_hvConvTrkMatch2, *m_photonRegionGroup, "photonConvTrkMatch2", "Photon ConvTrkMatch2; Nevents", 4,0,4,start,end, myHist.m_nameOfEgammaType);
143 
144  // UNCONV PANEL
145  bookTH1F(myHist.m_hNUnconv, *m_photonUnconvGroup, "photonNUnconv", "Number of Unconverted photons", 20, 0.0, 20.0, myHist.m_nameOfEgammaType);
146  bookTH1F(myHist.m_hEtUnconv, *m_photonUnconvGroup, "photonEtUnconv", "Unconverted photon transverse energy [MeV]", 100, -1000.0, 250000.0, myHist.m_nameOfEgammaType);
147  bookTH2F(myHist.m_hEtaPhiUnconv, *m_photonUnconvGroup, "photonEtaPhiUnconv", "Unconverted photon #eta,#phi map", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
148  bookTH1F(myHist.m_hEtaUnconv, *m_photonUnconvGroup, "photonEtaUnconv", "Unconverted photon #eta", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
149  bookTH1F(myHist.m_hPhiUnconv, *m_photonUnconvGroup, "photonPhiUnconv", "Unconverted photon #phi", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
150  bookTH1F(myHist.m_hTopoEtCone40Unconv, *m_photonUnconvGroup, "photonTopoEtCone40Unconv", "Unconverted photon Topocluster Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
151  bookTH1F(myHist.m_hPtCone20Unconv, *m_photonUnconvGroup, "photonPtCone20Unconv", "Unconverted photon Topocluster Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
152 
153  // CONV PANEL
154  bookTH1F(myHist.m_hNConv, *m_photonConvGroup, "photonNConv", "Number of Converted photons", 20, 0.0, 20.0, myHist.m_nameOfEgammaType);
155  bookTH1F(myHist.m_hEtConv, *m_photonConvGroup, "photonEtConv", "Converted photon transverse energy [MeV]", 100, -1000.0, 250000.0, myHist.m_nameOfEgammaType);
156  bookTH2F(myHist.m_hEtaPhiConv, *m_photonConvGroup, "photonEtaPhiConv", "Converted photon #eta,#phi map", 64, -3.2, 3.2, 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
157  bookTH1F(myHist.m_hEtaConv, *m_photonConvGroup, "photonEtaConv", "Converted photon #eta", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
158  bookTH1F(myHist.m_hPhiConv, *m_photonConvGroup, "photonPhiConv", "Converted photon #phi", 64, -3.2, 3.2, myHist.m_nameOfEgammaType);
159  bookTH1F(myHist.m_hTopoEtCone40Conv, *m_photonConvGroup, "photonTopoEtCone40Conv", "Converted photon Topocluster Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
160  bookTH1F(myHist.m_hPtCone20Conv, *m_photonConvGroup, "photonPtCone20Conv", "Converted photon Topocluster Isolation Energy", 64, -10000., 40000., myHist.m_nameOfEgammaType);
161 
162  // ID PANEL
163  bookTH1FperRegion(myHist.m_hvEhad1, *m_photonIdGroup, "photonEhad1", "Photon energy leakage in 1st hadronic sampling ; Ehad 1; Nevents", 50, -1000., 10000.,start,end, myHist.m_nameOfEgammaType);
164  bookTH1FperRegion(myHist.m_hvCoreEM, *m_photonIdGroup, "photonCoreEM", "Photon core energy in EM calorimeter ;E [MeV]; Nevents", 50, -5000., 250000.,start,end, myHist.m_nameOfEgammaType);
165  bookTH1FperRegion(myHist.m_hvF0, *m_photonIdGroup, "photonF0", "Photon fractional energy in PreSampler ; F0 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
166  bookTH1FperRegion(myHist.m_hvF1, *m_photonIdGroup, "photonF1", "Photon fractional energy in 1st sampling ; F1 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
167  bookTH1FperRegion(myHist.m_hvF2, *m_photonIdGroup,"photonF2", "Photon fractional energy in 2nd sampling ; F2 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
168  bookTH1FperRegion(myHist.m_hvF3, *m_photonIdGroup, "photonF3", "Photon fractional energy in 3rd sampling ; F3 ; Nevents", 50, -0.2,1.0,start,end, myHist.m_nameOfEgammaType);
169  bookTH1FperRegion(myHist.m_hvRe233e237, *m_photonIdGroup, "photonRe233e237", "Photon uncor. energy fraction in 3x3/3x7 cells in em sampling 2 ;R 3x3/3x7; Nevents", 50, 0., 2.,start,end, myHist.m_nameOfEgammaType);
170  bookTH1FperRegion(myHist.m_hvRe237e277, *m_photonIdGroup, "photonRe237e277", "Photon uncor. energy fraction in 3x7/7x7 cells in em sampling 2 ;R 3x7/7x7; Nevents", 50, 0., 2.,start,end, myHist.m_nameOfEgammaType);
171 
172  // LUMIBLOCK DEPENDANT PANEL
173  bookTH1F(myHist.m_hLB_N, *m_photonLBGroup, "LBEvoNPhotons", "Number of Photons vs LB", 2000, -0.5, 1999.5, myHist.m_nameOfEgammaType);
174  bookTH1F(myHist.m_hLB_NUnconv, *m_photonLBGroup, "LBEvoNPhotonsUnconv", "Number of Unconverted Photons vs LB", 2000, -0.5, 1999.5, myHist.m_nameOfEgammaType);
175  bookTH1F(myHist.m_hLB_NConv, *m_photonLBGroup, "LBEvoNPhotonsConv", "Number of Converted Photons vs LB", 2000, -0.5, 1999.5, myHist.m_nameOfEgammaType);
176  bookTH1F(myHist.m_hLB_fConv, *m_photonLBGroup, "LBEvoConvOverN", "Fraction of converted photons vs LB",2000, -0.5,1999.5, myHist.m_nameOfEgammaType);
177 
178  return StatusCode::SUCCESS;
179 }
180 
182 {
183  ATH_MSG_DEBUG("photonMonTool::bookHistograms()");
184  // Create groups
185  m_photonGroup = new MonGroup(this,"egamma/photons"+m_GroupExtension, run); // to be re-booked every new run
186  // Create sub groups
187  m_photonUnconvGroup = new MonGroup(this,"egamma/photons"+m_GroupExtension+"/Unconv", run); // to be re-booked every new run
188  m_photonConvGroup = new MonGroup(this,"egamma/photons"+m_GroupExtension+"/Conv", run); // to be re-booked every new run
189  m_photonIdGroup = new MonGroup(this,"egamma/photons"+m_GroupExtension+"/ID", run); // to be re-booked every new run
190  m_photonRegionGroup = new MonGroup(this,"egamma/photons"+m_GroupExtension+"/Region", run); // to be re-booked every new run
191  m_photonLBGroup = new MonGroup(this,"egamma/photons"+m_GroupExtension+"/LBMon",run, ATTRIB_X_VS_LB, "", "merge"); // to be re-booked every new run
192 
195 
196  return StatusCode::SUCCESS;
197 }
198 
200 
201  ATH_MSG_DEBUG("photonMonTool::fillHistogramsforOnePhoton()");
202 
203  float et=(*g_iter)->pt();
204  float eta = (*g_iter)->eta();
205  float phi = (*g_iter)->phi();
206  int ir = GetRegion(eta);
207 
208  //ATH_MSG_DEBUG("photon et, eta and phi " << et << " " << eta << " " << phi << " region " << ir << " defined " << myHist.m_hvEt.size());
209 
210  if (et<2500) return StatusCode::SUCCESS;
211 
212  ++myHist.m_nPhotonsPerRegion[ir];
213  ++myHist.m_nPhotons;
214  ++myHist.m_nPhotonsInCurrentLB;
215 
216  // Get conversion type
217  // Unconverted photons
218  // unconverted = 0 : unconverted photon
219  // single track conversion :
220  // singleSi = 1 : one track only, with Si hits
221  // singleTRT = 2 : one track only, no Si hits (TRT only)
222  // double track conversions
223  // doubleSi = 3 : two tracks, both with Si hits
224  // doubleTRT = 4 : two tracks, none with Si hits (TRT only)
225  // doubleSiTRT = 5 : two tracks, only one with Si hits
227  fillTH1FperRegion(myHist.m_hvConvType,ir,convType);
228  bool isUnconverted = (convType==xAOD::EgammaParameters::ConversionType::unconverted ? 1 : 0) ;
229 
230  Float_t RadiusConv = 0.0;
231  RadiusConv = xAOD::EgammaHelpers::conversionRadius(*g_iter);
232 
233  if(myHist.m_hRConv) myHist.m_hRConv->Fill(RadiusConv);
234 
235  // Fill histograms for photons regardless convertions
236 
237  if(myHist.m_hEt) myHist.m_hEt->Fill(et);
238  if(myHist.m_hEtaPhi) myHist.m_hEtaPhi->Fill(eta,phi);
239  if(myHist.m_hEtaPhi4GeV&&et>4000) myHist.m_hEtaPhi4GeV->Fill(eta,phi);
240  if(myHist.m_hEtaPhi20GeV&&et>20000) myHist.m_hEtaPhi20GeV->Fill(eta,phi);
241  if(myHist.m_hEta) myHist.m_hEta->Fill(eta);
242  if(myHist.m_hPhi) myHist.m_hPhi->Fill(phi);
243 
244  fillTH1FperRegion(myHist.m_hvEt,ir,et);
247 
248  // Shower shape variable details
249  float ehad1 = 0.0;
250  float ecore = 0.0;
251  float f1 = 0.0;
252  float f3 = 0.0;
253  float e233 = 0.0;
254  float e237 = 0.0;
255  float e277 = 0.0;
256  if( (*g_iter)->showerShapeValue(ehad1, xAOD::EgammaParameters::ehad1) ) fillTH1FperRegion(myHist.m_hvEhad1,ir,ehad1);
257  if( (*g_iter)->showerShapeValue(ecore, xAOD::EgammaParameters::ecore) ) fillTH1FperRegion(myHist.m_hvCoreEM,ir,ecore);
258  if( (*g_iter)->showerShapeValue(f1, xAOD::EgammaParameters::f1) ) fillTH1FperRegion(myHist.m_hvF1,ir,f1);
259  if( (*g_iter)->showerShapeValue(f3, xAOD::EgammaParameters::f3) ) fillTH1FperRegion(myHist.m_hvF3,ir,f3);
260  if( (*g_iter)->showerShapeValue(e237, xAOD::EgammaParameters::e237) ) {
261  float Re233e237 = 0.0;
262  if( e237!=0 && (*g_iter)->showerShapeValue(e233, xAOD::EgammaParameters::e233) ) Re233e237 = e233 / e237;
263  fillTH1FperRegion(myHist.m_hvRe233e237,ir,Re233e237);
264  float Re237e277 = 0.0;
265  if( e237!=0 && (*g_iter)->showerShapeValue(e277, xAOD::EgammaParameters::e277) ) {
266  if(e277!=0) Re237e277 = e237 / e277;
267  }
268  fillTH1FperRegion(myHist.m_hvRe237e277,ir,Re237e277);
269  }
270 
271  // Associated cluster details
272  const xAOD::CaloCluster *aCluster = (*g_iter)->caloCluster();
273  if (aCluster) {
274  double ec = aCluster->et()*cosh(aCluster->eta());
275 
276  float f0=0.0;
277  if (ec!=0) f0 = aCluster->energyBE(0)/ec;
278  fillTH1FperRegion(myHist.m_hvF0,ir,f0);
279  float f1=0.0;
280  if (ec!=0) f1 = aCluster->energyBE(1)/ec;
281  fillTH1FperRegion(myHist.m_hvF1,ir,f1);
282  float f2 = 0.0;
283  if(ec!=0) f2 = aCluster->energyBE(2)/ec;
284  fillTH1FperRegion(myHist.m_hvF2,ir,f2);
285  float f3=0.0;
286  if (ec!=0) f3 = aCluster->energyBE(3)/ec;
287  fillTH1FperRegion(myHist.m_hvF3,ir,f3);
288 
289  float time= aCluster->time();
290  myHist.m_hTime->Fill(time);
291 
292  } else ATH_MSG_WARNING( "Can't get CaloCluster" );
293 
294  float deltaPhi1 = 0.0;
295  if( (*g_iter)->vertexCaloMatchValue(deltaPhi1, xAOD::EgammaParameters::convMatchDeltaPhi1) ) {
297  }
298  float deltaPhi2 = 0.0;
299  if( (*g_iter)->vertexCaloMatchValue(deltaPhi2, xAOD::EgammaParameters::convMatchDeltaPhi2) ) {
301  }
302 
303  // Isolation Energy
304  float topoetcone40 = 0.0;
305  if ( (*g_iter)->isolationValue(topoetcone40,xAOD::Iso::topoetcone40) ) {
307  }
308 
309  float ptcone20 = 0.0;
310  if ( (*g_iter)->isolationValue(ptcone20,xAOD::Iso::ptcone20) ) {
311  myHist.m_hPtCone20->Fill(ptcone20);
312  }
313 
316 
317  // Fill Unconverted or Converted specific histograms :
318 
319  myHist.m_hLB_N->Fill(m_currentLB);
320 
321  if (isUnconverted) {
322 
323  myHist.m_hLB_NUnconv->Fill(m_currentLB);
324 
325  ++myHist.m_nPhotonsPerRegionUnconv[ir];
326  ++myHist.m_nPhotonsUnconv;
328 
329  if(myHist.m_hEtUnconv) myHist.m_hEtUnconv->Fill(et);
330  if(myHist.m_hEtaPhiUnconv) myHist.m_hEtaPhiUnconv->Fill(eta,phi);
331  if(myHist.m_hEtaUnconv) myHist.m_hEtaUnconv->Fill(eta);
332  if(myHist.m_hPhiUnconv) myHist.m_hPhiUnconv->Fill(phi);
333 
334  // fillTH1FperRegion(myHist.m_hvEtUnconv,ir,et);
335  // fillTH1FperRegion(myHist.m_hvEtaUnconv,ir,eta);
336  // fillTH1FperRegion(myHist.m_hvPhiUnconv,ir,phi);
337 
338  // // Shower shape variable details
339  // fillTH1FperRegion(myHist.m_hvEhad1Unconv,ir,ehad1);
340  // fillTH1FperRegion(myHist.m_hvCoreEMUnconv,ir,ecore);
341  // fillTH1FperRegion(myHist.m_hvF1Unconv,ir,f1);
342  // fillTH1FperRegion(myHist.m_hvF3Unconv,ir,f3);
343  // fillTH1FperRegion(myHist.m_hvRe233e237Unconv,ir,Re233e237);
344  // fillTH1FperRegion(myHist.m_hvRe237e277Unconv,ir,Re237e277);
345 
346  // // Associated cluster details
347  // fillTH1FperRegion(myHist.m_hvF2Unconv,ir,f2);
348  // if (myHist.m_hTimeUnconv) myHist.m_hTimeUnconv->Fill(time);
349  // fillTH1FperRegion(myHist.m_hvTimeUnconv,ir,time);
350 
351  // Isolation Energy
353  if (myHist.m_hPtCone20Unconv) myHist.m_hPtCone20Unconv->Fill(ptcone20);
356 
357  } else {
358  // if Converted photon
359 
360  myHist.m_hLB_NConv->Fill(m_currentLB);
361 
362  ++myHist.m_nPhotonsPerRegionConv[ir];
363  ++myHist.m_nPhotonsConv;
364  ++myHist.m_nPhotonsInCurrentLBConv;
365 
366  if(myHist.m_hEtConv) myHist.m_hEtConv->Fill(et);
367  if(myHist.m_hEtaPhiConv) myHist.m_hEtaPhiConv->Fill(eta,phi);
368  if(myHist.m_hEtaConv) myHist.m_hEtaConv->Fill(eta);
369  if(myHist.m_hPhiConv) myHist.m_hPhiConv->Fill(phi);
370 
371  // fillTH1FperRegion(myHist.m_hvEtConv,ir,et);
372  // fillTH1FperRegion(myHist.m_hvEtaConv,ir,eta);
373  // fillTH1FperRegion(myHist.m_hvPhiConv,ir,phi);
374 
375  // // Shower shape variable details
376  // fillTH1FperRegion(myHist.m_hvEhad1Conv,ir,ehad1);
377  // fillTH1FperRegion(myHist.m_hvCoreEMConv,ir,ecore);
378  // fillTH1FperRegion(myHist.m_hvF1Conv,ir,f1);
379  // fillTH1FperRegion(myHist.m_hvF3Conv,ir,f3);
380  // fillTH1FperRegion(myHist.m_hvRe233e237Conv,ir,Re233e237);
381  // fillTH1FperRegion(myHist.m_hvRe237e277Conv,ir,Re237e277);
382 
383  // // Associated cluster details
384  // fillTH1FperRegion(myHist.m_hvF2Conv,ir,f2);
385  // if (myHist.m_hTimeConv) myHist.m_hTimeConv->Fill(time);
386  // fillTH1FperRegion(myHist.m_hvTimeConv,ir,time);
387 
388  // // Conversion Trk match
391 
392  // Isolation Energy
394  if (myHist.m_hPtCone20Conv) myHist.m_hPtCone20Conv->Fill(ptcone20);
397  }
398 
399  return StatusCode::SUCCESS;
400 }
401 
402 
404  ATH_MSG_DEBUG("photonMonTool::fillHistograms()");
405 
406  if (!hasGoodTrigger("single photon")) return StatusCode::SUCCESS;
407 
408  //check whether Lar signalled event bad
409  if(hasBadLar()) {
410  ATH_MSG_DEBUG("photonMonTool::hasBadLar()");
411  return StatusCode::SUCCESS;
412  }
413 
414  //--------------------
415  //figure out current LB
416  //--------------------
417  unsigned int previousLB = m_currentLB;
419 
420  //deal with the change of LB
421  if (m_currentLB>previousLB) {
422  // update the by LB variables
423 
427 
431 
432  // update content for the last lumi block
433 
434  // update the by LB variables
435 
436  double NConvPhotons = m_CbLoosePhotons->m_nPhotonsInCurrentLBConv;
437  double NPhotons = m_CbLoosePhotons->m_nPhotonsInCurrentLB;
438  double fractionConv = 0.;
439  if (NPhotons>0) fractionConv = NConvPhotons/NPhotons;
440 
441  //ATH_MSG_WARNING( "CommentBL fractionConv= " << fractionConv );
442 
443  m_CbLoosePhotons->m_hLB_fConv->Fill(m_currentLB, fractionConv);
444 
447  fractionConv = 0.;
448  if (NPhotons>0) fractionConv = NConvPhotons/NPhotons;
449  m_CbTightPhotons->m_hLB_fConv->Fill(m_currentLB, fractionConv);
450 
451  // Reset counters
455 
459  }
460 
461  // Get photon container
463  ATH_CHECK(photon_container.isValid());
464 
465  // Check that the auxiliary store association was made successfully:
466  if( ! photon_container->hasStore() ) {
467  ATH_MSG_DEBUG("No auxiliary store got associated to the photon container with key: " << m_PhotonContainer);
468  return StatusCode::FAILURE;
469  }
470 
471  // Loop on photon container
472 
473  xAOD::PhotonContainer::const_iterator ph_iter = photon_container->begin();
474  xAOD::PhotonContainer::const_iterator ph_end = photon_container->end();
475  ATH_MSG_DEBUG("Number of photons: " << photon_container->size());
476 
480 
484 
488 
492 
493  for (; ph_iter!=ph_end; ++ph_iter){
494  if(!(*ph_iter)) continue;
495 
496  // Necessary because some photons in the container have another author because reconstructed from topocluster
497  if (!((*ph_iter)->author(xAOD::EgammaParameters::AuthorPhoton)|| (*ph_iter)->author(xAOD::EgammaParameters::AuthorAmbiguous))) continue;
498 
499  //reject photons outside the kinematic acceptance
500  if ((*ph_iter)->pt()<= 7000. && std::abs((*ph_iter)->eta()) >= 2.47 ) continue;
501 
502  // Check what photon is being processed
503  bool isGood;
504  // CbLoose
505  if((*ph_iter)->passSelection(isGood,"Loose")) {
506  if(isGood) {
508  }
509  } else ATH_MSG_WARNING( "Photon selection menu LHMedium is not defined" );
510 
511  // Cb Tight
512  if((*ph_iter)->passSelection(isGood,"Tight")) {
513  if(isGood) {
515  }
516  } else ATH_MSG_WARNING( "Photon selection menu LHTight is not defined" );
517 
518  }
519 
520  // Fill number of photons histograms
524 
528 
529  for(int i=0;i<NREGION;i++) {
532  }
533 
534  return StatusCode::SUCCESS;
535 }
xAOD::EgammaParameters::unconverted
@ unconverted
unconverted photon
Definition: EgammaEnums.h:270
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::convMatchDeltaPhi2
@ convMatchDeltaPhi2
difference between the cluster phi and the phi of the second track of the vertex extrapolated to the ...
Definition: EgammaEnums.h:258
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
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
photonMonTool::m_PhotonContainer
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonContainer
Definition: photonMonTool.h:112
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
photonHist::m_hvTopoEtCone40Conv
std::vector< TH1 * > m_hvTopoEtCone40Conv
Definition: photonMonTool.h:61
photonHist::m_hvConvTrkMatch1
std::vector< TH1 * > m_hvConvTrkMatch1
Definition: photonMonTool.h:66
egammaMonToolBase::initialize
virtual StatusCode initialize() override
Definition: egammaMonToolBase.cxx:61
photonHist::m_hEtConv
TH1 * m_hEtConv
Definition: photonMonTool.h:45
photonHist::m_hEtaPhiConv
TH2 * m_hEtaPhiConv
Definition: photonMonTool.h:51
egammaBaseHist::m_hvRe233e237
std::vector< TH1 * > m_hvRe233e237
Definition: egammaMonToolBase.h:48
photonHist::m_hRConv
TH1 * m_hRConv
Definition: photonMonTool.h:56
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
photonHist::m_hvPtCone20Conv
std::vector< TH1 * > m_hvPtCone20Conv
Definition: photonMonTool.h:62
egammaBaseHist::m_hN
TH1 * m_hN
Definition: egammaMonToolBase.h:30
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
photonHist::m_hLB_NConv
TH1 * m_hLB_NConv
Definition: photonMonTool.h:91
photonHist::m_nPhotonsConv
unsigned int m_nPhotonsConv
Definition: photonMonTool.h:82
photonHist::m_hTopoEtCone40Unconv
TH1 * m_hTopoEtCone40Unconv
Definition: photonMonTool.h:52
photonHist::m_hLB_fConv
TH1 * m_hLB_fConv
Definition: photonMonTool.h:92
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
photonHist::m_nPhotonsPerRegionUnconv
std::vector< int > m_nPhotonsPerRegionUnconv
Definition: photonMonTool.h:87
egammaBaseHist::m_hEtaPhi
TH2 * m_hEtaPhi
Definition: egammaMonToolBase.h:34
photonHist::m_nPhotonsPerRegion
std::vector< int > m_nPhotonsPerRegion
Definition: photonMonTool.h:86
photonMonTool::bookHistograms
virtual StatusCode bookHistograms() override
An inheriting class should either override this function or bookHists().
Definition: photonMonTool.cxx:181
photonHist::m_hEtaUnconv
TH1 * m_hEtaUnconv
Definition: photonMonTool.h:46
xAOD::Iso::ptcone20
@ ptcone20
Track isolation.
Definition: IsolationType.h:40
photonHist::m_nPhotonsInCurrentLB
unsigned int m_nPhotonsInCurrentLB
Definition: photonMonTool.h:77
photonMonTool::fillHistograms
virtual StatusCode fillHistograms() override
An inheriting class should either override this function or fillHists().
Definition: photonMonTool.cxx:403
xAOD::CaloCluster_v1::et
double et() const
Definition: CaloCluster_v1.h:856
photonHist::m_hEtUnconv
TH1 * m_hEtUnconv
Definition: photonMonTool.h:44
egammaBaseHist::m_hEta
TH1 * m_hEta
Definition: egammaMonToolBase.h:32
photonHist::m_nPhotonsUnconv
unsigned int m_nPhotonsUnconv
Definition: photonMonTool.h:81
egammaMonToolBase::NREGION
@ NREGION
Definition: egammaMonToolBase.h:86
photonMonTool::m_photonUnconvGroup
MonGroup * m_photonUnconvGroup
Definition: photonMonTool.h:119
photonHist::m_nPhotonsPerLumiBlock
std::vector< int > m_nPhotonsPerLumiBlock
Definition: photonMonTool.h:83
xAOD::EgammaParameters::ConversionType
ConversionType
Definition: EgammaEnums.h:268
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
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
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
photonMonTool::m_photonGroup
MonGroup * m_photonGroup
Definition: photonMonTool.h:117
xAOD::EgammaParameters::deltaPhi1
@ deltaPhi1
difference between the cluster eta (1st sampling) and the eta of the track extrapolated to the 1st sa...
Definition: EgammaEnums.h:196
read_hist_ntuple.f2
f2
Definition: read_hist_ntuple.py:20
photonHist::m_hNUnconv
TH1 * m_hNUnconv
Definition: photonMonTool.h:42
egammaBaseHist::m_hvEhad1
std::vector< TH1 * > m_hvEhad1
Definition: egammaMonToolBase.h:42
photonHist
Definition: photonMonTool.h:32
xAOD::EgammaParameters::f3
@ f3
fraction of energy reconstructed in 3rd sampling
Definition: EgammaEnums.h:54
egammaMonToolBase
Definition: egammaMonToolBase.h:72
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
photonMonTool::fillHistogramsForOnePhoton
virtual StatusCode fillHistogramsForOnePhoton(xAOD::PhotonContainer::const_iterator g_iter, photonHist &myHist)
Definition: photonMonTool.cxx:199
photonHist::m_hvConvType
std::vector< TH1 * > m_hvConvType
Definition: photonMonTool.h:65
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
photonMonTool::photonMonTool
photonMonTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: photonMonTool.cxx:84
egammaMonToolBase::GetRegion
static int GetRegion(float eta)
Definition: egammaMonToolBase.cxx:207
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:92
photonHist::m_nPhotonsPerLumiBlockUnconv
std::vector< int > m_nPhotonsPerLumiBlockUnconv
Definition: photonMonTool.h:84
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
Photon.h
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
photonMonTool::m_photonRegionGroup
MonGroup * m_photonRegionGroup
Definition: photonMonTool.h:121
photonHist::m_nPhotonsInCurrentLBConv
unsigned int m_nPhotonsInCurrentLBConv
Definition: photonMonTool.h:79
photonMonTool.h
egammaMonToolBase::m_GroupExtension
std::string m_GroupExtension
Definition: egammaMonToolBase.h:113
PhotonxAODHelpers.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
photonHist::m_hPtCone20Conv
TH1 * m_hPtCone20Conv
Definition: photonMonTool.h:55
egammaBaseHist::m_hvEta
std::vector< TH1 * > m_hvEta
Definition: egammaMonToolBase.h:54
egammaBaseHist::m_hvEt
std::vector< TH1 * > m_hvEt
Definition: egammaMonToolBase.h:53
AthenaMonManager.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
photonMonTool::~photonMonTool
virtual ~photonMonTool()
Definition: photonMonTool.cxx:93
photonMonTool::m_photonLBGroup
MonGroup * m_photonLBGroup
Definition: photonMonTool.h:122
egammaBaseHist::m_hLB_N
TH1 * m_hLB_N
Definition: egammaMonToolBase.h:63
run
Definition: run.py:1
photonHist::m_hEtaPhiUnconv
TH2 * m_hEtaPhiUnconv
Definition: photonMonTool.h:50
TH1::Fill
int Fill(double)
Definition: rootspy.cxx:285
xAOD::EgammaParameters::convMatchDeltaPhi1
@ convMatchDeltaPhi1
difference between the cluster phi and the phi of the first track of the vertex extrapolated to the s...
Definition: EgammaEnums.h:253
photonHist::m_hNConv
TH1 * m_hNConv
Definition: photonMonTool.h:43
egammaBaseHist::m_hEtaPhi20GeV
TH2 * m_hEtaPhi20GeV
Definition: egammaMonToolBase.h:36
photonMonTool::bookHistogramsForOnePhotonType
virtual StatusCode bookHistogramsForOnePhotonType(photonHist &myHist)
Definition: photonMonTool.cxx:107
photonMonTool::m_photonConvGroup
MonGroup * m_photonConvGroup
Definition: photonMonTool.h:118
photonMonTool::m_CbLoosePhotons
photonHist * m_CbLoosePhotons
Definition: photonMonTool.h:114
egammaBaseHist::m_hvF3
std::vector< TH1 * > m_hvF3
Definition: egammaMonToolBase.h:47
photonHist::m_hEtaConv
TH1 * m_hEtaConv
Definition: photonMonTool.h:47
egammaBaseHist::m_hvTime
std::vector< TH1 * > m_hvTime
Definition: egammaMonToolBase.h:58
egammaBaseHist::m_hvRe237e277
std::vector< TH1 * > m_hvRe237e277
Definition: egammaMonToolBase.h:49
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
photonHist::m_hvTopoEtCone40Unconv
std::vector< TH1 * > m_hvTopoEtCone40Unconv
Definition: photonMonTool.h:59
photonMonTool::m_CbTightPhotons
photonHist * m_CbTightPhotons
Definition: photonMonTool.h:115
xAOD::EgammaHelpers::conversionRadius
float conversionRadius(const xAOD::Vertex *vx)
return the conversion radius or 9999.
Definition: PhotonxAODHelpers.cxx:76
photonHist::m_nPhotonsPerLumiBlockConv
std::vector< int > m_nPhotonsPerLumiBlockConv
Definition: photonMonTool.h:85
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
EventInfo.h
photonHist::m_hvPtCone20Unconv
std::vector< TH1 * > m_hvPtCone20Unconv
Definition: photonMonTool.h:60
ir
int ir
counter of the current depth
Definition: fastadd.cxx:49
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
photonHist::m_hPhiUnconv
TH1 * m_hPhiUnconv
Definition: photonMonTool.h:48
photonHist::m_hPhiConv
TH1 * m_hPhiConv
Definition: photonMonTool.h:49
egammaBaseHist::m_hEtaPhi4GeV
TH2 * m_hEtaPhi4GeV
Definition: egammaMonToolBase.h:35
egammaBaseHist::m_hvTopoEtCone40
std::vector< TH1 * > m_hvTopoEtCone40
Definition: egammaMonToolBase.h:56
photonHist::m_hvConvTrkMatch2
std::vector< TH1 * > m_hvConvTrkMatch2
Definition: photonMonTool.h:67
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
xAOD::EgammaHelpers::conversionType
xAOD::EgammaParameters::ConversionType conversionType(const xAOD::Photon *ph)
return the photon conversion type (see EgammaEnums)
Definition: PhotonxAODHelpers.cxx:26
xAOD::EgammaParameters::AuthorPhoton
const uint16_t AuthorPhoton
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:28
photonHist::m_nPhotonsPerRegionConv
std::vector< int > m_nPhotonsPerRegionConv
Definition: photonMonTool.h:88
egammaMonToolBase::m_currentLB
unsigned int m_currentLB
Definition: egammaMonToolBase.h:115
egammaBaseHist::m_hvPtCone20
std::vector< TH1 * > m_hvPtCone20
Definition: egammaMonToolBase.h:57
xAOD::EgammaParameters::e277
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
Definition: EgammaEnums.h:80
egammaMonToolBase::ENDCAP
@ ENDCAP
Definition: egammaMonToolBase.h:86
xAOD::EgammaParameters::e237
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
Definition: EgammaEnums.h:77
photonHist::m_hTopoEtCone40Conv
TH1 * m_hTopoEtCone40Conv
Definition: photonMonTool.h:53
xAOD::Iso::topoetcone40
@ topoetcone40
Definition: IsolationType.h:50
egammaMonToolBase::getCurrentLB
unsigned int getCurrentLB()
Definition: egammaMonToolBase.cxx:88
ManagedMonitorToolBase::ATTRIB_X_VS_LB
@ ATTRIB_X_VS_LB
Definition: ManagedMonitorToolBase.h:131
photonHist::m_hPtCone20Unconv
TH1 * m_hPtCone20Unconv
Definition: photonMonTool.h:54
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
egammaBaseHist::m_hTopoEtCone40
TH1 * m_hTopoEtCone40
Definition: egammaMonToolBase.h:37
egammaMonToolBase::hasGoodTrigger
bool hasGoodTrigger(const std::string &comment)
Definition: egammaMonToolBase.cxx:294
StoreGateSvc.h
photonHist::m_nPhotonsInCurrentLBUnconv
unsigned int m_nPhotonsInCurrentLBUnconv
Definition: photonMonTool.h:78
PhotonContainer.h
photonHist::m_hLB_NUnconv
TH1 * m_hLB_NUnconv
Definition: photonMonTool.h:90
egammaBaseHist::m_hvCoreEM
std::vector< TH1 * > m_hvCoreEM
Definition: egammaMonToolBase.h:43
photonMonTool::m_photonIdGroup
MonGroup * m_photonIdGroup
Definition: photonMonTool.h:120
photonMonTool::initialize
virtual StatusCode initialize() override
Definition: photonMonTool.cxx:100
egammaBaseHist::m_hvF0
std::vector< TH1 * > m_hvF0
Definition: egammaMonToolBase.h:44
read_hist_ntuple.f1
f1
Definition: read_hist_ntuple.py:4
egammaBaseHist::m_nameOfEgammaType
std::string m_nameOfEgammaType
Definition: egammaMonToolBase.h:27
photonHist::m_nPhotons
unsigned int m_nPhotons
Definition: photonMonTool.h:80