ATLAS Offline Software
TrackParticleCnvAlg.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // $Id: TrackParticleCnvAlg.h 297747 2013-10-28 15:14:24Z krasznaa $
8 #ifndef XAODCREATORALGS_TRACKPARTICLECREATOR_H
9 #define XAODCREATORALGS_TRACKPARTICLECREATOR_H
10 
11 // System include(s):
12 #include <string>
13 
14 // Athena/Gaudi include(s):
16 #include "GaudiKernel/ToolHandle.h"
30 // Local include(s):
36 
37 
38 
39 namespace xAODMaker {
40 
55 
56  public:
58  TrackParticleCnvAlg( const std::string& name, ISvcLocator* svcLoc );
59 
61  virtual StatusCode initialize();
63  virtual StatusCode execute(const EventContext& ctx) const;
64 
65  private:
66 
68  Gaudi::Property<bool> m_addTruthLink{this,"AddTruthLink", false };
70 
71 
73  ToolHandle<Trk::ITrackParticleCreatorTool> m_particleCreator{this, "TrackParticleCreator", "Trk::TrackParticleCreatorTool/TrackParticleCreatorTool" };
75  ToolHandle<IMCTruthClassifier> m_truthClassifier{
76  this,
77  "MCTruthClassifier",
78  "MCTruthClassifier/MCTruthClassifier",
79  " MCTruthClassifier Instance to use "
80  };
81 
82  // handles to the converting tools
83  ToolHandle<xAODMaker::ITrackCollectionCnvTool> m_TrackCollectionCnvTool{this, "TrackCollectionCnvTool", "xAODMaker::TrackCollectionCnvTool/TrackCollectionCnvTool"};
84  ToolHandle<xAODMaker::IRecTrackParticleContainerCnvTool>
85  m_RecTrackParticleContainerCnvTool{this, "RecTrackParticleContainerCnvTool", "xAODMaker::RecTrackParticleContainerCnvTool/"
86  "RecTrackParticleContainerCnvTool" };
87 
88  SG::ReadHandleKey<Rec::TrackParticleContainer> m_aod{this, "AODContainerName", "TrackParticleCandidate"};
89 
90  SG::ReadHandleKey<TrackCollection> m_tracks{this, "TrackContainerName", "Tracks"};
91 
92  SG::ReadHandleKey<xAOD::VertexContainer> m_primaryVertexContainer{ this, "PrimaryVerticesName", "", "Name of primary vertex container is case the parameters should be calculated with respect to the primary vertex"};
93 
94  SG::WriteHandleKey<xAOD::TrackParticleContainer> m_xaodout{this, "xAODTrackParticlesFromTracksContainerName", "InDetTrackParticles"};
95 
96 
97  SG::WriteHandleKey<xAOD::TrackParticleContainer> m_xaodTrackParticlesout{this, "xAODContainerName", "ConvertedTrackParticleCandidate" };
98 
99 
100  SG::ReadHandleKey<xAODTruthParticleLinkVector> m_truthParticleLinkVec{this, "xAODTruthLinkVector", "xAODTruthLinks"};
101  SG::ReadHandleKey<TrackParticleTruthCollection> m_aodTruth{this, "AODTruthContainerName" , ""};
102  SG::ReadHandleKey<TrackTruthCollection> m_trackTruth{this, "TrackTruthContainerName", ""};
103 
104  // Allow monitoring of track parameters during conversion
105  Gaudi::Property<bool> m_doMonitoring{this, "DoMonitoring", false};
106  ToolHandle<ITrackParticleMonitoring> m_trackMonitoringTool{ this, "TrkMonTool", "", "Tracking Monitoring tool" };
107 
108  //for timing we need a handle to the MonTool in the alg
109  ToolHandle<GenericMonitoringTool > m_monTool { this, "MonTool", "", "Monitoring tool" };
110 
111  // Augment observed tracks with information from track observer tool map
112  Gaudi::Property<bool> m_augmentObservedTracks{this, "AugmentObservedTracks", false, "augment observed tracks"};
113  SG::ReadHandleKey<ObservedTrackMap> m_tracksMap{this, "TracksMapName", "" , "name of observed tracks map saved in store"};
114 
115 
117  Gaudi::Property<bool> m_convertAODTrackParticles{this, "ConvertTrackParticles", true};
118 
120  Gaudi::Property<bool> m_convertTracks{this, "ConvertTracks", false};
121 
122  template<typename CONT, typename TRUTHCONT, typename CONVTOOL>
123  int convert(const CONT&,
124  const TRUTHCONT&,
125  CONVTOOL& tool,
128  const xAOD::Vertex* primaryVertex = nullptr,
129  const ObservedTrackMap* obs_track_map = 0) const;
130 
133  const Rec::TrackParticleContainer& container,
134  const Rec::TrackParticle& tp);
137  const TrackCollection& container,
138  const Trk::Track& tp,
139  const EventContext& ctx);
140 
141  }; // class TrackParticleCnvAlg
142 
143 } // namespace xAODMaker
144 
145 #endif // XAODCREATORALGS_TRACKPARTICLECREATOR_H
ITrkObserverTool.h
xAODMaker::TrackParticleCnvAlg::m_trackMonitoringTool
ToolHandle< ITrackParticleMonitoring > m_trackMonitoringTool
Definition: TrackParticleCnvAlg.h:106
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
xAODMaker::TrackParticleCnvAlg::initialize
virtual StatusCode initialize()
Function initialising the algorithm.
Definition: TrackParticleCnvAlg.cxx:28
xAODMaker::TrackParticleCnvAlg::m_augmentObservedTracks
Gaudi::Property< bool > m_augmentObservedTracks
Definition: TrackParticleCnvAlg.h:112
ITrackParticleCreatorTool.h
xAODMaker::TrackParticleCnvAlg::createParticle
xAOD::TrackParticle * createParticle(xAOD::TrackParticleContainer &xaod, const Rec::TrackParticleContainer &container, const Rec::TrackParticle &tp)
Definition: TrackParticleCnvAlg.cxx:426
ParticleTest.tp
tp
Definition: ParticleTest.py:25
TrackParticleTruthCollection.h
xAODMaker::TrackParticleCnvAlg::m_truthClassifier
ToolHandle< IMCTruthClassifier > m_truthClassifier
ToolHandle to truth classifier.
Definition: TrackParticleCnvAlg.h:75
SG::ReadHandleKey< Rec::TrackParticleContainer >
xAODMaker
Definition: StoreGateSvc.h:70
xAODMaker::TrackParticleCnvAlg::m_convertAODTrackParticles
Gaudi::Property< bool > m_convertAODTrackParticles
toggle on converting AOD track particles to xAOD
Definition: TrackParticleCnvAlg.h:117
xAODMaker::TrackParticleCnvAlg::m_xaodTrackParticlesout
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_xaodTrackParticlesout
Definition: TrackParticleCnvAlg.h:97
xAODMaker::TrackParticleCnvAlg::m_tracksMap
SG::ReadHandleKey< ObservedTrackMap > m_tracksMap
Definition: TrackParticleCnvAlg.h:113
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
ObservedTrackMap
std::map< int, std::tuple< Trk::Track *, double, xAOD::RejectionStep, xAOD::RejectionReason, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, float, float, int, std::vector< xAOD::RejectionStep >, std::vector< xAOD::RejectionReason > > > ObservedTrackMap
Definition: ObservedTrackMap.h:50
ITrackParticleMonitoring.h
xAODMaker::TrackParticleCnvAlg
Algorithm creating xAOD::TrackParticles from TrackParticles.
Definition: TrackParticleCnvAlg.h:54
GenericMonitoringTool.h
xAODMaker::TrackParticleCnvAlg::m_aod
SG::ReadHandleKey< Rec::TrackParticleContainer > m_aod
Definition: TrackParticleCnvAlg.h:88
IMCTruthClassifier.h
xAODMaker::TrackParticleCnvAlg::m_trackTruth
SG::ReadHandleKey< TrackTruthCollection > m_trackTruth
Definition: TrackParticleCnvAlg.h:102
SG::WriteHandleKey< xAOD::TrackParticleContainer >
WriteDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
TrackParticleAuxContainer.h
TrackTruthCollection.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAODMaker::TrackParticleCnvAlg::m_addTruthLink
Gaudi::Property< bool > m_addTruthLink
toggle on adding truth links
Definition: TrackParticleCnvAlg.h:68
TrackCollection.h
xAODMaker::TrackParticleCnvAlg::m_aodTruth
SG::ReadHandleKey< TrackParticleTruthCollection > m_aodTruth
Definition: TrackParticleCnvAlg.h:101
xAODMaker::TrackParticleCnvAlg::execute
virtual StatusCode execute(const EventContext &ctx) const
Function executing the algorithm.
Definition: TrackParticleCnvAlg.cxx:72
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
xAODMaker::TrackParticleCnvAlg::m_TrackCollectionCnvTool
ToolHandle< xAODMaker::ITrackCollectionCnvTool > m_TrackCollectionCnvTool
Definition: TrackParticleCnvAlg.h:83
AthReentrantAlgorithm.h
xAODMaker::TrackParticleCnvAlg::m_doMonitoring
Gaudi::Property< bool > m_doMonitoring
Definition: TrackParticleCnvAlg.h:105
xAODMaker::TrackParticleCnvAlg::convert
int convert(const CONT &, const TRUTHCONT &, CONVTOOL &tool, SG::WriteHandle< xAOD::TrackParticleContainer > &, const xAODTruthParticleLinkVector *, const xAOD::Vertex *primaryVertex=nullptr, const ObservedTrackMap *obs_track_map=0) const
Definition: TrackParticleCnvAlg.cxx:265
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
xAODMaker::TrackParticleCnvAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrackParticleCnvAlg.h:109
xAODMaker::TrackParticleCnvAlg::m_RecTrackParticleContainerCnvTool
ToolHandle< xAODMaker::IRecTrackParticleContainerCnvTool > m_RecTrackParticleContainerCnvTool
Definition: TrackParticleCnvAlg.h:85
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:452
Rec::TrackParticleContainer
Definition: Reconstruction/Particle/Particle/TrackParticleContainer.h:33
xAODMaker::TrackParticleCnvAlg::m_truthParticleLinkVec
SG::ReadHandleKey< xAODTruthParticleLinkVector > m_truthParticleLinkVec
Definition: TrackParticleCnvAlg.h:100
xAODMaker::TrackParticleCnvAlg::m_convertTracks
Gaudi::Property< bool > m_convertTracks
toggle on converting tracks to xAOD
Definition: TrackParticleCnvAlg.h:120
Rec::TrackParticle
Definition: Reconstruction/Particle/Particle/TrackParticle.h:47
xAODMaker::TrackParticleCnvAlg::m_tracks
SG::ReadHandleKey< TrackCollection > m_tracks
Definition: TrackParticleCnvAlg.h:90
TrackParticle.h
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:73
VertexContainer.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
IRecTrackParticleContainerCnvTool.h
xAODTruthParticleLinkVector
Definition: xAODTruthParticleLink.h:26
SlotSpecificObj.h
Maintain a set of objects, one per slot.
xAODMaker::TrackParticleCnvAlg::m_particleCreator
ToolHandle< Trk::ITrackParticleCreatorTool > m_particleCreator
The key for the input TrackParticleTruthCollection.
Definition: TrackParticleCnvAlg.h:73
xAODMaker::TrackParticleCnvAlg::m_primaryVertexContainer
SG::ReadHandleKey< xAOD::VertexContainer > m_primaryVertexContainer
Definition: TrackParticleCnvAlg.h:92
xAODMaker::TrackParticleCnvAlg::TrackParticleCnvAlg
TrackParticleCnvAlg(const std::string &name, ISvcLocator *svcLoc)
Regular algorithm constructor.
Definition: TrackParticleCnvAlg.cxx:23
xAODMaker::TrackParticleCnvAlg::m_xaodout
SG::WriteHandleKey< xAOD::TrackParticleContainer > m_xaodout
Definition: TrackParticleCnvAlg.h:94
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
ITrackCollectionCnvTool.h
TrackParticleContainer.h
TrackParticleContainer.h