43 for (
int i = 0; i <
nLevels; i++) {
48 for (
int i = 0; i <
nLevels-1; i++) {
67 TH1::SetDefaultSumw2(kTRUE);
72 h_nvtx =
Book1D(
"Nvtx",
"Nvtx distribution;n_{vtx};Events ", 30, 0, 30);
73 h_mu =
Book1D(
"Mu",
"<#mu> distribution;<mu>;Events", 40, 0, 40);
74 h_bcid =
Book1D(
"BCID",
"BCID distribution;BCID;Events", 3500, 0, 3500);
75 h_track_n =
Book1D(
"NTracks",
"#Tracks on primary vtx;N_{tracks};Events", 80, 0, 200);
76 h_pv_x =
Book1D(
"Pv_x",
"Primary Vertex X Position;x_{vtx};Events", 100, -.5, .5);
77 h_pv_y =
Book1D(
"Pv_y",
"Primary Vertex Y Position;y_{vtx};Events", 100, -1.5, 1.5);
78 h_pv_z =
Book1D(
"Pv_z",
"Primary Vertex Z Position;z_{vtx};Events", 100, -250, 250);
80 for (
int i = 0; i <
nLevels; i++) {
86 for (
int i = 0; i <
nLevels-1; i++) {
93 h_f1 =
Book1D(
"F1",
"E_{1}/E (f1); E_{1}/E (f1); Events", 50, 0., 1.);
94 h_f3 =
Book1D(
"F3",
"E_{3}/E (f3); E_{3}/E (f3); Events", 50, 0., .1);
95 h_f1core =
Book1D(
"F1Core",
"E_{1}(3x1)/E (f1core); E_{1}(3x1)/E (f1core); Events", 50, 0., 1.);
96 h_f3core =
Book1D(
"F3Core",
"E_{3}(3x3)/E (f3core); E_{3}(3x3)/E (f3core); Events", 50, 0., .1);
98 h_e233 =
Book1D(
"E233",
"E_{2}(3x3)/GeV; E_{2}(3x3)/GeV; Events", 100, 0., 500.);
99 h_e237 =
Book1D(
"E237",
"E_{2}(3x7)/GeV; E_{2}(3x7)/GeV; Events", 100, 0., 500.);
100 h_e277 =
Book1D(
"E277",
"E_{2}(7x7)/GeV; E_{2}(7x7)/GeV; Events", 100, 0., 500.);
101 h_reta =
Book1D(
"REta",
"R_{#eta} (E_{2}(3x7)/E_{2}(7x7));R_{#eta}; Events", 50, 0.5, 1.);
102 h_rphi =
Book1D(
"RPhi",
"R_{#phi} (E_{2}(3x3)/E_{2}(3x7));R_{#phi}; Events", 50, 0.5, 1.);
104 h_weta1 =
Book1D(
"WEta1",
"w_{#eta 1} (weta1, shower width); w_{#eta 1}; Events", 70, 0.2, .9);
105 h_weta2 =
Book1D(
"WEta2",
"w_{#eta 2} (weta2, lateral width); w_{#eta 2}; Events", 100, 0.005, .02);
106 h_wtots1 =
Book1D(
"WTots1",
"w_{tot1} (wtots1, shower width); w_{tot1}; Events", 100, 0., 6.);
108 h_ethad =
Book1D(
"EtHad",
"E^{had}_{T}/GeV;E^{had}_{T}/GeV; Events", 100, -1., 9.);
109 h_ethad1 =
Book1D(
"EtHad1",
"E^{had1}_{T}/GeV;E^{had1}_{T}/GeV; Events", 100, -1., 9.);
110 h_fethad =
Book1D(
"FracEtHad",
"E^{had}_{T}/E_{T};E^{had}_{T}/E_{T}; Events", 100, -0.05, .45);
111 h_fethad1 =
Book1D(
"FracEtHad1",
"E^{had1}_{T}/E_{T};E^{had1}_{T}/E_{T}; Events", 100, -0.05, .45);
113 h_e2tsts1 =
Book1D(
"E2tsts1",
"E_{1}^{max2}/GeV (E of 2^{nd} maximum); E_{1}^{max2}/GeV; Events", 100, 0., 3.);
114 h_fracs1 =
Book1D(
"Fracs1",
"fracs1 (shower shape core); fracs1; Events", 50, 0., 1.);
115 h_emins1 =
Book1D(
"Emins1",
"E_{1}^{min}/GeV (E^{min} betw. maximum); E_{1}^{min}/GeV; Events", 100, 0., 3.);
116 h_emaxs1 =
Book1D(
"Emaxs1",
"E_{1}^{max}/GeV; E_{1}^{max}/GeV; Events", 100, 0., 3.);
117 h_demm1 =
Book1D(
"dEmm1",
"#Delta E^{sep}_{1}/GeV (2^{nd} max. separation); #Delta E^{sep}_{1}/GeV; Events", 50, 0., 1.);
118 h_iso =
Book1D(
"Iso",
"1 - E(3x3)/E(3x7)(iso); 1 - E(3x3)/E(3x7); Events", 100, 0., 1.);
119 h_eratio =
Book1D(
"Eratio",
"(E_{1}^{max}/GeV - E_{1}^{max2}/GeV )/(E_{1}^{max}/GeV + E_{1}^{max2}/GeV ); E_{ratio}; Events", 50, 0., 1.);
122 h_deta1 =
Book1D(
"dEta1",
"#Delta #eta_{1} Cluster-Track; #Delta #eta_{1}; Events", 100, -.05, .05);
123 h_deta2 =
Book1D(
"dEta2",
"#Delta #eta_{2} Cluster-Track; #Delta #eta_{2}; Events", 100, -.05, .05);
124 h_dphi1 =
Book1D(
"dPhi1",
"#Delta #phi_{1} Cluster-Track; #Delta #phi_{1}; Events", 100, -.05, .05);
125 h_dphi2 =
Book1D(
"dPhi2",
"#Delta #phi_{2} Cluster-Track; #Delta #phi_{2}; Events", 100, -.05, .05);
126 h_dphires2 =
Book1D(
"dPhiRes2",
"#Delta #phi_{2} Cluster-Track (Rescaled); #Delta #phi_{2} (rescaled); Events", 100, -.05, .05);
129 h_etcone20 =
Book1D(
"EtCone20",
"E_{T}^{cone20}/GeV; E_{T}^{cone20}/GeV; Events", 120, -4., 20.);
130 h_etcone30 =
Book1D(
"EtCone30",
"E_{T}^{cone30}/GeV; E_{T}^{cone30}/GeV; Events", 120, -4., 20.);
131 h_etcone40 =
Book1D(
"EtCone40",
"E_{T}^{cone40}/GeV; E_{T}^{cone40}/GeV; Events", 120, -4., 20.);
132 h_fetcone20 =
Book1D(
"FracEtCone20",
"E_{T}^{cone20}/E_{T}; E_{T}^{cone20}/E_{T}; Events", 120, -.1, .5);
133 h_fetcone30 =
Book1D(
"FracEtCone30",
"E_{T}^{cone30}/E_{T}; E_{T}^{cone30}/E_{T}; Events", 120, -.1, .5);
134 h_fetcone40 =
Book1D(
"FracEtCone40",
"E_{T}^{cone40}/E_{T}; E_{T}^{cone40}/E_{T}; Events", 120, -.1, .5);
136 h_ptcone20 =
Book1D(
"Ptcone20",
"p_{T}^{cone20}/GeV; p_{T}^{cone20}/GeV; Events", 80, 0., 20.);
137 h_ptcone30 =
Book1D(
"Ptcone30",
"p_{T}^{cone30}/GeV; p_{T}^{cone30}/GeV; Events", 80, 0., 20.);
138 h_ptcone40 =
Book1D(
"Ptcone40",
"p_{T}^{cone40}/GeV; p_{T}^{cone40}/GeV; Events", 80, 0., 20.);
145 h_n_trt_hits_high =
Book1D(
"NTRTHitsHighThreshold",
"N^{hits}_{TRT} High Threshold; N^{hits}; Events", 50, 0., 50.);
146 h_r_trt_hits =
Book1D(
"RTRTHits",
"N^{hits}_{TRT,HT} / N^{hits}_{TRT}; N^{hits}; Events", 50, 0., 1.);
153 h_r_trt_hits_outliers =
Book1D(
"RTRTHitsOutliers",
"N^{hits}_{TRT,HT} / N^{hits}_{TRT} incl. Outliers; N^{hits}; Events", 50, 0., 1.);
155 h_d0 =
Book1D(
"TrackD0",
"Track d0; d0; Events", 20, -1., 1.);
156 h_sigmad0 =
Book1D(
"TrackSigmaD0",
"Track #sigma_{d0}; #sigma_{d0}; Events", 20, 0., 0.1);
158 h_eoverpq =
Book1D(
"EoverPQ",
"E/p * q; E/p * q; Events", 50, -5., 5.);
164 int nGoodVertices = 0;
165 for (
const auto* vtx : vertices -> stdcont()){
170 h_track_n ->Fill(vtx -> nTrackParticles());
175 h_nvtx -> Fill(nGoodVertices);
176 h_mu -> Fill(eventInfo -> averageInteractionsPerCrossing());
177 h_bcid -> Fill(eventInfo -> bcid());
191 float f1(0), f3(0), f1core(0), f3core(0), fracs1(0), emaxs1(0), weta1(0), weta2(0), wtots1(0), r33over37allcalo(0), eratio(0);
205 float e2tsts1(0), emins1(0);
212 float e233(0), e237(0), e277(0), reta(0), rphi(0);
224 float ethad(0), ethad1(0);
229 h_fethad -> Fill(ethad/electron -> pt());
230 h_fethad1 -> Fill(ethad1/electron -> pt());
237 float deta1(0), deta2(0), dphi1(0), dphi2(0), dphires2(0);
244 h_d0 -> Fill(track -> d0());
245 float sigmad0 = -99.;
246 float vard0 = track -> definingParametersCovMatrix()(0, 0);
247 if (vard0 > 0) sigmad0 = sqrtf(vard0);
250 h_eoverp -> Fill(electron -> e() * TMath::Abs(track -> qOverP()));
251 h_eoverpq -> Fill(electron -> e() * track -> qOverP());
257 float etcone20(0), etcone30(0), etcone40(0), ptcone20(0), ptcone30(0), ptcone40(0);
279 uint8_t blayerh(0), pixelh(0), scth(0), trth(0), trthighh(0), blayero(0), pixelo(0), scto(0), trto(0), trthigho(0);
301 double rtrt = (trth) > 0 ? ((
double) (trthighh)/(trth) ) : 0.;
306 double rtrto = (trth + trto) > 0 ? ((
double) (trthigho + trthighh)/(trth + trto) ) : 0.;
314 for (
int i = 0; i <
nLevels-1; i++) {
323 if (hDenom->GetNbinsX() != hNom->GetNbinsX())
return;
325 for (
int bin_i = 1; bin_i <= hDenom -> GetNbinsX(); ++bin_i){
326 if(hDenom -> GetBinContent(bin_i) == 0)
continue;
327 double binContent = hNom -> GetBinContent(bin_i) / hDenom -> GetBinContent(bin_i);
328 double binCenter = hNom -> GetBinCenter(bin_i);
330 hEff -> Fill(binCenter, binContent);
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
PlotBase(PlotBase *parent, const std::string &sDir)
TProfile * BookTProfile(const std::string &name, const std::string &labels, int nBinsX, float startX, float endX, float startY=-1, float endY=-1, bool prependDir=true, bool useRMS=false)
Book a TProfile histogram.
void fillinAcc(const xAOD::Electron *electron, int level)
void fill(const xAOD::Electron *electron, int level)
ReconElectronsPlots(PlotBase *pParent, const std::string &sDir, const std::string &sParticleType)
TH1 * h_electron_phi[nLevels]
static const std::string cLevelLabel[nLevels]
TH1 * h_n_si_hits_outliers
TProfile * h_electron_eff_phi[nLevels-1]
TH1 * h_n_trt_hits_high_outliers
virtual void finalizePlots()
TH1 * h_n_trt_hits_outliers
TH1 * h_electron_eta[nLevels]
void fillShowerShape(const xAOD::Electron *electron)
void fillIsolation(const xAOD::Electron *electron)
void fillTrackCaloMatch(const xAOD::Electron *electron, const xAOD::TrackParticle *track)
std::string m_sParticleType
void makeEfficiencyPlot(TH1 *hDenom, TH1 *hNom, TProfile *hEff)
TProfile * h_electron_eff_eta[nLevels-1]
virtual void initializePlots()
TH1 * h_n_pixel_hits_outliers
TH1 * h_r_trt_hits_outliers
TH1 * h_n_blayer_hits_outliers
TProfile * h_electron_eff_pt[nLevels-1]
TH1 * h_electron_pt[nLevels]
void fillHitInfo(const xAOD::Electron *electron)
@ deltaPhi1
difference between the cluster eta (1st sampling) and the eta of the track extrapolated to the 1st sa...
@ deltaEta2
difference between the cluster eta (second sampling) and the eta of the track extrapolated to the sec...
@ deltaPhiRescaled2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
@ wtots1
shower width is determined in a window detaxdphi = 0,0625 ×~0,2, corresponding typically to 20 strips...
@ f3core
E3(3x3)/E fraction of the energy reconstructed in the third compartment of the electromagnetic calori...
@ ethad1
transverse energy in the first sampling of the hadronic calorimeters behind the cluster calculated fr...
@ e277
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 7x7
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
@ f3
fraction of energy reconstructed in 3rd sampling
@ f1
E1/E = fraction of energy reconstructed in the first sampling, where E1 is energy in all strips belon...
@ Eratio
(emaxs1-e2tsts1)/(emaxs1+e2tsts1)
@ emaxs1
energy of strip with maximal energy deposit
@ e233
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x3 (in cell units e...
@ fracs1
shower shape in the shower core : [E(+/-3)-E(+/-1)]/E(+/-1), where E(+/-n) is the energy in ± n strip...
@ r33over37allcalo
1-ratio of energy in 3x3 over 3x7 cells; E(3x3) = E0(1x1) + E1(3x1) + E2(3x3) + E3(3x3); E(3x7) = E0(...
@ 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...
@ 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
@ f1core
E1(3x1)/E = fraction of the energy reconstructed in the first longitudinal compartment of the electro...
@ etcone20
Calorimeter isolation.
@ ptcone20
Track isolation.
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.
EventInfo_v1 EventInfo
Definition of the latest event info version.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
@ numberOfTRTHighThresholdOutliers
number of TRT high threshold outliers (only xenon counted) [unit8_t].
@ numberOfPixelOutliers
these are the pixel outliers, including the b-layer [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfInnermostPixelLayerOutliers
number of 0th layer barrel outliers
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfSCTOutliers
number of SCT outliers [unit8_t].
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
Electron_v1 Electron
Definition of the current "egamma version".