ATLAS Offline Software
Loading...
Searching...
No Matches
InDetRttPlots.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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 bool hasHGTDReco{false};
54
56 bool doTrackParameters{true};
57 bool doNTracks{true};
58 bool doHitResidualPlot{false};
59 bool doHitEffPlot{false};
62
64 bool doFakePlots{true};
68
71 bool doEffPlots{true};
72 bool doDuplicatePlots{false};
73 bool doTechEffPlots{false};
74
81
83 bool doVertexPlots{true};
86
90
92 bool doTrkInJetPlots{false};
101
104 bool doFakesPerAuthor{false};
108
111
113 int detailLevel{10};
114};
115
118public:
119 InDetRttPlots(InDetPlotBase* pParent, const std::string& dirName, const InDetRttPlotConfig & config);
120
122 void fill(const xAOD::TrackParticle& particle, const xAOD::TruthParticle& truthParticle, bool truthIsFromB=false, float mu = 0.0, float weight=1.0);
123
125 void fill(const xAOD::TrackParticle& particle, float weight=1.0);
126 void fill(const xAOD::TrackParticle& particle, const float mu, const unsigned int nVtx, float weight=1.0); //mu dependent plots
127 void fill(const unsigned int ntracksFull, const unsigned int ntracksCentral,
128 const unsigned int ntracksPt1GeV, const unsigned int truthMu,
129 const float actualMu, const unsigned int nvertices, const float weight=1.0);
130
132 void fill(const xAOD::TruthParticle& particle, float weight);
133
135 void fillEfficiency(const xAOD::TruthParticle& truth, const xAOD::TrackParticle* track, const bool isGood, const unsigned int truthMu, const float actualMu, float weight);
136 void fillTechnicalEfficiency(const xAOD::TruthParticle& truth, const bool isGood, const unsigned int truthMu, const float actualMu, float weight);
137
139 void fillDuplicate(const xAOD::TruthParticle& truth,
140 const std::vector<const xAOD::TrackParticle*>& tracks,
141 float weight);
142
144 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);
146 void fill(const xAOD::VertexContainer& vertexContainer, const unsigned int truthMu, const float actualMu, const float weight=1.0);
147
148 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);
149 void fillEfficiency(const xAOD::TruthParticle& truth, const xAOD::Jet& jet, const bool isGood, bool isBjet=false, bool truthIsFromB=false, float weight=1.0);
150 void fillFakeRate(const xAOD::TrackParticle& track, const xAOD::Jet& jet, const bool isFake, bool isBjet=false, bool truthIsFromB=false, float weight=1.0);
151
153 void fillCounter(const unsigned int freq, const InDetPerfPlot_nTracks::CounterCategory counter, float weight);
155 void fillFakeRate(const xAOD::TrackParticle& particle, const bool isFake, const bool isAssociatedTruth, const float mu, float weight);
156
157 // fill IDPVM Ntuple
158 void fillNtuple(const xAOD::TrackParticle& track, const xAOD::Vertex* vtx);
159 void fillNtuple(const xAOD::TruthParticle& truth);
160 void fillNtuple(const xAOD::TrackParticle& track, const xAOD::TruthParticle& truth, const xAOD::Vertex* vtx, const int truthMatchRanking);
161
162 virtual ~InDetRttPlots() {
163 };
164
165private:
166
169
173 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trackParameters;
174 std::unique_ptr<InDetPerfPlot_Resolution> m_unmatchedBiasPlots;
175 std::unique_ptr<InDetPerfPlot_nTracks> m_nTracks;
176 std::unique_ptr<InDetPerfPlot_HitResidual> m_hitResidualPlot;
177 std::unique_ptr<InDetPerfPlot_HitEfficiency> m_hitEffPlot;
178 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakePlots;
179 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakePlotsTotal;
180 std::unique_ptr<InDetPerfPlot_FakeRate> m_missingTruthFakePlots;
181 std::unique_ptr<InDetPerfPlot_Resolution> m_resolutionPlotPrim;
182 std::unique_ptr<InDetPerfPlot_Resolution> m_resolutionPlotPrim_truthFromB;
183 std::unique_ptr<InDetPerfPlot_Hits> m_hitsRecoTracksPlots;
184 std::unique_ptr<InDetPerfPlot_Efficiency> m_effPlots;
185 std::unique_ptr<InDetPerfPlot_Duplicate> m_duplicatePlots;
186 std::unique_ptr<InDetPerfPlot_VerticesVsMu> m_verticesVsMuPlots;
187 std::unique_ptr<InDetPerfPlot_Vertex> m_vertexPlots;
188 std::unique_ptr<InDetPerfPlot_Vertex> m_hardScatterVertexPlots;
189 std::unique_ptr<InDetPerfPlot_VertexTruthMatching> m_hardScatterVertexTruthMatchingPlots;
190 std::unique_ptr<InDetPerfPlot_TRTExtension> m_trtExtensionPlots;
191 std::unique_ptr<InDetPerfNtuple_TruthToReco> m_ntupleTruthToReco;
192 std::unique_ptr<InDetPerfPlot_Resolution> m_resolutionPlotSecd;
193 std::unique_ptr<InDetPerfPlot_Hits> m_hitsMatchedTracksPlots;
194 std::unique_ptr<InDetPerfPlot_Hits> m_hitsFakeTracksPlots;
195 std::unique_ptr<InDetPerfPlot_Hits> m_hitsUnlinkedTracksPlots;
196 std::unique_ptr<InDetPerfPlot_VertexTruthMatching> m_vertexTruthMatchingPlots;
197 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots;
198 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_bjets;
199 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_matched;
200 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_matched_bjets;
201 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_fake;
202 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_fake_bjets;
203 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_unlinked;
204 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_unlinked_bjets;
205
206 std::unique_ptr<InDetPerfPlot_TrkInJet> m_trkInJetPlots_truthFromB;
207
208 std::unique_ptr<InDetPerfPlot_Efficiency> m_effSiSPSeededFinderPlots;
209 std::unique_ptr<InDetPerfPlot_Efficiency> m_effInDetExtensionProcessorPlots;
210 std::unique_ptr<InDetPerfPlot_Efficiency> m_effTRTSeededTrackFinderPlots;
211 std::unique_ptr<InDetPerfPlot_Efficiency> m_effTRTStandalonePlots;
212 std::unique_ptr<InDetPerfPlot_Efficiency> m_effSiSpacePointsSeedMaker_LargeD0Plots;
213
214 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeSiSPSeededFinderPlots;
215 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeInDetExtensionProcessorPlots;
216 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeTRTSeededTrackFinderPlots;
217 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeTRTStandalonePlots;
218 std::unique_ptr<InDetPerfPlot_FakeRate> m_fakeSiSpacePointsSeedMaker_LargeD0Plots;
219
220 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaSiSPSeededFinderPlots;
221 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaInDetExtensionProcessorPlots;
222 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaTRTSeededTrackFinderPlots;
223 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaTRTStandalonePlots;
224 std::unique_ptr<InDetPerfPlot_TrackParameters> m_trkParaSiSpacePointsSeedMaker_LargeD0Plots;
225
226 std::unique_ptr<InDetPerfPlot_Resolution> m_resSiSPSeededFinderPlots;
227 std::unique_ptr<InDetPerfPlot_Resolution> m_resInDetExtensionProcessorPlots;
228 std::unique_ptr<InDetPerfPlot_Resolution> m_resTRTSeededTrackFinderPlots;
229 std::unique_ptr<InDetPerfPlot_Resolution> m_resTRTStandalonePlots;
230 std::unique_ptr<InDetPerfPlot_Resolution> m_resSiSpacePointsSeedMaker_LargeD0Plots;
231
232 std::unique_ptr<InDetPerfPlot_Hits> m_hitsSiSPSeededFinderPlots;
233 std::unique_ptr<InDetPerfPlot_Hits> m_hitsInDetExtensionProcessorPlots;
234 std::unique_ptr<InDetPerfPlot_Hits> m_hitsTRTSeededTrackFinderPlots;
235 std::unique_ptr<InDetPerfPlot_Hits> m_hitsTRTStandalonePlots;
236 std::unique_ptr<InDetPerfPlot_Hits> m_hitsSiSpacePointsSeedMaker_LargeD0Plots;
237};
238
239
240
241
242#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_Resolution > m_unmatchedBiasPlots
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
std::unique_ptr< InDetPerfPlot_FakeRate > m_fakePlotsTotal
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