ATLAS Offline Software
Loading...
Searching...
No Matches
EgammaMonitoring.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef egammaValidation_EgammaMonitoring_H
6#define egammaValidation_EgammaMonitoring_H
7
10
15
16#include "AsgTools/ToolHandle.h"
18#include "GaudiKernel/ITHistSvc.h"
19#include "GaudiKernel/SmartIF.h"
21
26
27#include "EfficiencyPlot.h"
28#include "IHistograms.h"
29#include "DiObjectHistograms.h"
34#include "TrackHistograms.h"
35#include "ClusterHistograms.h"
38#include "WidthPlot.h"
39#include "IsolationHistograms.h"
40
41#include <memory>
42#include <string>
43#include <vector>
44
45class TH1D;
46
47class ITHistSvc;
48
50{
51public:
53 SmartIF<ITHistSvc> rootHistSvc;
54
55 // samples from simulation
56 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterAll;
57 std::unique_ptr<egammaMonitoring::ClusterHistograms> cluster10GeV;
58
59 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterPromptAll;
60 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterPrompt10GeV;
61
62 // Whatever samples
63 std::unique_ptr<egammaMonitoring::ShowerShapesHistograms> showerShapesAll;
64 std::unique_ptr<egammaMonitoring::ShowerShapesHistograms> showerShapes10GeV;
65 std::unique_ptr<egammaMonitoring::IsolationHistograms> isolationAll;
66
67 // di-electron data
68 std::unique_ptr<egammaMonitoring::RecoClusterHistograms> m_clusterReco;
69 std::unique_ptr<egammaMonitoring::DiObjectHistograms> m_diElectron;
70
71 // electrons
72 std::unique_ptr<egammaMonitoring::RecoElectronHistograms> recoElectronAll;
73 std::unique_ptr<egammaMonitoring::TruthElectronHistograms> truthElectronAll;
74 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
76 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
78 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
80 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
82 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
84 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
86 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
88 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
90 std::unique_ptr<egammaMonitoring::TruthElectronHistograms>
92
93 // photons
94 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterConvPhoton;
95 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterConvPhotonSi;
96 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterConvPhotonSiSi;
97 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterConvPhotonTRT;
98 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterConvPhotonTRTTRT;
99 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterConvPhotonSiTRT;
100 std::unique_ptr<egammaMonitoring::ClusterHistograms> clusterUnconvPhoton;
101
102 std::unique_ptr<egammaMonitoring::RecoPhotonHistograms> recoPhotonAll;
103 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonAll;
104 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonAllUnconv;
105 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonAllConv;
106 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonAllLateConv;
107 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonRecoPhoton;
108 std::unique_ptr<egammaMonitoring::IHistograms>
110 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvPhoton;
111 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoConv;
112 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoConv1Si;
113 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoConv1TRT;
114 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoConv2Si;
115 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoConv2TRT;
116 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoConv2SiTRT;
117 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonConvRecoUnconv;
118 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvPhoton;
119 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvRecoConv;
120 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvRecoConv1Si;
121 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvRecoConv1TRT;
122 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvRecoConv2Si;
123 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvRecoConv2TRT;
124 std::unique_ptr<egammaMonitoring::IHistograms>
126 std::unique_ptr<egammaMonitoring::IHistograms> truthPhotonUnconvRecoUnconv;
127 std::unique_ptr<egammaMonitoring::IHistograms> recoPhotonUnconvLoose;
128 std::unique_ptr<egammaMonitoring::IHistograms> recoPhotonUnconvTight;
129 std::unique_ptr<egammaMonitoring::IHistograms> recoPhotonConvLoose;
130 std::unique_ptr<egammaMonitoring::IHistograms> recoPhotonConvTight;
131 std::unique_ptr<egammaMonitoring::IHistograms>
133 std::unique_ptr<egammaMonitoring::IHistograms>
135 std::unique_ptr<egammaMonitoring::IHistograms>
137 std::unique_ptr<egammaMonitoring::IHistograms> recoPhotonConvIsoFixedCutTight;
138 std::unique_ptr<egammaMonitoring::IHistograms>
140 std::unique_ptr<egammaMonitoring::IHistograms> recoPhotonConvIsoFixedCutLoose;
141
142 std::map<std::string,std::unique_ptr<egammaMonitoring::TrackHistograms>> mapTrkHistograms;
143
144 // Histos
145 // General Info
146
147 EgammaMonitoring(const std::string& name, ISvcLocator* pSvcLocator);
149
150 virtual StatusCode initialize();
151 virtual StatusCode execute();
152 virtual StatusCode finalize();
153
154private:
156 Gaudi::Property<std::string> m_sampleType
157 { this, "sampleType", "Unknown", "electron or gamma" };
158
160 Gaudi::Property<bool> m_hasTRT
161 { this, "hasTRT", true, "is there a TRT in the ID" };
162
164 // electron ID
165 ToolHandle<IAsgElectronLikelihoodTool> m_Loose_Ele
166 { this, "Loose_Ele", "", "" };
167 ToolHandle<IAsgElectronLikelihoodTool> m_Medium_Ele
168 { this, "Medium_Ele", "", "" };
169 ToolHandle<IAsgElectronLikelihoodTool> m_Tight_Ele
170 { this, "Tight_Ele", "", "" };
171 ToolHandle<IAsgElectronLikelihoodTool> m_Loose_FwdEle
172 { this, "Loose_FwdEle", "", "" };
173 ToolHandle<IAsgElectronLikelihoodTool> m_Medium_FwdEle
174 { this, "Medium_FwdEle", "", "" };
175 ToolHandle<IAsgElectronLikelihoodTool> m_Tight_FwdEle
176 { this, "Tight_FwdEle", "", "" };
177
178 // photon ID
179 ToolHandle<IAsgPhotonIsEMSelector> m_Loose_Photon
180 { this, "Loose_Photon", "", "" };
181 ToolHandle<IAsgPhotonIsEMSelector> m_Tight_Photon
182 { this, "Tight_Photon", "", "" };
183
184 // photon isolation
185 ToolHandle<CP::IIsolationSelectionTool> m_IsoFixedCutTight
186 { this, "IsoFixedCutTight", "", "" };
187 ToolHandle<CP::IIsolationSelectionTool> m_IsoFixedCutTightCaloOnly
188 { this, "IsoTightCaloOnly", "", "" };
189 ToolHandle<CP::IIsolationSelectionTool> m_IsoFixedCutLoose
190 { this, "IsoFixedCutLoose", "", "" };
191
192 // Truth classifier
193 ToolHandle<IMCTruthClassifier> m_mcTruthClassifier
194 { this, "MCTruthClassifier", "", "" };
195
196 // Collections to read
198 { this, "EventInfoKey", "EventInfo", "" };
199
201 { this, "egammaTruthParticlesKey", "", "" };
202
205
207 { this, "ElectronsKey", "", "" };
208
210 { this, "FwdElectronsKey", "", "" };
211
213 { this, "PhotonsKey", "", "" };
214
216 { this, "InDetTrackParticlesKey", "InDetTrackParticles", "" };
217
219 { this, "GSFTrackParticlesKey", "", "" };
220
221 static bool matchedToElectron(const xAOD::TrackParticle& tp);
222 static bool matchedToPion(const xAOD::TrackParticle& tp);
223 static bool notMatchedToTruth(const xAOD::TrackParticle& tp);
224
225 StatusCode ZeeSelection(float mu, const EventContext& ctx);
226 StatusCode ZeePostProc();
227
228 int m_CenFwdOverlap[2] = { 0, 0 };
229
230 TH1D *m_dR1{};
231 TH1D *m_dR2{};
232};
233
234#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
SG::ReadHandleKey< xAOD::ElectronContainer > m_ElectronsKey
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv1Si
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv2SiTRT
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv
EgammaMonitoring(const std::string &name, ISvcLocator *pSvcLocator)
std::map< std::string, std::unique_ptr< egammaMonitoring::TrackHistograms > > mapTrkHistograms
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonRecoPhotonOrElectron
Gaudi::Property< bool > m_hasTRT
is it run 3 or run 4 and later ?
std::unique_ptr< egammaMonitoring::RecoElectronHistograms > recoElectronAll
ToolHandle< CP::IIsolationSelectionTool > m_IsoFixedCutTightCaloOnly
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvIsoFixedCutTightCaloOnly
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAllConv
virtual StatusCode finalize()
std::unique_ptr< egammaMonitoring::IsolationHistograms > isolationAll
ToolHandle< IAsgPhotonIsEMSelector > m_Tight_Photon
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvPhoton
ToolHandle< IAsgElectronLikelihoodTool > m_Tight_Ele
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonTRTTRT
std::unique_ptr< egammaMonitoring::ShowerShapesHistograms > showerShapesAll
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_egTruthParticlesKey
static bool notMatchedToTruth(const xAOD::TrackParticle &tp)
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvLoose
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvTight
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticlesKey
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonSiTRT
ToolHandle< IAsgPhotonIsEMSelector > m_Loose_Photon
StatusCode ZeeSelection(float mu, const EventContext &ctx)
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvLoose
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv2SiTRT
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoUnconv
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_GSFTrackParticlesKey
virtual StatusCode execute()
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvIsoFixedCutTight
virtual StatusCode initialize()
SG::ReadHandleKey< xAOD::ElectronContainer > m_FwdElectronsKey
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonSiSi
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthRecoElectronLoose
static bool matchedToPion(const xAOD::TrackParticle &tp)
std::unique_ptr< egammaMonitoring::DiObjectHistograms > m_diElectron
ToolHandle< IAsgElectronLikelihoodTool > m_Medium_Ele
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithGSFTrack
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvIsoFixedCutTightCaloOnly
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvTight
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterPrompt10GeV
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv1TRT
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvPhoton
ToolHandle< IAsgElectronLikelihoodTool > m_Medium_FwdEle
static bool matchedToElectron(const xAOD::TrackParticle &tp)
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonUnconvIsoFixedCutLoose
std::unique_ptr< egammaMonitoring::RecoPhotonHistograms > recoPhotonAll
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithRecoTrack
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonTRT
std::unique_ptr< egammaMonitoring::ShowerShapesHistograms > showerShapes10GeV
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithTrack
SmartIF< ITHistSvc > rootHistSvc
Tools and services ///.
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterPromptAll
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterAll
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhoton
ToolHandle< IAsgElectronLikelihoodTool > m_Loose_Ele
Selector tools.
ToolHandle< IAsgElectronLikelihoodTool > m_Tight_FwdEle
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv2Si
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvIsoFixedCutLoose
ToolHandle< CP::IIsolationSelectionTool > m_IsoFixedCutTight
ToolHandle< CP::IIsolationSelectionTool > m_IsoFixedCutLoose
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthElectronAll
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAll
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthElectronRecoElectronAll
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
ToolHandle< IMCTruthClassifier > m_mcTruthClassifier
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthRecoElectronMedium
SG::ReadHandleKey< xAOD::PhotonContainer > m_PhotonsKey
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonRecoPhoton
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAllLateConv
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv1Si
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterUnconvPhoton
std::unique_ptr< egammaMonitoring::RecoClusterHistograms > m_clusterReco
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronAll
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv2Si
Gaudi::Property< std::string > m_sampleType
Sample name ///.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_InDetTrackParticlesKey
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonAllUnconv
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv2TRT
std::unique_ptr< egammaMonitoring::IHistograms > recoPhotonConvIsoFixedCutTight
ToolHandle< IAsgElectronLikelihoodTool > m_Loose_FwdEle
std::unique_ptr< egammaMonitoring::ClusterHistograms > cluster10GeV
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthPromptElectronWithReco
std::unique_ptr< egammaMonitoring::TruthElectronHistograms > truthRecoElectronTight
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoUnconv
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonUnconvRecoConv1TRT
std::unique_ptr< egammaMonitoring::ClusterHistograms > clusterConvPhotonSi
std::unique_ptr< egammaMonitoring::IHistograms > truthPhotonConvRecoConv2TRT
Property holding a SG store/key/clid from which a ReadHandle is made.
TrackParticle_v1 TrackParticle
Reference the current persistent version: