ATLAS Offline Software
Loading...
Searching...
No Matches
ZeePlots.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7using CLHEP::GeV;
8
9namespace ZeeValidation{
10
11 ZeePlots::ZeePlots(PlotBase* pParent, const std::string& sDir, const std::string& sParticleType):
12 PlotBase(pParent, sDir),
13 m_sParticleType(sParticleType),
14 h_n_el(NULL)
15 {
16 for (int i = 0; i < nLevels; i++) {
17 h_z_mass[i] = NULL;
18 h_z_pt[i] = NULL;
19 h_z_y[i] = NULL;
20 h_dr_electrons[i] = NULL;
21 h_ptclust_electron1[i] = NULL;
22 h_ptclust_electron2[i] = NULL;
23 h_etaclust_electron1[i] = NULL;
24 h_etaclust_electron2[i] = NULL;
25 h_ptclust_electrons[i] = NULL;
26 h_etaclust_electrons[i] = NULL;
27 h_pt_electrons[i] = NULL;
28 h_eta_electrons[i] = NULL;
29 h_phi_electrons[i] = NULL;
30 h_eoverp_electrons[i] = NULL;
31 h_eoverpq_electrons[i] = NULL;
32 }
33 }
34
35 const std::string ZeePlots::cLevelLabel[nLevels] = {
36 "Reco_OS",
37 "OQ_OS",
38 "Loose_OS",
39 "Medium_OS",
40 "Tight_OS",
41 "Reco_SS",
42 "OQ_SS",
43 "Loose_SS",
44 "Medium_SS",
45 "Tight_SS"
46 };
47
49
50 h_n_el = Book1D("NElectrons", "Number of electrons; Number ;Events", 10, -0.5, 9.5);
51
52 for (int i = 0; i < nLevels; i++) {
53
54 h_z_mass[i] = Book1D("ZMass"+ cLevelLabel[i], "Mass of Z; Mass (GeV) ;Events", 50, 66., 116.);
55 h_z_pt[i] = Book1D("ZPt"+ cLevelLabel[i], "P_{T} of Z; P_{T} ;Events", 60, 0., 120.);
56 h_z_y[i] = Book1D("ZY"+ cLevelLabel[i], "#eta of Z; #eta ;Events", 100, -5., 5.);
57
58 h_dr_electrons[i] = Book1D("DRElectrons"+ cLevelLabel[i], " #DeltaR(electrons) ;Events", 50, 0., 6.);
59
60 h_ptclust_electron1[i] = Book1D("PtClustElectron1"+ cLevelLabel[i], " P_{T}(el cluster_{1}) ;Events", 60, 20., 140.);
61 h_ptclust_electron2[i] = Book1D("PtClustElectron2"+ cLevelLabel[i], " P_{T}(el cluster_{2}) ;Events", 60, 20., 140.);
62 h_etaclust_electron1[i] = Book1D("EtaClustElectron1"+ cLevelLabel[i], " #eta(el cluster_{1}) ;Events", 50, -2.5, 2.5);
63 h_etaclust_electron2[i] = Book1D("EtaClustElectron2"+ cLevelLabel[i], " #eta(el cluster_{2}) ;Events", 50, -2.5, 2.5);
64
65 h_ptclust_electrons[i] = Book1D("PtClust_Electrons"+ cLevelLabel[i], " P_{T}(el clusters) ;Events", 60, 20., 140.);
66 h_etaclust_electrons[i] = Book1D("EtaClustElectrons"+ cLevelLabel[i], " #eta(el clusters) ;Events", 50, -2.5, 2.5);
67 h_pt_electrons[i] = Book1D("PtElectrons"+ cLevelLabel[i], " P_{T}(electrons) ;Events", 60, 20., 140.);
68 h_eta_electrons[i] = Book1D("EtaElectrons"+ cLevelLabel[i], " #eta(electrons) ;Events", 50, -2.5, 2.5);
69 h_phi_electrons[i] = Book1D("PhiElectrons"+ cLevelLabel[i], " #varphi(electrons) ;Events", 60, -TMath::Pi(), TMath::Pi());
70 h_eoverp_electrons[i] = Book1D("EoverPElectrons"+ cLevelLabel[i], " E/p ;Events", 50, 0., 10.);
71 h_eoverpq_electrons[i] = Book1D("EoverPQElectrons"+ cLevelLabel[i], "E/p*q ;Events", 50, -10., 10.);
72 }
73
74 }
75
76 void ZeePlots::fillZPlots(TLorentzVector& z, int level){
77 h_z_mass[level] -> Fill(z.M()*(1./GeV));
78 h_z_pt[level] -> Fill(z.Pt()*(1./GeV));
79 h_z_y[level] -> Fill(z.Rapidity());
80 }
81
82 void ZeePlots::fillElectronPlots( TLorentzVector& elec1, TLorentzVector& elec2, TLorentzVector& cluster1, TLorentzVector& cluster2, TLorentzVector& track1, TLorentzVector& track2, int charge1, int charge2, int level ){
83
84 h_dr_electrons[level] -> Fill( elec1.DeltaR(elec2) );
85
86 h_ptclust_electron1[level] -> Fill( cluster1.Perp()*(1./GeV) );
87 h_ptclust_electron2[level] -> Fill( cluster2.Perp()*(1./GeV) );
88
89 h_etaclust_electron1[level] -> Fill( cluster1.Rapidity() );
90 h_etaclust_electron2[level] -> Fill( cluster2.Rapidity() );
91
92 h_ptclust_electrons[level] -> Fill( cluster1.Perp()*(1./GeV) );
93 h_ptclust_electrons[level] -> Fill( cluster2.Perp()*(1./GeV) );
94
95 h_etaclust_electrons[level] -> Fill( cluster1.Rapidity() );
96 h_etaclust_electrons[level] -> Fill( cluster2.Rapidity() );
97
98 h_pt_electrons[level] -> Fill( elec1.Perp()*(1./GeV) );
99 h_pt_electrons[level] -> Fill( elec2.Perp()*(1./GeV) );
100
101 h_eta_electrons[level] -> Fill( elec1.Rapidity() );
102 h_eta_electrons[level] -> Fill( elec2.Rapidity() );
103
104 h_phi_electrons[level] -> Fill( elec1.Phi() );
105 h_phi_electrons[level] -> Fill( elec2.Phi() );
106
107 h_eoverp_electrons[level] ->Fill( cluster1.E()/track1.E() );
108 h_eoverp_electrons[level] ->Fill( cluster2.E()/track2.E() );
109
110 h_eoverpq_electrons[level] ->Fill( cluster1.E()/track1.E()*charge1 );
111 h_eoverpq_electrons[level] ->Fill( cluster2.E()/track2.E()*charge2 );
112 }
113
114 void ZeePlots::fillGenPlots( int nel ){
115 h_n_el -> Fill( nel );
116 }
117
118}
#define z
TH1D * Book1D(const std::string &name, const std::string &labels, int nBins, float start, float end, bool prependDir=true)
Book a TH1D histogram.
Definition PlotBase.cxx:94
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
static const std::string cLevelLabel[nLevels]
Definition ZeePlots.h:25
TH1 * h_z_mass[nLevels]
Definition ZeePlots.h:31
void fillGenPlots(int nel)
Definition ZeePlots.cxx:114
TH1 * h_eoverpq_electrons[nLevels]
Definition ZeePlots.h:48
TH1 * h_z_y[nLevels]
Definition ZeePlots.h:33
TH1 * h_eoverp_electrons[nLevels]
Definition ZeePlots.h:47
TH1 * h_ptclust_electron1[nLevels]
Definition ZeePlots.h:37
TH1 * h_phi_electrons[nLevels]
Definition ZeePlots.h:46
TH1 * h_dr_electrons[nLevels]
Definition ZeePlots.h:35
std::string m_sParticleType
Definition ZeePlots.h:27
virtual void initializePlots()
Definition ZeePlots.cxx:48
TH1 * h_pt_electrons[nLevels]
Definition ZeePlots.h:44
TH1 * h_etaclust_electrons[nLevels]
Definition ZeePlots.h:43
TH1 * h_etaclust_electron2[nLevels]
Definition ZeePlots.h:40
static const int nLevels
Definition ZeePlots.h:24
TH1 * h_eta_electrons[nLevels]
Definition ZeePlots.h:45
void fillElectronPlots(TLorentzVector &elec1, TLorentzVector &elec2, TLorentzVector &cluster1, TLorentzVector &cluster2, TLorentzVector &track1, TLorentzVector &track2, int charge1, int charge2, int level)
Definition ZeePlots.cxx:82
ZeePlots(PlotBase *pParent, const std::string &sDir, const std::string &sParticleType)
Definition ZeePlots.cxx:11
TH1 * h_etaclust_electron1[nLevels]
Definition ZeePlots.h:39
TH1 * h_ptclust_electrons[nLevels]
Definition ZeePlots.h:42
TH1 * h_ptclust_electron2[nLevels]
Definition ZeePlots.h:38
TH1 * h_z_pt[nLevels]
Definition ZeePlots.h:32
void fillZPlots(TLorentzVector &z, int level)
Definition ZeePlots.cxx:76