ATLAS Offline Software
Loading...
Searching...
No Matches
InDetRttPlots.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 INDETPHYSVALMONITORING_INDETRTTPLOTS
6#define INDETPHYSVALMONITORING_INDETRTTPLOTS
12
13
14// std includes
15#include <string>
16#include <memory>
17
18// local includes
19#include "InDetPlotBase.h"
20#include "InDetBasicPlot.h"
21
31#include "InDetPerfPlot_Hits.h"
38
40#include "xAODTracking/Vertex.h"
43
46
48
49
52 bool isITk{false};
53
55 bool doTrackParameters{true};
56 bool doNTracks{true};
57 bool doHitResidualPlot{false};
58 bool doHitEffPlot{false};
61
63 bool doFakePlots{true};
67
70 bool doEffPlots{true};
71 bool doDuplicatePlots{false};
72 bool doTechEffPlots{false};
73
80
82 bool doVertexPlots{true};
85
89
91 bool doTrkInJetPlots{false};
100
103 bool doFakesPerAuthor{false};
107
110
112 int detailLevel{10};
113};
114
117public:
118 InDetRttPlots(InDetPlotBase* pParent, const std::string& dirName, const InDetRttPlotConfig & config);
119
121 void fill(const xAOD::TrackParticle& particle, const xAOD::TruthParticle& truthParticle, bool truthIsFromB=false, float mu = 0.0, float weight=1.0);
122
124 void fill(const xAOD::TrackParticle& particle, float weight=1.0);
125 void fill(const xAOD::TrackParticle& particle, const float mu, const unsigned int nVtx, float weight=1.0); //mu dependent plots
126 void fill(const unsigned int ntracksFull, const unsigned int ntracksCentral,
127 const unsigned int ntracksPt1GeV, const unsigned int truthMu,
128 const float actualMu, const unsigned int nvertices, const float weight=1.0);
129
131 void fill(const xAOD::TruthParticle& particle, float weight);
132
134 void fillEfficiency(const xAOD::TruthParticle& truth, const xAOD::TrackParticle* track, const bool isGood, const unsigned int truthMu, const float actualMu, float weight);
135 void fillTechnicalEfficiency(const xAOD::TruthParticle& truth, const bool isGood, const unsigned int truthMu, const float actualMu, float weight);
136
138 void fillDuplicate(const xAOD::TruthParticle& truth,
139 const std::vector<const xAOD::TrackParticle*>& tracks,
140 float weight);
141
143 void fill(const xAOD::VertexContainer& vertexContainer, const xAOD::Vertex* recoHardScatter, const std::vector<const xAOD::TruthVertex*>& truthHSVertices, const std::vector<const xAOD::TruthVertex*>& truthPUVertices, const float actualMu, float weight=1.0);
145 void fill(const xAOD::VertexContainer& vertexContainer, const unsigned int truthMu, const float actualMu, const float weight=1.0);
146
147 void fill(const xAOD::TrackParticle& track, const xAOD::Jet& jet, bool isBjet=false, bool isFake=false, bool isUnlinked=false, bool truthIsFromB=false, const float weight=1.0);
148 void fillEfficiency(const xAOD::TruthParticle& truth, const xAOD::Jet& jet, const bool isGood, bool isBjet=false, bool truthIsFromB=false, float weight=1.0);
149 void fillFakeRate(const xAOD::TrackParticle& track, const xAOD::Jet& jet, const bool isFake, bool isBjet=false, bool truthIsFromB=false, float weight=1.0);
150
152 void fillCounter(const unsigned int freq, const InDetPerfPlot_nTracks::CounterCategory counter, float weight);
154 void fillFakeRate(const xAOD::TrackParticle& particle, const bool isFake, const bool isAssociatedTruth, const float mu, float weight);
155
156 // fill IDPVM Ntuple
157 void fillNtuple(const xAOD::TrackParticle& track, const xAOD::Vertex* vtx);
158 void fillNtuple(const xAOD::TruthParticle& truth);
159 void fillNtuple(const xAOD::TrackParticle& track, const xAOD::TruthParticle& truth, const xAOD::Vertex* vtx, const int truthMatchRanking);
160
161 virtual ~InDetRttPlots() {
162 };
163
164private:
165
168
172 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trackParameters;
173 std::unique_ptr<InDetPerfPlot_nTracks> m_nTracks;
174 std::unique_ptr<InDetPerfPlot_HitResidual> m_hitResidualPlot;
175 std::unique_ptr<InDetPerfPlot_HitEfficiency> m_hitEffPlot;
176 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakePlots;
177 std::unique_ptr<InDetPerfPlot_FakeRate> m_missingTruthFakePlots;
178 std::unique_ptr<InDetPerfPlot_Resolution> m_resolutionPlotPrim;
179 std::unique_ptr<InDetPerfPlot_Resolution> m_resolutionPlotPrim_truthFromB;
180 std::unique_ptr<InDetPerfPlot_Hits> m_hitsRecoTracksPlots;
181 std::unique_ptr<InDetPerfPlot_Efficiency> m_effPlots;
182 std::unique_ptr<InDetPerfPlot_Duplicate> m_duplicatePlots;
183 std::unique_ptr<InDetPerfPlot_VerticesVsMu> m_verticesVsMuPlots;
184 std::unique_ptr<InDetPerfPlot_Vertex> m_vertexPlots;
185 std::unique_ptr<InDetPerfPlot_Vertex> m_hardScatterVertexPlots;
186 std::unique_ptr<InDetPerfPlot_VertexTruthMatching> m_hardScatterVertexTruthMatchingPlots;
187 std::unique_ptr<InDetPerfPlot_TRTExtension> m_trtExtensionPlots;
188 std::unique_ptr<InDetPerfNtuple_TruthToReco> m_ntupleTruthToReco;
189 std::unique_ptr<InDetPerfPlot_Resolution> m_resolutionPlotSecd;
190 std::unique_ptr<InDetPerfPlot_Hits> m_hitsMatchedTracksPlots;
191 std::unique_ptr<InDetPerfPlot_Hits> m_hitsFakeTracksPlots;
192 std::unique_ptr<InDetPerfPlot_Hits> m_hitsUnlinkedTracksPlots;
193 std::unique_ptr<InDetPerfPlot_VertexTruthMatching> m_vertexTruthMatchingPlots;
194 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots;
195 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_bjets;
196 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_matched;
197 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_matched_bjets;
198 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_fake;
199 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_fake_bjets;
200 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_unlinked;
201 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_unlinked_bjets;
202
203 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_truthFromB;
204
205 std::unique_ptr<InDetPerfPlot_Efficiency> m_effSiSPSeededFinderPlots;
206 std::unique_ptr<InDetPerfPlot_Efficiency> m_effInDetExtensionProcessorPlots;
207 std::unique_ptr<InDetPerfPlot_Efficiency> m_effTRTSeededTrackFinderPlots;
208 std::unique_ptr<InDetPerfPlot_Efficiency> m_effTRTStandalonePlots;
209 std::unique_ptr<InDetPerfPlot_Efficiency> m_effSiSpacePointsSeedMaker_LargeD0Plots;
210
211 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeSiSPSeededFinderPlots;
212 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeInDetExtensionProcessorPlots;
213 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeTRTSeededTrackFinderPlots;
214 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeTRTStandalonePlots;
215 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeSiSpacePointsSeedMaker_LargeD0Plots;
216
217 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaSiSPSeededFinderPlots;
218 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaInDetExtensionProcessorPlots;
219 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaTRTSeededTrackFinderPlots;
220 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaTRTStandalonePlots;
221 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaSiSpacePointsSeedMaker_LargeD0Plots;
222
223 std::unique_ptr<InDetPerfPlot_Resolution> m_resSiSPSeededFinderPlots;
224 std::unique_ptr<InDetPerfPlot_Resolution> m_resInDetExtensionProcessorPlots;
225 std::unique_ptr<InDetPerfPlot_Resolution> m_resTRTSeededTrackFinderPlots;
226 std::unique_ptr<InDetPerfPlot_Resolution> m_resTRTStandalonePlots;
227 std::unique_ptr<InDetPerfPlot_Resolution> m_resSiSpacePointsSeedMaker_LargeD0Plots;
228
229 std::unique_ptr<InDetPerfPlot_Hits> m_hitsSiSPSeededFinderPlots;
230 std::unique_ptr<InDetPerfPlot_Hits> m_hitsInDetExtensionProcessorPlots;
231 std::unique_ptr<InDetPerfPlot_Hits> m_hitsTRTSeededTrackFinderPlots;
232 std::unique_ptr<InDetPerfPlot_Hits> m_hitsTRTStandalonePlots;
233 std::unique_ptr<InDetPerfPlot_Hits> m_hitsSiSpacePointsSeedMaker_LargeD0Plots;
234};
235
236
237
238
239#endif
InDetPlotBase(InDetPlotBase *pParent, const std::string &dirName)
Constructor taking parent node and directory name for plots.
virtual ~InDetRttPlots()
std::unique_ptr< InDetPerfPlot_Hits > m_hitsFakeTracksPlots
InDetRttPlots(InDetPlotBase *pParent, const std::string &dirName, const InDetRttPlotConfig &config)
std::unique_ptr< InDetPerfPlot_FakeRate > m_missingTruthFakePlots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsTRTStandalonePlots
std::unique_ptr< InDetPerfPlot_Efficiency > m_effSiSPSeededFinderPlots
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_matched_bjets
std::unique_ptr< InDetPerfPlot_Efficiency > m_effTRTStandalonePlots
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakeSiSPSeededFinderPlots
std::unique_ptr< InDetPerfPlot_TrackParameters > m_trackParameters
plot members.
std::unique_ptr< InDetPerfPlot_Resolution > m_resolutionPlotSecd
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_unlinked
std::unique_ptr< InDetPerfPlot_Resolution > m_resolutionPlotPrim_truthFromB
std::unique_ptr< InDetPerfPlot_Resolution > m_resTRTSeededTrackFinderPlots
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_unlinked_bjets
void fillEfficiency(const xAOD::TruthParticle &truth, const xAOD::TrackParticle *track, const bool isGood, const unsigned int truthMu, const float actualMu, float weight)
Fill for efficiency plots.
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakeTRTSeededTrackFinderPlots
void fillDuplicate(const xAOD::TruthParticle &truth, const std::vector< const xAOD::TrackParticle * > &tracks, float weight)
fill for duplicate plots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsSiSPSeededFinderPlots
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_fake
std::unique_ptr< InDetPerfPlot_Efficiency > m_effInDetExtensionProcessorPlots
std::unique_ptr< InDetPerfPlot_TrackParameters > m_trkParaSiSpacePointsSeedMaker_LargeD0Plots
std::unique_ptr< InDetPerfPlot_Resolution > m_resolutionPlotPrim
void fillNtuple(const xAOD::TrackParticle &track, const xAOD::Vertex *vtx)
std::unique_ptr< InDetPerfPlot_Efficiency > m_effPlots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsRecoTracksPlots
std::unique_ptr< InDetPerfPlot_nTracks > m_nTracks
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots
std::unique_ptr< InDetPerfPlot_Resolution > m_resInDetExtensionProcessorPlots
void fill(const xAOD::TrackParticle &particle, const xAOD::TruthParticle &truthParticle, bool truthIsFromB=false, float mu=0.0, float weight=1.0)
fill for things needing truth and track only
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakeSiSpacePointsSeedMaker_LargeD0Plots
std::unique_ptr< InDetPerfPlot_Resolution > m_resTRTStandalonePlots
std::unique_ptr< InDetPerfPlot_TrackParameters > m_trkParaTRTSeededTrackFinderPlots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsUnlinkedTracksPlots
std::unique_ptr< InDetPerfPlot_VerticesVsMu > m_verticesVsMuPlots
std::unique_ptr< InDetPerfPlot_VertexTruthMatching > m_hardScatterVertexTruthMatchingPlots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsMatchedTracksPlots
std::unique_ptr< InDetPerfPlot_Efficiency > m_effTRTSeededTrackFinderPlots
std::unique_ptr< InDetPerfPlot_Resolution > m_resSiSPSeededFinderPlots
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakePlots
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakeInDetExtensionProcessorPlots
std::unique_ptr< InDetPerfPlot_Efficiency > m_effSiSpacePointsSeedMaker_LargeD0Plots
std::unique_ptr< InDetPerfPlot_TrackParameters > m_trkParaSiSPSeededFinderPlots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsTRTSeededTrackFinderPlots
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_bjets
std::unique_ptr< InDetPerfPlot_VertexTruthMatching > m_vertexTruthMatchingPlots
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_fake_bjets
std::unique_ptr< InDetPerfPlot_Duplicate > m_duplicatePlots
void fillCounter(const unsigned int freq, const InDetPerfPlot_nTracks::CounterCategory counter, float weight)
fill for Counters
std::unique_ptr< InDetPerfPlot_TRTExtension > m_trtExtensionPlots
std::unique_ptr< InDetPerfPlot_TrackParameters > m_trkParaTRTStandalonePlots
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakeTRTStandalonePlots
void fillFakeRate(const xAOD::TrackParticle &track, const xAOD::Jet &jet, const bool isFake, bool isBjet=false, bool truthIsFromB=false, float weight=1.0)
void fillTechnicalEfficiency(const xAOD::TruthParticle &truth, const bool isGood, const unsigned int truthMu, const float actualMu, float weight)
std::unique_ptr< InDetPerfPlot_Hits > m_hitsInDetExtensionProcessorPlots
std::unique_ptr< InDetPerfPlot_Hits > m_hitsSiSpacePointsSeedMaker_LargeD0Plots
std::unique_ptr< InDetPerfPlot_Vertex > m_hardScatterVertexPlots
std::unique_ptr< InDetPerfNtuple_TruthToReco > m_ntupleTruthToReco
std::unique_ptr< InDetPerfPlot_HitEfficiency > m_hitEffPlot
std::unique_ptr< InDetPerfPlot_Vertex > m_vertexPlots
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_matched
InDetRttPlotConfig m_config
configuration object
std::unique_ptr< InDetPerfPlot_TrkInJet > m_trkInJetPlots_truthFromB
std::unique_ptr< InDetPerfPlot_Resolution > m_resSiSpacePointsSeedMaker_LargeD0Plots
std::unique_ptr< InDetPerfPlot_HitResidual > m_hitResidualPlot
std::unique_ptr< InDetPerfPlot_TrackParameters > m_trkParaInDetExtensionProcessorPlots
Jet_v1 Jet
Definition of the current "jet version".
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
TruthParticle_v1 TruthParticle
Typedef to implementation.
helper struct - steer the configuration from the parent tool's side
bool doTrkInJetPlots_matched_bjets
bool doTrkInJetPlots_unlinked_bjets
int detailLevel
detail level (kept for compatibility)
bool doNtupleTruthToReco
Ntuple functionality.
bool doEfficienciesPerAuthor
per author plots
bool doHitsRecoTracksPlotsPerAuthor
bool doEffPlots
Efficiency and duplicate plots - require truth, optionally matching reco.
bool doFakePlots
Fake plots (and unlinked)
bool doResolutionPlotPrim
Resolution and "matched track" plots - filled if both reco and truth exist.
bool doVertexTruthMatchingPlots
Vertexing plots - truth requirement.
bool doVertexPlots
Vertexing plots - no truth requirement.
bool doHardScatterVertexTruthMatchingPlots
bool doTrackParameters
Plots for (selected) tracks, not necessarily truth matched.
bool doTrkInJetPlots
Plots for tracks in jets.
bool doResolutionPlotPrim_truthFromB