ATLAS Offline Software
Loading...
Searching...
No Matches
ShowerShapesPlots.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5#include <utility>
6
7#include "ShowerShapesPlots.h"
8
9using CLHEP::GeV;
10
11namespace Egamma{
12
13
14 ShowerShapesPlots::ShowerShapesPlots(PlotBase* pParent, const std::string& sDir, std::string sParticleType):PlotBase(pParent, sDir),
15 m_sParticleType(std::move(sParticleType)),
16 hadleak(nullptr),
17 weta1 (nullptr),
18 weta2 (nullptr),
19 de (nullptr),
20 fracs1 (nullptr),
21 wtots1 (nullptr),
22 f1 (nullptr),
23 Eratio(nullptr),
24 Rhad(nullptr),
25 Reta(nullptr),
26 Rphi(nullptr),
27 hadleakvset(nullptr),
28 weta1vset (nullptr),
29 weta2vset (nullptr),
30 devset (nullptr),
31 fracs1vset (nullptr),
32 wtots1vset (nullptr),
33 f1vset (nullptr),
34 Eratiovset(nullptr),
35 Rhadvset(nullptr),
36 Retavset(nullptr),
37 Rphivset(nullptr),
38 hadleakvseta(nullptr),
39 weta1vseta(nullptr),
40 weta2vseta(nullptr),
41 devseta(nullptr),
42 fracs1vseta(nullptr),
43 wtots1vseta(nullptr),
44 f1vseta(nullptr),
45 Eratiovseta(nullptr),
46 Rhadvseta(nullptr),
47 Retavseta(nullptr),
48 Rphivseta(nullptr)
49
50 {}
51
53
54 hadleak = Book1D("hadleak", "Hadronic leakage of " + m_sParticleType+"; E_{hadleak} (GeV);Entries", 100, -0.07, 0.13);
55 weta1 = Book1D("weta1", "W_{#etas1} of "+ m_sParticleType+";W_{#etas1};Entries", 100, 0., 1.);
56 weta2 = Book1D("weta2", "W_{#etas2} of "+ m_sParticleType+";W_{#etas2};Entries", 100, 0., 0.03);
57 de = Book1D("de", "#DeltaE of "+ m_sParticleType+";#DeltaE (GeV);Entries", 250, 0., 0.5);
58 fracs1 = Book1D("fracs1", "Fracs1 of "+ m_sParticleType+";Fracs1;Entries", 350, 0., 3.5);
59 wtots1 = Book1D("wtots1", "W_{tots1} of "+ m_sParticleType+";W_{tots1};Entries", 100, 0., 10.);
60 f1 = Book1D("f1", "f1 of "+ m_sParticleType+";f1;Entries" , 120, -0.2, 1.0);
61 Eratio = Book1D("Eratio", "Eratio of "+ m_sParticleType+";Eratio;Entries" , 100, 0., 1.0);
62 Rhad = Book1D("Rhad", "Rhad of "+ m_sParticleType+";Rhad;Entries", 100, -0.5, 2.);
63 Reta = Book1D("Reta", "Reta of "+ m_sParticleType+";Reta;Entries", 100, -0., 3.);
64 Rphi = Book1D("Rphi", "Rphi of "+ m_sParticleType+";Rphi;Entries", 100, -1., 1.);
65
66 hadleakvset = Book2D("hadleakvset", "Hadronic leakage vs E_{T} of " + m_sParticleType+"; E_{hadleak} (GeV) ; E_{T} (GeV) ", 100, -0.07, 0.13, 200, 0., 200);
67 weta1vset = Book2D("weta1vset", "W_{#etas1} vs E_{T} of "+ m_sParticleType+";W_{#etas1}; E_{T} (GeV) ", 100, 0., 1., 200, 0., 200);
68 weta2vset = Book2D("weta2vset", "W_{#etas2} vs E_{T} of "+ m_sParticleType+";W_{#etas2}; E_{T} (GeV) ", 100, 0., 0.03, 200, 0., 200);
69 devset = Book2D("devset", "#DeltaE vs E_{T} of "+ m_sParticleType+";#DeltaE (GeV); E_{T} (GeV) ", 250, 0., 0.5, 200, 0., 200);
70 fracs1vset = Book2D("fracs1vset", "Fracs1 vs E_{T} of "+ m_sParticleType+";Fracs1; E_{T} (GeV) ", 350, 0., 3.5, 200, 0., 200);
71 wtots1vset = Book2D("wtots1vset", "W_{tots1} vsE_{T} of "+ m_sParticleType+";W_{tots1}; E_{T} (GeV) ", 100, 0., 10., 200, 0., 200);
72 f1vset = Book2D("f1vset", "f1 vs E_{T} of "+ m_sParticleType+";f1; E_{T} (GeV) " , 100, 0., 1.0, 200, 0., 200);
73 Eratiovset = Book2D("Eratiovset", "Eratio vs E_{T} of "+ m_sParticleType+";Eratio; E_{T} (GeV) " , 100, 0., 1.0, 200, 0., 200);
74 Rhadvset = Book2D("Rhadvset", "Rhad vs E_{T} of "+ m_sParticleType+";Rhad;E_{T} (GeV)", 100, -0.5, 2., 200, 0., 200);
75 Retavset = Book2D("Retavset", "Reta vs E_{T} of "+ m_sParticleType+";Reta;E_{T} (GeV)", 100, -0., 3., 200, 0., 200);
76 Rphivset = Book2D("Rphivset", "Rphi vs E_{T} of "+ m_sParticleType+";Rphi;E_{T} (GeV)", 100, -1., 1., 200, 0., 200);
77
78 hadleakvseta = Book2D("hadleakvseta", "Hadronic leakage vs E_{T} of " + m_sParticleType+"; E_{hadleak} (GeV) ; #eta ", 100, -0.07, 0.13, 1000,-5.,5.);
79 weta1vseta = Book2D("weta1vseta", "W_{#etas1} vs E_{T} of "+ m_sParticleType+";W_{#etas1}; #eta ", 100, 0., 1., 1000,-5.,5.);
80 weta2vseta = Book2D("weta2vseta", "W_{#etas2} vs E_{T} of "+ m_sParticleType+";W_{#etas2}; #eta ", 100, 0., 0.03, 1000,-5.,5.);
81 devseta = Book2D("devseta", "#DeltaE vs E_{T} of "+ m_sParticleType+";#DeltaE (GeV); #eta ", 250, 0., 0.5, 1000,-5.,5.);
82 fracs1vseta = Book2D("fracs1vseta", "Fracs1 vs E_{T} of "+ m_sParticleType+";Fracs1; #eta ", 350, 0., 3.5, 1000,-5.,5.);
83 wtots1vseta = Book2D("wtots1vseta", "W_{tots1} vsE_{T} of "+ m_sParticleType+";W_{tots1}; #eta ", 100, 0., 10., 1000,-5.,5.);
84 f1vseta = Book2D("f1vseta", "f1 vs E_{T} of "+ m_sParticleType+";f1; #eta " , 100, 0., 1.0, 1000,-5.,5.);
85 Eratiovseta = Book2D("Eratiovseta", "Eratio vs #eta of "+ m_sParticleType+";Eratio; #eta " , 100, 0., 1.0, 1000,-5.,5.);
86 Rhadvseta = Book2D("Rhadvseta", "Rhad vs #eta of "+ m_sParticleType+";Rhad;#eta", 100, -0.5, 2., 1000,-5.,5.);
87 Retavseta = Book2D("Retavseta", "Reta vs #eta of "+ m_sParticleType+";Reta;#eta", 100, -0., 3., 1000,-5.,5.);
88 Rphivseta = Book2D("Rphivseta", "Rphi vs #eta of "+ m_sParticleType+";Rphi;#eta", 100, -1., 1., 1000,-5.,5.);
89
90 }
91
93
94 float weight = 1.;
95 weight = eventInfo.beamSpotWeight();
96
97 float eta2 = fabs (egamma.caloCluster()->etaBE (2));
98 float et37 = egamma.caloCluster()->e() / cosh (eta2);
99 float ethad(0);
100 float ethad1(0);
101 float raphad(0);
102 float raphad1(0);
103 if(egamma.showerShapeValue(ethad, xAOD::EgammaParameters::ethad )){
104 raphad = et37 > 0. ? ethad / et37 : 0.;
105 }
106 if(egamma.showerShapeValue(ethad1, xAOD::EgammaParameters::ethad1 )){
107 raphad1 = et37 > 0. ? ethad1 / et37 : 0.;
108 }
109 float hadrleak = (eta2 >= 0.8 && eta2 < 1.37) ? raphad : raphad1;
110 hadleak->Fill(hadrleak, weight);
111 hadleakvset->Fill(hadrleak, egamma.pt()/GeV, weight);
112 hadleakvseta->Fill(hadrleak, egamma.eta(), weight);
113
114 float shweta1(0);
115 float shweta2(0);
116 if(egamma.showerShapeValue(shweta1, xAOD::EgammaParameters::weta1 )&&
117 egamma.showerShapeValue(shweta2, xAOD::EgammaParameters::weta2 )){
118 weta1->Fill(shweta1, weight);
119 weta2->Fill(shweta2, weight);
120 weta1vset->Fill(shweta1, egamma.pt()/GeV, weight);
121 weta2vset->Fill(shweta2, egamma.pt()/GeV, weight);
122 weta1vseta->Fill(shweta1, egamma.eta(), weight);
123 weta2vseta->Fill(shweta2, egamma.eta(), weight);
124 }
125
126 float emin(0);
127 float emax2(0);
128 if(egamma.showerShapeValue(emin, xAOD::EgammaParameters::emins1 )&&
129 egamma.showerShapeValue(emax2, xAOD::EgammaParameters::e2tsts1 )){
130
131 de->Fill( (emax2 - emin)/GeV, weight);
132 devset->Fill( (emax2 - emin)/GeV, egamma.pt()/GeV, weight);
133 devseta->Fill( (emax2 - emin)/GeV, egamma.eta(), weight);
134 }
135
136 float shfracs1(0);
137 float shwtots1(0);
138 float fracf1(0);
139 float eRatio(0);
140 float rhad(0);
141 float reta(0);
142 float rphi(0);
143
144 if(egamma.showerShapeValue(shfracs1, xAOD::EgammaParameters::fracs1 )){
145 fracs1->Fill(shfracs1, weight);
146 fracs1vset->Fill(shfracs1, egamma.pt()/GeV, weight);
147 fracs1vseta->Fill(shfracs1, egamma.eta(), weight);
148 }
149
150 if(egamma.showerShapeValue(shwtots1, xAOD::EgammaParameters::wtots1 )){
151 wtots1->Fill(shwtots1, weight);
152 wtots1vset->Fill(shwtots1, egamma.pt()/GeV, weight);
153 wtots1vseta->Fill(shwtots1, egamma.eta(), weight);
154 }
155
156 if(egamma.showerShapeValue(fracf1, xAOD::EgammaParameters::f1 )){
157 f1->Fill(fracf1, weight);
158 f1vset->Fill(fracf1, egamma.pt()/GeV, weight);
159 f1vseta->Fill(fracf1, egamma.eta(), weight);
160 }
161
162 if(egamma.showerShapeValue(eRatio, xAOD::EgammaParameters::Eratio )){
163 Eratio->Fill(eRatio, weight);
164 Eratiovset->Fill(eRatio, egamma.pt()/GeV, weight);
165 Eratiovseta->Fill(eRatio, egamma.eta(), weight);
166 }
167
168 if(egamma.showerShapeValue(rhad, xAOD::EgammaParameters::Rhad )){
169 Rhad->Fill(rhad, weight);
170 Rhadvset->Fill(rhad, egamma.pt()/GeV, weight);
171 Rhadvseta->Fill(rhad, egamma.eta(), weight);
172 }
173
174 if(egamma.showerShapeValue(reta, xAOD::EgammaParameters::Reta )){
175 Reta->Fill(reta, weight);
176 Retavset->Fill(reta, egamma.pt()/GeV, weight);
177 Retavseta->Fill(reta, egamma.eta(), weight);
178 }
179
180 if(egamma.showerShapeValue(rphi, xAOD::EgammaParameters::Rphi )){
181 Rphi->Fill(rphi, weight);
182 Rphivset->Fill(rphi, egamma.pt()/GeV, weight);
183 Rphivseta->Fill(rphi, egamma.eta(), weight);
184 }
185
186 } // end of fill
187
188} // end of namespace Egamma
ShowerShapesPlots(PlotBase *pParent, const std::string &sDir, std::string sParticleType)
void fill(const xAOD::Egamma &egamma, const xAOD::EventInfo &eventInfo)
virtual double e() const
energy
virtual double pt() const
transverse momentum
virtual double eta() const
pseudo rapidity
TH1D * Book1D(std::string_view name, std::string_view labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition PlotBase.cxx:94
PlotBase(PlotBase *parent, std::string_view sDir)
Definition PlotBase.cxx:29
TH2F * Book2D(std::string_view name, std::string_view labels, int nBinsX, float startX, float endX, int nBinsY, float startY, float endY, bool prependDir=true)
Book a TH2F histogram.
Definition PlotBase.cxx:123
elec/gamma data class.
Definition egamma.h:58
float beamSpotWeight() const
Weight for beam spot size reweighting.
STL namespace.
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
@ ethad1
transverse energy in the first sampling of the hadronic calorimeters behind the cluster calculated fr...
Definition EgammaEnums.h:43
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
Definition EgammaEnums.h:46
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
Definition EgammaEnums.h:53
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
@ weta2
the lateral width is calculated with a window of 3x5 cells using the energy weighted sum over all cel...
@ weta1
shower width using +/-3 strips around the one with the maximal energy deposit: w3 strips = sqrt{sum(E...
Definition EgammaEnums.h:98
@ e2tsts1
energy of the cell corresponding to second energy maximum in the first sampling
@ emins1
energy reconstructed in the strip with the minimal value between the first and second maximum
EventInfo_v1 EventInfo
Definition of the latest event info version.
Egamma_v1 Egamma
Definition of the current "egamma version".
Definition Egamma.h:17