ATLAS Offline Software
TrackAnalysisCollections.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_TRACKANALYSISCOLLECTIONS_H
6 #define INDETTRACKPERFMON_TRACKANALYSISCOLLECTIONS_H
7 
19 #include "GaudiKernel/ISvcLocator.h"
20 #include "GaudiKernel/Service.h"
22 #include "StoreGate/ReadHandle.h"
23 
27 
30 #include "ITrackMatchingLookup.h"
31 
33 #include <string>
34 #include <vector>
35 #include <memory>
36 #include <unordered_map>
37 
38 
39 namespace IDTPM {
40 
42 
43  public:
44 
49  enum Stage : size_t { FULL, FS, InRoI, NStages };
50 
52  TrackAnalysisCollections( const std::string& anaTag );
53 
56 
59 
62 
64 
68 
71 
74 
77  const std::vector< const xAOD::TruthParticle* >& vec,
78  Stage stage = FULL );
79 
81  const std::vector< const xAOD::TrackParticle* >& vec,
82  Stage stage = FULL );
83 
86  const std::vector< const xAOD::TruthParticle* >& vec,
87  Stage stage = FULL );
88 
90  const std::vector< const xAOD::TrackParticle* >& vec,
91  Stage stage = FULL );
92 
95  const std::vector< const xAOD::TruthParticle* >& vec,
96  Stage stage = FULL );
97 
99  const std::vector< const xAOD::TrackParticle* >& vec,
100  Stage stage = FULL );
101 
103  const std::vector< const xAOD::TrackParticle* >& vec,
104  Stage stage = FULL );
105 
107 
109  bool empty( Stage stage = FULL );
110 
112  void clear( Stage stage = FULL );
113 
115  void copyFS();
116 
118  std::string printInfo( Stage stage = FULL ) const;
119 
121 
123  const std::string& anaTag() { return m_anaTag; }
124 
128 
132 
135  return m_truthPartContainer; }
137  return m_offlTrackContainer; }
139  return m_trigTrackContainer; }
140 
142  const std::vector< const xAOD::TruthParticle* >& testTruthVec( Stage stage = FULL );
143  const std::vector< const xAOD::TrackParticle* >& testTrackVec( Stage stage = FULL );
144 
146  const std::vector< const xAOD::TruthParticle* >& refTruthVec( Stage stage = FULL );
147  const std::vector< const xAOD::TrackParticle* >& refTrackVec( Stage stage = FULL );
148 
150  const std::vector< const xAOD::TruthParticle* >& truthPartVec( Stage stage = FULL ) {
151  return m_truthPartVec[ stage ]; }
152  const std::vector< const xAOD::TrackParticle* >& offlTrackVec( Stage stage = FULL ) {
153  return m_offlTrackVec[ stage ]; }
154  const std::vector< const xAOD::TrackParticle* >& trigTrackVec( Stage stage = FULL ) {
155  return m_trigTrackVec[ stage ]; }
156 
159 
161  std::string printMatchInfo();
162 
164  bool updateChainRois( const std::string& chainRoi, const std::string& roiStr );
165 
166  private:
167 
169  std::string m_anaTag;
171 
177 
179  std::vector<std::vector< const xAOD::TruthParticle* >> m_truthPartVec{};
180  std::vector<std::vector< const xAOD::TrackParticle* >> m_offlTrackVec{};
181  std::vector<std::vector< const xAOD::TrackParticle* >> m_trigTrackVec{};
182 
184  std::vector< const xAOD::TrackParticle* > m_nullTrackVec{};
185  std::vector< const xAOD::TruthParticle* > m_nullTruthVec{};
186 
188  std::unique_ptr< ITrackMatchingLookup > m_matches;
189 
191  typedef std::unordered_map< std::string, std::string > mapChainRoi_t;
193 
194  }; // class TrackAnalysisCollections
195 
196 } // namespace IDTPM
197 
198 #endif // > !INDETTRACKPERFMON_TRACKANALYSISCOLLECTIONS_H
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
IDTPM::TrackAnalysisCollections::fillTrigTrackVec
StatusCode fillTrigTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
Trigger tracks.
Definition: TrackAnalysisCollections.cxx:273
IDTPM::TrackAnalysisCollections::m_matches
std::unique_ptr< ITrackMatchingLookup > m_matches
Lookup table for test-reference matching.
Definition: TrackAnalysisCollections.h:188
ITrackAnalysisDefinitionSvc.h
python.FPGATrackSimAnalysisConfig.stage
stage
Definition: FPGATrackSimAnalysisConfig.py:604
IDTPM::TrackAnalysisCollections::NStages
@ NStages
Definition: TrackAnalysisCollections.h:49
IDTPM::TrackAnalysisCollections
Definition: TrackAnalysisCollections.h:41
ITrackAnalysisDefinitionSvc
Athena include(s).
Definition: ITrackAnalysisDefinitionSvc.h:26
AthCheckMacros.h
AthMsgStreamMacros.h
IDTPM::TrackAnalysisCollections::updateChainRois
bool updateChainRois(const std::string &chainRoi, const std::string &roiStr)
update chainRois map
Definition: TrackAnalysisCollections.cxx:561
IDTPM::TrackAnalysisCollections::m_offlTrackVec
std::vector< std::vector< const xAOD::TrackParticle * > > m_offlTrackVec
Definition: TrackAnalysisCollections.h:180
IDTPM::TrackAnalysisCollections::m_trigTrackVec
std::vector< std::vector< const xAOD::TrackParticle * > > m_trigTrackVec
Definition: TrackAnalysisCollections.h:181
IDTPM::TrackAnalysisCollections::m_nullTrackVec
std::vector< const xAOD::TrackParticle * > m_nullTrackVec
null vectors
Definition: TrackAnalysisCollections.h:184
TruthParticleContainer.h
IDTPM::TrackAnalysisCollections::mapChainRoi_t
std::unordered_map< std::string, std::string > mapChainRoi_t
map of chainRoiNames for caching
Definition: TrackAnalysisCollections.h:191
IDTPM::TrackAnalysisCollections::m_offlTrackContainer
const xAOD::TrackParticleContainer * m_offlTrackContainer
Definition: TrackAnalysisCollections.h:175
IDTPM::TrackAnalysisCollections::fillRefTrackVec
StatusCode fillRefTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
REFERENCE = tracks.
Definition: TrackAnalysisCollections.cxx:214
IDTPM::TrackAnalysisCollections::truthPartContainer
const xAOD::TruthParticleContainer * truthPartContainer()
get truth/offline/trigger track containers (TEST or REFERENCE)
Definition: TrackAnalysisCollections.h:134
IDTPM::TrackAnalysisCollections::TrackAnalysisCollections
TrackAnalysisCollections(const std::string &anaTag)
Constructor.
Definition: TrackAnalysisCollections.cxx:19
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
IDTPM::TrackAnalysisCollections::fillTruthPartContainer
StatusCode fillTruthPartContainer(const SG::ReadHandleKey< xAOD::TruthParticleContainer > &handleKey)
— Setter methods —
Definition: TrackAnalysisCollections.cxx:62
IDTPM::TrackAnalysisCollections::m_nullTruthVec
std::vector< const xAOD::TruthParticle * > m_nullTruthVec
Definition: TrackAnalysisCollections.h:185
IDTPM::TrackAnalysisCollections::trigTrackVec
const std::vector< const xAOD::TrackParticle * > & trigTrackVec(Stage stage=FULL)
Definition: TrackAnalysisCollections.h:154
SG::ReadHandleKey< xAOD::TruthParticleContainer >
IDTPM::TrackAnalysisCollections::testTruthContainer
const xAOD::TruthParticleContainer * testTruthContainer()
get full TEST containers
Definition: TrackAnalysisCollections.cxx:371
IDTPM::TrackAnalysisCollections::fillOfflTrackVec
StatusCode fillOfflTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
Offline tracks.
Definition: TrackAnalysisCollections.cxx:256
IDTPM::TrackAnalysisCollections::printMatchInfo
std::string printMatchInfo()
print matching information
Definition: TrackAnalysisCollections.cxx:543
IDTPM::TrackAnalysisCollections::testTrackVec
const std::vector< const xAOD::TrackParticle * > & testTrackVec(Stage stage=FULL)
TEST = Track.
Definition: TrackAnalysisCollections.cxx:439
IDTPM::TrackAnalysisCollections::fillTruthPartVec
StatusCode fillTruthPartVec(const std::vector< const xAOD::TruthParticle * > &vec, Stage stage=FULL)
get truth/offline/trigger track vector (TEST or REFERENCE)
Definition: TrackAnalysisCollections.cxx:239
IDTPM::TrackAnalysisCollections::m_trigTrackContainer
const xAOD::TrackParticleContainer * m_trigTrackContainer
Definition: TrackAnalysisCollections.h:176
IDTPM::TrackAnalysisCollections::clear
void clear(Stage stage=FULL)
Clear vectors.
Definition: TrackAnalysisCollections.cxx:314
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IDTPM::TrackAnalysisCollections::offlTrackContainer
const xAOD::TrackParticleContainer * offlTrackContainer()
Definition: TrackAnalysisCollections.h:136
IDTPM::TrackAnalysisCollections::FS
@ FS
Definition: TrackAnalysisCollections.h:49
IDTPM::TrackAnalysisCollections::matches
ITrackMatchingLookup & matches()
return matching information
Definition: TrackAnalysisCollections.h:158
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
ITrackMatchingLookup.h
Interace for TrackMatchingLookup objects (templated)
IDTPM::TrackAnalysisCollections::offlTrackVec
const std::vector< const xAOD::TrackParticle * > & offlTrackVec(Stage stage=FULL)
Definition: TrackAnalysisCollections.h:152
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
IDTPM::TrackAnalysisCollections::Stage
Stage
Enum for selection stages.
Definition: TrackAnalysisCollections.h:49
IDTPM::TrackAnalysisCollections::refTruthContainer
const xAOD::TruthParticleContainer * refTruthContainer()
get full REFERENCE containers
Definition: TrackAnalysisCollections.cxx:397
IDTPM::TrackAnalysisCollections::~TrackAnalysisCollections
~TrackAnalysisCollections()=default
Destructor.
IDTPM::TrackAnalysisCollections::testTrackContainer
const xAOD::TrackParticleContainer * testTrackContainer()
TEST = Track.
Definition: TrackAnalysisCollections.cxx:382
IDTPM::TrackAnalysisCollections::m_truthPartContainer
const xAOD::TruthParticleContainer * m_truthPartContainer
— Collections class variables — Full collections
Definition: TrackAnalysisCollections.h:174
IDTPM::TrackAnalysisCollections::initialize
StatusCode initialize()
initialize
Definition: TrackAnalysisCollections.cxx:32
IDTPM::TrackAnalysisCollections::refTrackVec
const std::vector< const xAOD::TrackParticle * > & refTrackVec(Stage stage=FULL)
TEST = Track.
Definition: TrackAnalysisCollections.cxx:469
IDTPM::TrackAnalysisCollections::m_trkAnaDefSvc
ITrackAnalysisDefinitionSvc * m_trkAnaDefSvc
Definition: TrackAnalysisCollections.h:170
IDTPM::TrackAnalysisCollections::InRoI
@ InRoI
Definition: TrackAnalysisCollections.h:49
AthMessaging.h
IDTPM::TrackAnalysisCollections::truthPartVec
const std::vector< const xAOD::TruthParticle * > & truthPartVec(Stage stage=FULL)
get truth/offline/trigger track vector (TEST or REFERENCE)
Definition: TrackAnalysisCollections.h:150
IDTPM::TrackAnalysisCollections::printInfo
std::string printInfo(Stage stage=FULL) const
print Information about tracks in the collection(s)
Definition: TrackAnalysisCollections.cxx:488
IDTPM::TrackAnalysisCollections::testTruthVec
const std::vector< const xAOD::TruthParticle * > & testTruthVec(Stage stage=FULL)
get TEST track vectors
Definition: TrackAnalysisCollections.cxx:426
IDTPM::TrackAnalysisCollections::empty
bool empty(Stage stage=FULL)
— Utility methods —
Definition: TrackAnalysisCollections.cxx:293
IDTPM::TrackAnalysisCollections::m_anaTag
std::string m_anaTag
TrackAnalysis properties.
Definition: TrackAnalysisCollections.h:169
IDTPM::ITrackMatchingLookup
Definition: ITrackMatchingLookup.h:30
IDTPM::TrackAnalysisCollections::fillTrigTrackContainer
StatusCode fillTrigTrackContainer(const SG::ReadHandleKey< xAOD::TrackParticleContainer > &handleKey)
Trigger track particles.
Definition: TrackAnalysisCollections.cxx:122
ReadHandle.h
Handle class for reading from StoreGate.
IDTPM::TrackAnalysisCollections::FULL
@ FULL
Definition: TrackAnalysisCollections.h:49
IDTPM::TrackAnalysisCollections::copyFS
void copyFS()
copy content of FS vectors to InRoI vectors
Definition: TrackAnalysisCollections.cxx:335
IDTPM
Athena include(s).
Definition: IPlotsDefinitionSvc.h:25
IDTPM::TrackAnalysisCollections::operator=
TrackAnalysisCollections & operator=(const TrackAnalysisCollections &)=delete
= operator
IDTPM::TrackAnalysisCollections::refTrackContainer
const xAOD::TrackParticleContainer * refTrackContainer()
REFERENCE = Track.
Definition: TrackAnalysisCollections.cxx:408
IDTPM::TrackAnalysisCollections::anaTag
const std::string & anaTag()
— Getter methods —
Definition: TrackAnalysisCollections.h:123
IDTPM::TrackAnalysisCollections::fillTestTrackVec
StatusCode fillTestTrackVec(const std::vector< const xAOD::TrackParticle * > &vec, Stage stage=FULL)
TEST = tracks.
Definition: TrackAnalysisCollections.cxx:172
IDTPM::TrackAnalysisCollections::m_chainRois
mapChainRoi_t m_chainRois
Definition: TrackAnalysisCollections.h:192
IDTPM::TrackAnalysisCollections::trigTrackContainer
const xAOD::TrackParticleContainer * trigTrackContainer()
Definition: TrackAnalysisCollections.h:138
TrackParticleContainer.h
IDTPM::TrackAnalysisCollections::m_truthPartVec
std::vector< std::vector< const xAOD::TruthParticle * > > m_truthPartVec
vectors of track/truth particles at different stages of the selection/workflow
Definition: TrackAnalysisCollections.h:179
IDTPM::TrackAnalysisCollections::refTruthVec
const std::vector< const xAOD::TruthParticle * > & refTruthVec(Stage stage=FULL)
get REFERENCE track vectors
Definition: TrackAnalysisCollections.cxx:456
IDTPM::TrackAnalysisCollections::fillRefTruthVec
StatusCode fillRefTruthVec(const std::vector< const xAOD::TruthParticle * > &vec, Stage stage=FULL)
fill REFERENCE vectors
Definition: TrackAnalysisCollections.cxx:197
IDTPM::TrackAnalysisCollections::fillOfflTrackContainer
StatusCode fillOfflTrackContainer(const SG::ReadHandleKey< xAOD::TrackParticleContainer > &handleKey)
Offline track particles.
Definition: TrackAnalysisCollections.cxx:92
IDTPM::TrackAnalysisCollections::fillTestTruthVec
StatusCode fillTestTruthVec(const std::vector< const xAOD::TruthParticle * > &vec, Stage stage=FULL)
fill TEST vectors
Definition: TrackAnalysisCollections.cxx:155