ATLAS Offline Software
Loading...
Searching...
No Matches
IDPerfMonZee.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef IDPerfMonZee_H
6#define IDPerfMonZee_H
7
8// **********************************************************************
9// IDPerfMonZee.cxx
10// AUTHORS: Beate Heinemann, Tobias Golling, Sara Strandberg
11// **********************************************************************
12
13#include <vector>
14
16
17//typedefs, cannot be fwd declared
18#include "xAODEgamma/Electron.h"
20#include "xAODEgamma/Photon.h"
26
29
30class TH1;
31class TH1F;
32class TH2;
33class TH2F;
34class TProfile;
35
37{
38
39public:
40
41 IDPerfMonZee(const std::string & type, const std::string & name, const IInterface* parent);
42
43 virtual ~IDPerfMonZee();
44
45 virtual StatusCode initialize();
46 virtual StatusCode bookHistograms();
47 virtual StatusCode fillHistograms();
48 virtual StatusCode procHistograms();
49
50 void RegisterHisto(MonGroup& mon, TH1* histo, bool doSumw2 = false);
51 void RegisterHisto(MonGroup& mon, TH2* histo, bool doSumw2 = false);
52 void RegisterHisto(MonGroup& mon, TProfile* histo);
53
54 const xAOD::CaloCluster* getLeadingEMcluster(const xAOD::CaloClusterContainer* clusters, const xAOD::CaloCluster* omitCluster = 0) const;
55 const xAOD::CaloCluster* getLeadingEMcluster(const xAOD::PhotonContainer* photons, const xAOD::ElectronContainer* electrons, const xAOD::CaloCluster* omitCluster = 0) const;
56
58 double dEta = 0.05, double dPhi = 0.1) const;
59 double electronTrackMatchEta(const xAOD::TrackParticleContainer* tracks, const xAOD::CaloCluster* cluster,
60 double dEta = 0.05) const;
61 double electronTrackMatchPhi(const xAOD::TrackParticleContainer* tracks, const xAOD::CaloCluster* cluster,
62 double dPhi = 0.1) const;
63 double InvMass(const xAOD::CaloCluster* EM1, const xAOD::CaloCluster* EM2) const;
64 double InvMass(const xAOD::TrackParticle* trk1, const xAOD::TrackParticle* trk2) const;
65 double TransMass(const xAOD::CaloCluster* EM, const xAOD::MissingET* met) const;
66 double deltaR(const xAOD::CaloCluster* cluster, const xAOD::TrackParticle* track) const;
67 double signedDeltaPhi(double phi1, double phi2) const;
68
69 int isZee(const xAOD::CaloCluster* em1, const xAOD::CaloCluster* em2, const xAOD::TrackParticleContainer* tracks = 0) const;
70
71 void makeEffHisto(TH1F* h_num, TH1F* h_denom, TH1F* h_eff);
72
73 int etaRegion(double eta);
74
75 void FillHistosPerCluster(const xAOD::CaloCluster* cluster, const xAOD::TrackParticle* track, int region, float dEta, float dPhi);
76
77 protected:
78
80 std::vector<std::string> m_region_strings;
81
83
84 // event histos
85
86 TH1F* m_Nevents{};
87
88 TH1F* m_Check{};
94
97
98 // cluster histos
99
100 std::vector<TH1F*> m_Zee_eta;
101 std::vector<TH1F*> m_Zee_phi;
102 std::vector<TH1F*> m_Zee_deta;
103 std::vector<TProfile*> m_Zee_deta_vs_eta;
104 std::vector<TProfile*> m_Zee_deta_vs_phi;
105 std::vector<TProfile*> m_Zee_absdeta_vs_eta;
106 std::vector<TProfile*> m_Zee_absdeta_vs_phi;
107
108 std::vector<TH2F*> m_Zee_deta_vs_eta_2d;
109 std::vector<TH2F*> m_Zee_deta_vs_phi_2d;
110 std::vector<TH2F*> m_Zee_dphi_vs_eta_2d;
111 std::vector<TH2F*> m_Zee_dphi_vs_phi_2d;
112
113 std::vector<TH1F*> m_Zee_dphi;
114 std::vector<TProfile*> m_Zee_dphi_vs_eta;
115 std::vector<TProfile*> m_Zee_dphi_vs_phi;
116 std::vector<TProfile*> m_Zee_absdphi_vs_eta;
117 std::vector<TProfile*> m_Zee_absdphi_vs_phi;
118
119 std::vector<TH1F*> m_Zee_trackmatched_eta;
120 std::vector<TH1F*> m_Zee_trackmatched_phi;
125 std::vector<TH1F*> m_Zee_trackmatch_eff_vs_eta;
126 std::vector<TH1F*> m_Zee_trackmatch_eff_vs_phi;
127 std::vector<TH1F*> m_Zee_Eopmatch_eff_vs_eta;
128 std::vector<TH1F*> m_Zee_Eopmatch_eff_vs_phi;
131
132 std::vector<TH1F*> m_Zee_Eop;
133 std::vector<TH1F*> m_Zee_Eop_plus;
134 std::vector<TH1F*> m_Zee_Eop_minus;
135 std::vector<TProfile*> m_Zee_meanEop_vs_p;
136 std::vector<TProfile*> m_Zee_meanEop_vs_invp;
137 std::vector<TProfile*> m_Zee_meanEop_vs_E;
138 std::vector<TProfile*> m_Zee_meanEop_vs_chargedp;
139 std::vector<TProfile*> m_Zee_meanEop_vs_chargedE;
140 std::vector<TProfile*> m_Zee_meanEop_vs_phi;
141 std::vector<TProfile*> m_Zee_meanEop_vs_eta;
142 std::vector<TProfile*> m_Zee_meanEop_vs_p_plus;
143 std::vector<TProfile*> m_Zee_meanEop_vs_invp_plus;
144 std::vector<TProfile*> m_Zee_meanEop_vs_E_plus;
145 std::vector<TProfile*> m_Zee_meanEop_vs_phi_plus;
146 std::vector<TProfile*> m_Zee_meanEop_vs_eta_plus;
147 std::vector<TProfile*> m_Zee_meanEop_vs_p_minus;
148 std::vector<TProfile*> m_Zee_meanEop_vs_invp_minus;
149 std::vector<TProfile*> m_Zee_meanEop_vs_E_minus;
150 std::vector<TProfile*> m_Zee_meanEop_vs_phi_minus;
151 std::vector<TProfile*> m_Zee_meanEop_vs_eta_minus;
152 std::vector<TH1F*> m_Zee_Eop_lt1_gt1;
153 std::vector<TH1F*> m_Zee_Eopdiff;
154 std::vector<TProfile*> m_Zee_Eopdiff_vs_p;
155 std::vector<TProfile*> m_Zee_Eopdiff_vs_invp;
156 std::vector<TProfile*> m_Zee_Eopdiff_vs_E;
157 std::vector<TProfile*> m_Zee_Eopdiff_vs_phi;
158 std::vector<TProfile*> m_Zee_Eopdiff_vs_eta;
159 std::vector<TH1F*> m_Zee_Eop_lt1_vs_eta;
160 std::vector<TH1F*> m_Zee_Eop_lt1_vs_phi;
161 std::vector<TH1F*> m_Zee_Eop_gt1_vs_eta;
162 std::vector<TH1F*> m_Zee_Eop_gt1_vs_phi;
163 std::vector<TH1F*> m_Zee_frac_Eop_lt1_vs_eta;
164 std::vector<TH1F*> m_Zee_frac_Eop_lt1_vs_phi;
165
166 std::vector<TH1F*> m_Zee_Eop_05_25;
167 std::vector<TH1F*> m_Zee_Eop_15_25;
168 std::vector<TH1F*> m_Zee_frac_Eop_05_25_15_25;
169
170 private:
171
172 std::string m_stream;
173 std::string m_tracksName;
174 std::string m_electronsName;
175 std::string m_photonsName;
177 std::string m_emclustersName;
178 std::string m_metName;
180 std::string m_metRefFinalName;
186 std::string m_electronIDLevel;
188 //Likelihood tool:
190};
191
192#endif
Scalar eta() const
pseudorapidity method
Electron selector tool to select objects in Athena using an underlying pure ROOT tool.
std::vector< TH2F * > m_Zee_dphi_vs_eta_2d
double electronTrackMatchPhi(const xAOD::TrackParticleContainer *tracks, const xAOD::CaloCluster *cluster, double dPhi=0.1) const
double deltaR(const xAOD::CaloCluster *cluster, const xAOD::TrackParticle *track) const
double InvMass(const xAOD::CaloCluster *EM1, const xAOD::CaloCluster *EM2) const
const xAOD::CaloCluster * getLeadingEMcluster(const xAOD::CaloClusterContainer *clusters, const xAOD::CaloCluster *omitCluster=0) const
std::vector< TProfile * > m_Zee_meanEop_vs_invp_minus
std::vector< TProfile * > m_Zee_deta_vs_eta
std::vector< TProfile * > m_Zee_absdphi_vs_eta
std::vector< TProfile * > m_Zee_meanEop_vs_phi_plus
double signedDeltaPhi(double phi1, double phi2) const
double TransMass(const xAOD::CaloCluster *EM, const xAOD::MissingET *met) const
std::vector< TProfile * > m_Zee_Eopdiff_vs_p
std::vector< TH1F * > m_Zee_trackmatched_tightEopmatched_phi
double m_eoverp_tight_min
std::vector< TProfile * > m_Zee_meanEop_vs_eta
std::vector< TProfile * > m_Zee_meanEop_vs_p_minus
double electronTrackMatchEta(const xAOD::TrackParticleContainer *tracks, const xAOD::CaloCluster *cluster, double dEta=0.05) const
std::vector< TH1F * > m_Zee_Eopmatch_eff_vs_eta
std::vector< std::string > m_region_strings
std::vector< TProfile * > m_Zee_meanEop_vs_phi
std::vector< TProfile * > m_Zee_dphi_vs_eta
virtual StatusCode fillHistograms()
An inheriting class should either override this function or fillHists().
std::vector< TH1F * > m_Zee_frac_Eop_lt1_vs_phi
virtual StatusCode bookHistograms()
An inheriting class should either override this function or bookHists().
AsgElectronLikelihoodTool * m_LHTool2015
std::vector< TH1F * > m_Zee_frac_Eop_lt1_vs_eta
std::vector< TProfile * > m_Zee_meanEop_vs_p
void makeEffHisto(TH1F *h_num, TH1F *h_denom, TH1F *h_eff)
std::vector< TProfile * > m_Zee_meanEop_vs_chargedp
TH1F * m_Zee_trk_invmass_scaled
std::vector< TProfile * > m_Zee_Eopdiff_vs_E
std::vector< TH1F * > m_Zee_Eop_gt1_vs_eta
std::vector< TH1F * > m_Zee_trackmatch_eff_vs_phi
std::vector< TH2F * > m_Zee_deta_vs_eta_2d
std::vector< TProfile * > m_Zee_Eopdiff_vs_phi
std::vector< TH2F * > m_Zee_dphi_vs_phi_2d
std::string m_VxPrimContainerName
std::string m_triggerChainName
TH1F * m_Zee_trk_invmass_sel
std::vector< TH1F * > m_Zee_tightEopmatch_eff_vs_phi
std::vector< TProfile * > m_Zee_meanEop_vs_eta_plus
std::vector< TH1F * > m_Zee_Eopdiff
std::vector< TH1F * > m_Zee_trackmatched_Eopmatched_phi
std::string m_stream
void FillHistosPerCluster(const xAOD::CaloCluster *cluster, const xAOD::TrackParticle *track, int region, float dEta, float dPhi)
std::string m_metRefFinalName
std::vector< TProfile * > m_Zee_meanEop_vs_phi_minus
std::vector< TH1F * > m_Zee_trackmatched_Eopmatched_eta
std::vector< TH1F * > m_Zee_Eop
std::vector< TH1F * > m_Zee_trackmatched_eta
std::string m_tracksName
std::string m_metName
std::vector< TProfile * > m_Zee_deta_vs_phi
TH1F * m_Zee_Eopasym_perevent_central
std::vector< TH1F * > m_Zee_Eop_lt1_gt1
TH1F * m_Zee_Eopasym_perevent
const xAOD::TrackParticle * electronTrackMatch(const xAOD::TrackParticleContainer *tracks, const xAOD::CaloCluster *cluster, double dEta=0.05, double dPhi=0.1) const
std::vector< TProfile * > m_Zee_absdeta_vs_eta
std::vector< TH1F * > m_Zee_trackmatched_tightEopmatched_eta
std::vector< TH1F * > m_Zee_eta
std::vector< TProfile * > m_Zee_absdphi_vs_phi
TH1F * m_Nevents
std::vector< TH2F * > m_Zee_deta_vs_phi_2d
std::vector< TProfile * > m_Zee_meanEop_vs_p_plus
std::vector< TH1F * > m_Zee_Eop_lt1_vs_phi
std::vector< TProfile * > m_Zee_meanEop_vs_invp
std::vector< TH1F * > m_Zee_Eop_minus
std::vector< TH1F * > m_Zee_trackmatch_eff_vs_eta
std::vector< TProfile * > m_Zee_meanEop_vs_E_minus
std::string m_emclustersName
double m_eoverp_tight_max
std::vector< TProfile * > m_Zee_meanEop_vs_invp_plus
double InvMass(const xAOD::TrackParticle *trk1, const xAOD::TrackParticle *trk2) const
std::vector< TProfile * > m_Zee_dphi_vs_phi
virtual StatusCode initialize()
double m_eoverp_standard_max
std::string m_photonsName
std::vector< TH1F * > m_Zee_Eop_15_25
IDPerfMonZee(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< TH1F * > m_Zee_Eop_plus
std::vector< TProfile * > m_Zee_meanEop_vs_E
std::vector< TH1F * > m_Zee_Eopmatch_eff_vs_phi
std::vector< TProfile * > m_Zee_meanEop_vs_eta_minus
std::vector< TH1F * > m_Zee_phi
std::string m_electronsName
std::vector< TProfile * > m_Zee_Eopdiff_vs_eta
std::vector< TProfile * > m_Zee_meanEop_vs_E_plus
std::vector< TH1F * > m_Zee_dphi
int isZee(const xAOD::CaloCluster *em1, const xAOD::CaloCluster *em2, const xAOD::TrackParticleContainer *tracks=0) const
TH1F * m_Zee_invmass_sel
std::vector< TH1F * > m_Zee_Eop_lt1_vs_eta
std::vector< TProfile * > m_Zee_absdeta_vs_phi
std::vector< TH1F * > m_Zee_tightEopmatch_eff_vs_eta
std::vector< TH1F * > m_Zee_Eop_05_25
std::vector< TH1F * > m_Zee_Eop_gt1_vs_phi
std::vector< TH1F * > m_Zee_frac_Eop_05_25_15_25
std::string m_electronIDLevel
TH1F * m_Zee_trk_invmass
virtual ~IDPerfMonZee()
double m_eoverp_standard_min
virtual StatusCode procHistograms()
An inheriting class should either override this function or finalHists().
TH1F * m_Zee_invmass
std::vector< TH1F * > m_Zee_trackmatched_phi
std::vector< TProfile * > m_Zee_Eopdiff_vs_invp
int etaRegion(double eta)
std::vector< TProfile * > m_Zee_meanEop_vs_chargedE
std::vector< TH1F * > m_Zee_deta
void RegisterHisto(MonGroup &mon, TH1 *histo, bool doSumw2=false)
A container of information describing a monitoring object.
ManagedMonitorToolBase(const std::string &type, const std::string &name, const IInterface *parent)
TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
MissingET_v1 MissingET
Version control by type defintion.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.