ATLAS Offline Software
Loading...
Searching...
No Matches
TrackAnalysisPlotsMgr.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 INDETTRACKPERFMON_TRACKANALYSISPLOTSMGR_H
6#define INDETTRACKPERFMON_TRACKANALYSISPLOTSMGR_H
7
15
19
22#include "PlotMgr.h"
27#include "plots/FakeRatePlots.h"
30#include "plots/NtracksPlots.h"
31#include "plots/SummaryPlots.h"
33
35#include <string>
36#include <memory>
37#include <vector>
38
39
40namespace IDTPM {
41
45
47
48 public :
49
51 TrackAnalysisPlotsMgr( const std::string& dirName,
52 const std::string& anaTag,
53 const std::string& chain,
54 PlotMgr* pParent = nullptr );
55
57 virtual ~TrackAnalysisPlotsMgr() = default;
58
60 StatusCode initialize();
61
63 const std::string& anaTag() const { return m_anaTag; }
64 const std::string& chain() const { return m_chain; }
65 const std::string& directory() const { return m_directory; }
66
68 StatusCode fill( TrackAnalysisCollections& trkAnaColls, float weight=1.0 );
69
73 template< typename PARTICLE, typename VERTEX >
74 StatusCode fillPlotsTest(
75 const std::vector< const PARTICLE* >& particles,
76 const ITrackMatchingLookup& matches,
77 const std::vector< const VERTEX* >& vertices,
78 float truthMu=0., float actualMu=0., float weight=1.0 );
79
83 template< typename PARTICLE, typename VERTEX >
84 StatusCode fillPlotsReference(
85 const std::vector< const PARTICLE* >& particles,
86 const ITrackMatchingLookup& matches,
87 const std::vector< const VERTEX* >& vertices,
88 float truthMu=0., float actualMu=0., float weight=1.0 );
89
91 StatusCode fillPlotsTruth(
92 const std::vector< const xAOD::TrackParticle* >& testTracks,
93 const std::vector< const xAOD::TrackParticle* >& refTracks,
94 const std::vector< const xAOD::TruthParticle* >& truths,
95 const ITrackMatchingLookup& matches,
96 float truthMu=0., float actualMu=0., float weight=1.0 );
97
98 private :
99
100 std::string m_anaTag;
101 std::string m_chain;
102 std::string m_directory;
103
105 SmartIF< ITrackAnalysisDefinitionSvc > m_trkAnaDefSvc;
106
109 std::unique_ptr< SummaryPlots > m_plots_summary;
111 std::unique_ptr< TrackParametersPlots > m_plots_trkParam_vsTest;
112 std::unique_ptr< EfficiencyPlots > m_plots_eff_vsTest;
113 std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsTest;
114 std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnTrk_vsTest;
115 std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnMatchedTrk;
116 std::unique_ptr< NtracksPlots > m_plots_nTracks_vsTest;
118 std::unique_ptr< TrackParametersPlots > m_plots_trkParam_vsRef;
119 std::unique_ptr< EfficiencyPlots > m_plots_eff_vsRef;
120 std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsRef;
121 std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnTrk_vsRef;
122 std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnMatchedTrk_vsRef;
123 std::unique_ptr< NtracksPlots > m_plots_nTracks_vsRef;
125 std::unique_ptr< EfficiencyPlots > m_plots_eff_vsTruth;
126 std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsTruth;
128 std::unique_ptr< ResolutionPlots > m_plots_resolution;
130 std::unique_ptr< FakeRatePlots > m_plots_fakeRate;
131 std::unique_ptr< FakeRatePlots > m_plots_missingTruth;
132 std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnFakeTrk;
133 std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnUnlinkedTrk;
135 std::unique_ptr< DuplicateRatePlots > m_plots_duplRate;
137 std::unique_ptr< OfflineElectronPlots > m_plots_offEle;
138 std::unique_ptr< OfflineElectronPlots > m_plots_eff_vsOffEle;
140 std::unique_ptr< VertexParametersPlots > m_plots_vtxParam_vsTest;
141 std::unique_ptr< VertexParametersPlots > m_plots_nVtxParam_vsTest;
143 std::unique_ptr< VertexParametersPlots > m_plots_vtxParam_vsRef;
144 std::unique_ptr< VertexParametersPlots > m_plots_nVtxParam_vsRef;
145
146 }; // class TrackAnalysisPlotsMgr
147
148} // namespace IDTPM
149
150#endif // > !INDETTRACKPERFMON_TRACKANALYSISPLOTSMGR_H
Service interface to hold (and propagate) the basic properties of each defined TrackAnalysis and of t...
Derived class to give extra capabilities to TrkValHistUtils/PlotBase.h such as ATH_MSG and an easier ...
PlotMgr(const std::string &dirName, const std::string &anaTag, PlotMgr *pParent=nullptr)
Constructor taking parent node and directory name for plots pParent = nullptr by default to book plot...
Definition PlotMgr.cxx:25
virtual ~TrackAnalysisPlotsMgr()=default
Destructor.
std::unique_ptr< EfficiencyPlots > m_plots_eff_vsRef
std::unique_ptr< ResolutionPlots > m_plots_resolution
resolution plots
std::unique_ptr< FakeRatePlots > m_plots_fakeRate
fake rate plots (only when reference=truth)
std::unique_ptr< NtracksPlots > m_plots_nTracks_vsRef
SmartIF< ITrackAnalysisDefinitionSvc > m_trkAnaDefSvc
TrackAnalysis definition service to "hold" the histograms configurations/flags.
std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsRef
std::unique_ptr< SummaryPlots > m_plots_summary
Plot categories summary plots.
std::unique_ptr< OfflineElectronPlots > m_plots_offEle
plots w.r.t. reference offline electron
const std::string & anaTag() const
return members
std::unique_ptr< VertexParametersPlots > m_plots_vtxParam_vsRef
plots w.r.t. reference vertices parameters
StatusCode fillPlotsTruth(const std::vector< const xAOD::TrackParticle * > &testTracks, const std::vector< const xAOD::TrackParticle * > &refTracks, const std::vector< const xAOD::TruthParticle * > &truths, const ITrackMatchingLookup &matches, float truthMu=0., float actualMu=0., float weight=1.0)
Fill efficiency plots w.r.t. truth (for EFTruthMatch only)
const std::string & directory() const
std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsTruth
std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsTest
StatusCode fill(TrackAnalysisCollections &trkAnaColls, float weight=1.0)
General fill method.
std::unique_ptr< FakeRatePlots > m_plots_missingTruth
StatusCode fillPlotsReference(const std::vector< const PARTICLE * > &particles, const ITrackMatchingLookup &matches, const std::vector< const VERTEX * > &vertices, float truthMu=0., float actualMu=0., float weight=1.0)
Fill all plots w.r.t.
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnUnlinkedTrk
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnTrk_vsRef
std::unique_ptr< VertexParametersPlots > m_plots_vtxParam_vsTest
plots w.r.t. test vertices parameters
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnTrk_vsTest
const std::string & chain() const
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnMatchedTrk
std::unique_ptr< VertexParametersPlots > m_plots_nVtxParam_vsRef
TrackAnalysisPlotsMgr(const std::string &dirName, const std::string &anaTag, const std::string &chain, PlotMgr *pParent=nullptr)
Constructor.
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnMatchedTrk_vsRef
std::unique_ptr< TrackParametersPlots > m_plots_trkParam_vsRef
plots w.r.t. reference tracks parameters
std::unique_ptr< EfficiencyPlots > m_plots_eff_vsTruth
plots w.r.t. efficiency plots w.r.t. truth (for EFTruthMatch only)
std::unique_ptr< EfficiencyPlots > m_plots_eff_vsTest
std::unique_ptr< NtracksPlots > m_plots_nTracks_vsTest
std::unique_ptr< VertexParametersPlots > m_plots_nVtxParam_vsTest
std::unique_ptr< DuplicateRatePlots > m_plots_duplRate
duplicate rate plots
StatusCode fillPlotsTest(const std::vector< const PARTICLE * > &particles, const ITrackMatchingLookup &matches, const std::vector< const VERTEX * > &vertices, float truthMu=0., float actualMu=0., float weight=1.0)
Fill all plots w.r.t.
std::unique_ptr< TrackParametersPlots > m_plots_trkParam_vsTest
plots w.r.t. test tracks parameters
std::unique_ptr< OfflineElectronPlots > m_plots_eff_vsOffEle
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnFakeTrk
Athena include(s).
#define private