ATLAS Offline Software
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 
19 
22 #include "PlotMgr.h"
24 #include "plots/EfficiencyPlots.h"
26 #include "plots/ResolutionPlots.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 
40 namespace IDTPM {
41 
43  class TrackAnalysisCollections;
44  class ITrackMatchingLookup;
45 
46  class TrackAnalysisPlotsMgr : public PlotMgr {
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 
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 >
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 >
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 
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
IDTPM::TrackAnalysisPlotsMgr::chain
const std::string & chain() const
Definition: TrackAnalysisPlotsMgr.h:64
IDTPM::TrackAnalysisPlotsMgr::m_plots_tech_eff_vsTruth
std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsTruth
Definition: TrackAnalysisPlotsMgr.h:126
IDTPM::TrackAnalysisPlotsMgr::m_plots_vtxParam_vsRef
std::unique_ptr< VertexParametersPlots > m_plots_vtxParam_vsRef
plots w.r.t. reference vertices parameters
Definition: TrackAnalysisPlotsMgr.h:143
ITrackAnalysisDefinitionSvc.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_nTracks_vsRef
std::unique_ptr< NtracksPlots > m_plots_nTracks_vsRef
Definition: TrackAnalysisPlotsMgr.h:123
IDTPM::TrackAnalysisPlotsMgr::m_plots_trkParam_vsTest
std::unique_ptr< TrackParametersPlots > m_plots_trkParam_vsTest
plots w.r.t. test tracks parameters
Definition: TrackAnalysisPlotsMgr.h:111
IDTPM::TrackAnalysisCollections
Definition: TrackAnalysisCollections.h:46
ResolutionPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_hitsOnTrk_vsTest
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnTrk_vsTest
Definition: TrackAnalysisPlotsMgr.h:114
FakeRatePlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_hitsOnUnlinkedTrk
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnUnlinkedTrk
Definition: TrackAnalysisPlotsMgr.h:133
IDTPM::TrackAnalysisPlotsMgr::m_plots_hitsOnMatchedTrk
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnMatchedTrk
Definition: TrackAnalysisPlotsMgr.h:115
IDTPM::TrackAnalysisPlotsMgr::m_chain
std::string m_chain
Definition: TrackAnalysisPlotsMgr.h:101
IDTPM::TrackAnalysisPlotsMgr::fillPlotsTruth
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)
Definition: TrackAnalysisPlotsMgr.cxx:594
IDTPM::TrackAnalysisPlotsMgr::m_plots_eff_vsTruth
std::unique_ptr< EfficiencyPlots > m_plots_eff_vsTruth
plots w.r.t. efficiency plots w.r.t. truth (for EFTruthMatch only)
Definition: TrackAnalysisPlotsMgr.h:125
IDTPM::TrackAnalysisPlotsMgr::m_plots_fakeRate
std::unique_ptr< FakeRatePlots > m_plots_fakeRate
fake rate plots (only when reference=truth)
Definition: TrackAnalysisPlotsMgr.h:130
IDTPM::TrackAnalysisPlotsMgr::m_plots_resolution
std::unique_ptr< ResolutionPlots > m_plots_resolution
resolution plots
Definition: TrackAnalysisPlotsMgr.h:128
PrintTrkAnaSummary.dirName
dirName
Definition: PrintTrkAnaSummary.py:275
IDTPM::TrackAnalysisPlotsMgr::m_anaTag
std::string m_anaTag
Definition: TrackAnalysisPlotsMgr.h:100
TrackParametersPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_nVtxParam_vsTest
std::unique_ptr< VertexParametersPlots > m_plots_nVtxParam_vsTest
Definition: TrackAnalysisPlotsMgr.h:141
IDTPM::TrackAnalysisPlotsMgr::m_plots_tech_eff_vsRef
std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsRef
Definition: TrackAnalysisPlotsMgr.h:120
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:190
IDTPM::TrackAnalysisPlotsMgr::fillPlotsTest
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.
Definition: TrackAnalysisPlotsMgr.cxx:290
NtracksPlots.h
IDTPM::TrackAnalysisPlotsMgr::~TrackAnalysisPlotsMgr
virtual ~TrackAnalysisPlotsMgr()=default
Destructor.
IDTPM::PlotMgr
Definition: PlotMgr.h:33
IDTPM::TrackAnalysisPlotsMgr::m_plots_eff_vsRef
std::unique_ptr< EfficiencyPlots > m_plots_eff_vsRef
Definition: TrackAnalysisPlotsMgr.h:119
IDTPM::TrackAnalysisPlotsMgr::fillPlotsReference
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.
Definition: TrackAnalysisPlotsMgr.cxx:457
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PlotMgr.h
Derived class to give extra capabilities to TrkValHistUtils/PlotBase.h such as ATH_MSG and an easier ...
HitsOnTracksPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_missingTruth
std::unique_ptr< FakeRatePlots > m_plots_missingTruth
Definition: TrackAnalysisPlotsMgr.h:131
SummaryPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_summary
std::unique_ptr< SummaryPlots > m_plots_summary
Plot categories summary plots.
Definition: TrackAnalysisPlotsMgr.h:109
IDTPM::TrackAnalysisPlotsMgr::m_plots_duplRate
std::unique_ptr< DuplicateRatePlots > m_plots_duplRate
duplicate rate plots
Definition: TrackAnalysisPlotsMgr.h:135
IDTPM::TrackAnalysisPlotsMgr::m_plots_hitsOnFakeTrk
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnFakeTrk
Definition: TrackAnalysisPlotsMgr.h:132
EfficiencyPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_trkParam_vsRef
std::unique_ptr< TrackParametersPlots > m_plots_trkParam_vsRef
plots w.r.t. reference tracks parameters
Definition: TrackAnalysisPlotsMgr.h:118
IDTPM::TrackAnalysisPlotsMgr::m_plots_eff_vsOffEle
std::unique_ptr< OfflineElectronPlots > m_plots_eff_vsOffEle
Definition: TrackAnalysisPlotsMgr.h:138
IDTPM::TrackAnalysisPlotsMgr::m_directory
std::string m_directory
Definition: TrackAnalysisPlotsMgr.h:102
DuplicateRatePlots.h
OfflineElectronPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_vtxParam_vsTest
std::unique_ptr< VertexParametersPlots > m_plots_vtxParam_vsTest
plots w.r.t. test vertices parameters
Definition: TrackAnalysisPlotsMgr.h:140
IDTPM::TrackAnalysisPlotsMgr::m_plots_hitsOnTrk_vsRef
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnTrk_vsRef
Definition: TrackAnalysisPlotsMgr.h:121
IDTPM::TrackAnalysisPlotsMgr::m_plots_hitsOnMatchedTrk_vsRef
std::unique_ptr< HitsOnTracksPlots > m_plots_hitsOnMatchedTrk_vsRef
Definition: TrackAnalysisPlotsMgr.h:122
IDTPM::TrackAnalysisPlotsMgr::m_plots_tech_eff_vsTest
std::unique_ptr< EfficiencyPlots > m_plots_tech_eff_vsTest
Definition: TrackAnalysisPlotsMgr.h:113
TrackParticle.h
IDTPM::TrackAnalysisPlotsMgr
Definition: TrackAnalysisPlotsMgr.h:46
IDTPM::TrackAnalysisPlotsMgr::m_plots_nVtxParam_vsRef
std::unique_ptr< VertexParametersPlots > m_plots_nVtxParam_vsRef
Definition: TrackAnalysisPlotsMgr.h:144
IDTPM::TrackAnalysisPlotsMgr::TrackAnalysisPlotsMgr
TrackAnalysisPlotsMgr(const std::string &dirName, const std::string &anaTag, const std::string &chain, PlotMgr *pParent=nullptr)
Constructor.
Definition: TrackAnalysisPlotsMgr.cxx:26
IDTPM::TrackAnalysisPlotsMgr::fill
StatusCode fill(TrackAnalysisCollections &trkAnaColls, float weight=1.0)
General fill method.
Definition: TrackAnalysisPlotsMgr.cxx:209
IDTPM::TrackAnalysisPlotsMgr::m_trkAnaDefSvc
SmartIF< ITrackAnalysisDefinitionSvc > m_trkAnaDefSvc
TrackAnalysis definition service to "hold" the histograms configurations/flags.
Definition: TrackAnalysisPlotsMgr.h:105
LArG4FSStartPointFilter.particles
list particles
Definition: LArG4FSStartPointFilter.py:84
private
#define private
Definition: xAODTruthCnvAlg.h:20
IDTPM::TrackAnalysisPlotsMgr::initialize
StatusCode initialize()
initialize
Definition: TrackAnalysisPlotsMgr.cxx:39
IDTPM::ITrackMatchingLookup
Definition: ITrackMatchingLookup.h:30
IDTPM::TrackAnalysisPlotsMgr::directory
const std::string & directory() const
Definition: TrackAnalysisPlotsMgr.h:65
IDTPM
Athena include(s).
Definition: IPlotsDefinitionSvc.h:25
TruthParticle.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_offEle
std::unique_ptr< OfflineElectronPlots > m_plots_offEle
plots w.r.t. reference offline electron
Definition: TrackAnalysisPlotsMgr.h:137
IDTPM::TrackAnalysisPlotsMgr::anaTag
const std::string & anaTag() const
return members
Definition: TrackAnalysisPlotsMgr.h:63
VertexParametersPlots.h
IDTPM::TrackAnalysisPlotsMgr::m_plots_nTracks_vsTest
std::unique_ptr< NtracksPlots > m_plots_nTracks_vsTest
Definition: TrackAnalysisPlotsMgr.h:116
IDTPM::TrackAnalysisPlotsMgr::m_plots_eff_vsTest
std::unique_ptr< EfficiencyPlots > m_plots_eff_vsTest
Definition: TrackAnalysisPlotsMgr.h:112