ATLAS Offline Software
Loading...
Searching...
No Matches
TrackToTrackParticleCnvTool.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 ACTSTRKFINDING_TRACKTOTRACKPARTICLECNVTOOL_H
6#define ACTSTRKFINDING_TRACKTOTRACKPARTICLECNVTOOL_H 1
7
9
11
14
19
20#include "Acts/Propagator/EigenStepper.hpp"
21#include "Acts/Propagator/Propagator.hpp"
22#include "Acts/Propagator/Navigator.hpp"
23#include "Acts/Definitions/PdgParticle.hpp"
25
26#include "Gaudi/Property.h"
27
28namespace ActsTrk {
29
30 class TrackToTrackParticleCnvTool : public extends<AthAlgTool, ITrackToTrackParticleCnvTool> {
31
32 public:
33 TrackToTrackParticleCnvTool(const std::string& type,
34 const std::string& name,
35 const IInterface* parent);
36
37 virtual StatusCode initialize() override;
38
39 virtual StatusCode convert(
40 xAOD::TrackParticle& trackParticle,
41 const EventContext& ctx,
42 const ActsTrk::TrackContainer::ConstTrackProxy& track,
43 const Acts::PerigeeSurface* perigeeSurface = nullptr,
44 const InDet::BeamSpotData* beamspotData = nullptr) const override;
45
46 private:
47 using Stepper = Acts::EigenStepper<>;
48 using Navigator = Acts::Navigator;
49 using Propagator = Acts::Propagator<Stepper, Navigator>;
50
51 Acts::BoundTrackParameters parametersAtPerigee(const EventContext& ctx,
52 const ActsTrk::TrackContainer::ConstTrackProxy& track,
53 const Acts::PerigeeSurface& perigee_surface) const;
54
55 static xAOD::ParticleHypothesis convertParticleHypothesis(Acts::PdgParticle abs_pdg_id);
56
57 ToolHandle<ActsTrk::IExtrapolationTool> m_extrapolationTool
58 {this, "ExtrapolationTool", ""};
59
60 PublicToolHandle<ActsTrk::ITrackingGeometryTool> m_trackingGeometryTool
61 {this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};
62
64 {this, "AtlasFieldCacheCondObj", "fieldCondObj",
65 "Name of the Magnetic Field conditions object key"};
66
68 {this, "SiDetectorElementCollections", {},
69 "Pixel and strip element collections to get geometry information about measurements."};
70
71 Gaudi::Property<std::vector<unsigned int>> m_siDetEleCollToMeasurementType
72 {this, "SiDetEleCollToMeasurementType", {},
73 "One value per si detector collection: Pixel = 1, Strip = 2"};
74
75 Gaudi::Property<double> m_paramExtrapolationParLimit
76 {this, "ExtrapolationPathLimit", std::numeric_limits<double>::max(),
77 "PathLimit for extrapolating track parameters."};
78
79 Gaudi::Property<bool> m_firstAndLastParamOnly
80 {this, "FirstAndLastParameterOnly", true,
81 "Only convert the first and the last parameter."};
82
83 Gaudi::Property<bool> m_computeExpectedLayerPattern
84 {this, "ComputeExpectedLayerPattern", true,
85 "Compute the expected layer pattern. CPU expensive"};
86
87 Gaudi::Property<bool> m_expectIfPixelContributes
88 {this, "expectIfPixelContribution", true,
89 "Only expect pixel hits if there are pixel hits on track."};
90
91 Gaudi::Property<double> m_pixelExpectLayerPathLimitInMM
92 {this, "PixelExpectLayerPathLimitInMM", 1000,
93 "PathLimit for extrapolating to get the expected pixel layer pattern in mm."};
94
95 Gaudi::Property<unsigned long> m_patternRecognitionInfo
96 {this, "PatternRecognitionInfo", (1ul << xAOD::SiSPSeededFinder),
97 "Pattern recognition info bitmask to store on converted track particles."};
98
99 Gaudi::Property<int> m_trackFitter
100 {this, "TrackFitter", static_cast<int>(xAOD::KalmanFitter),
101 "Track fitter identifier to store on converted track particles."};
102
103 std::unique_ptr<Propagator> m_propagator;
104 };
105
106}
107
108#endif
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
TrackToTrackParticleCnvTool(const std::string &type, const std::string &name, const IInterface *parent)
Acts::BoundTrackParameters parametersAtPerigee(const EventContext &ctx, const ActsTrk::TrackContainer::ConstTrackProxy &track, const Acts::PerigeeSurface &perigee_surface) const
Gaudi::Property< double > m_pixelExpectLayerPathLimitInMM
Acts::Propagator< Stepper, Navigator > Propagator
SG::ReadCondHandleKeyArray< InDetDD::SiDetectorElementCollection > m_siDetEleCollKey
Gaudi::Property< unsigned long > m_patternRecognitionInfo
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Gaudi::Property< std::vector< unsigned int > > m_siDetEleCollToMeasurementType
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
static xAOD::ParticleHypothesis convertParticleHypothesis(Acts::PdgParticle abs_pdg_id)
virtual StatusCode convert(xAOD::TrackParticle &trackParticle, const EventContext &ctx, const ActsTrk::TrackContainer::ConstTrackProxy &track, const Acts::PerigeeSurface *perigeeSurface=nullptr, const InDet::BeamSpotData *beamspotData=nullptr) const override
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
HandleKeyArray< ReadCondHandle< T >, CondHandleDefault::Key< ReadCondHandleKey< T > >, Gaudi::DataHandle::Reader > ReadCondHandleKeyArray
@ KalmanFitter
tracks produced by the Kalman Fitter
TrackParticle_v1 TrackParticle
Reference the current persistent version:
@ SiSPSeededFinder
Tracks from SiSPSeedFinder.