ATLAS Offline Software
Loading...
Searching...
No Matches
ActsToTrkConverterTool.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 ACTSEVENTCNV_ActsToTrkConverterTool_H
6#define ACTSEVENTCNV_ActsToTrkConverterTool_H
7
8#include <tuple>
9
10// ATHENA
12
13
16
17#include "TrkParameters/TrackParameters.h" //typedef, cannot fwd declare
22
24
25
26// PACKAGE
29
34
35#include "Acts/EventData/BoundTrackParameters.hpp"
36
37
42
43namespace ActsTrk {
44class ActsToTrkConverterTool : public extends<AthAlgTool, ITrackConverterTool>
45{
46
47public:
48 virtual StatusCode initialize() override;
49
50 using base_class::base_class;
51
53 virtual std::vector<Acts::SourceLink> trkTrackToSourceLinks(const Trk::Track& track) const override;
55 virtual std::unique_ptr<Trk::Track> convertFitResult(const EventContext& ctx,
56 TrackFitResult_t& fitResult,
57 const Trk::TrackInfo::TrackFitter fitAuthor) const override final;
59 virtual void convertTrkToActsContainer(const EventContext& ctx,
60 const TrackCollection& trackColl,
61 ActsTrk::MutableTrackContainer& outTrackcoll) const override;
63 virtual std::unique_ptr<TrackCollection>
64 convertActsToTrkContainer(const EventContext& ctx,
65 const ActsTrk::TrackContainer& trackCont) const override final;
66private:
72 template <typename Proxy_t>
73 std::unique_ptr<Trk::Track> convertActsTrack(const EventContext& ctx,
74 const Proxy_t& track,
75 const Trk::TrackInfo::TrackFitter fitAuthor) const;
77 using TrkTSOSMask = std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>;
88 void appendMeasTSOS(const EventContext& ctx,
90 const TrkTSOSMask typePattern,
92 std::unique_ptr<Trk::TrackParameters> trkPars,
93 Trk::TrackStates& states) const;
100 template <typename PrdType_t>
101 const Trk::PrepRawData* fetchPrd(const EventContext& ctx,
103 const Identifier& prdId,
104 const IdentifierHash& hash) const;
105
107 const Acts::BoundTrackParameters& actsParameter,
108 const Trk::TrackParameters& tsos, const Acts::GeometryContext& gctx) const;
109
110 PublicToolHandle<ITrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", ""};
111 PublicToolHandle<IGeometryRealmConvTool> m_geometryConvTool{this, "GeometryRealmConvTool", ""};
112
114 ToolHandle<Trk::IExtendedTrackSummaryTool> m_trkSummaryTool {this, "SummaryTool", "", "ToolHandle for track summary tool"};
115 ToolHandle<Trk::IRIO_OnTrackCreator> m_ROTcreator {this, "RotCreatorTool", ""};
116
118 Gaudi::Property<bool> m_convertHoles{this, "convertHoles", true };
120 Gaudi::Property<bool> m_convertOutliers{this, "convertOutliers", true};
122 Gaudi::Property<bool> m_convertMaterial{this, "convertMaterial", false};
123
124 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
125
126 SG::ReadHandleKey<Muon::MdtPrepDataContainer> m_keyMdt{this, "MdtKey", "MDT_DriftCircles"};
127 SG::ReadHandleKey<Muon::RpcPrepDataContainer> m_keyRpc{this, "RpcKey", "RPC_Measurements"};
128 SG::ReadHandleKey<Muon::TgcPrepDataContainer> m_keyTgc{this, "TgcKey", "TGC_MeasurementsAllBCs"};
129 SG::ReadHandleKey<Muon::MMPrepDataContainer> m_keyMm{this, "MmKey", "MM_Measurements"};
130 SG::ReadHandleKey<Muon::sTgcPrepDataContainer> m_keyStgc{this, "sTgcKey", "STGC_Measurements"};
131
132
133 ToolHandle<Muon::IMuonCompetingClustersOnTrackCreator> m_compRotCreator{this, "CompetingRotCreator", ""}; //<! competing clusters rio ontrack creator
134
137
139
140};
141
142}; // namespace ActsTrk
143
144#endif
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
std::bitset< Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes > TrkTSOSMask
Abrivate the state mask for the TSOS.
bool actsTrackParameterPositionCheck(const Acts::BoundTrackParameters &actsParameter, const Trk::TrackParameters &tsos, const Acts::GeometryContext &gctx) const
ToolHandle< Trk::IExtendedTrackSummaryTool > m_trkSummaryTool
Tools needed to create Trk::Tracks from the ACts fit result.
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
virtual std::unique_ptr< Trk::Track > convertFitResult(const EventContext &ctx, TrackFitResult_t &fitResult, const Trk::TrackInfo::TrackFitter fitAuthor) const override final
std::unique_ptr< Trk::Track > convertActsTrack(const EventContext &ctx, const Proxy_t &track, const Trk::TrackInfo::TrackFitter fitAuthor) const
Helper function to convert a Acts TrackPoxy (which may be const or not) into a Trk::Track.
Gaudi::Property< bool > m_convertOutliers
Flag to convert the outlier states.
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_keyRpc
virtual StatusCode initialize() override
PublicToolHandle< IGeometryRealmConvTool > m_geometryConvTool
PublicToolHandle< ITrackingGeometryTool > m_trackingGeometryTool
ToolHandle< Muon::IMuonCompetingClustersOnTrackCreator > m_compRotCreator
detail::TrkPrepRawDataCalibrator m_prdCalib
virtual std::unique_ptr< TrackCollection > convertActsToTrkContainer(const EventContext &ctx, const ActsTrk::TrackContainer &trackCont) const override final
Converts the Acts track container to a Trk::Track collection.
Gaudi::Property< bool > m_convertHoles
Flag to convert the hole states.
ToolHandle< Trk::IRIO_OnTrackCreator > m_ROTcreator
SG::ReadHandleKey< Muon::MMPrepDataContainer > m_keyMm
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_keyMdt
SG::ReadHandleKey< Muon::TgcPrepDataContainer > m_keyTgc
detail::TrkMeasurementCalibrator m_measCalib
const Trk::PrepRawData * fetchPrd(const EventContext &ctx, const SG::ReadHandleKey< PrdType_t > &key, const Identifier &prdId, const IdentifierHash &hash) const
Searches a Prd object from a collection according to the measurement's Identifier and the container's...
void appendMeasTSOS(const EventContext &ctx, const xAOD::UncalibratedMeasurement *meas, const TrkTSOSMask typePattern, Trk::FitQualityOnSurface &&quality, std::unique_ptr< Trk::TrackParameters > trkPars, Trk::TrackStates &states) const
Append the translated TSOS at the beginning of the states container corresponding to the parsed measu...
Trk::TrackInfo::TrackFitter m_fitAuthor
SG::ReadHandleKey< Muon::sTgcPrepDataContainer > m_keyStgc
virtual std::vector< Acts::SourceLink > trkTrackToSourceLinks(const Trk::Track &track) const override
Converts the Trk measurement track states into a vector of Acts::Source links.
Gaudi::Property< bool > m_convertMaterial
Flag to convert the material states (non sensitive) Acts -> Trk conversion.
virtual void convertTrkToActsContainer(const EventContext &ctx, const TrackCollection &trackColl, ActsTrk::MutableTrackContainer &outTrackcoll) const override
Convert the passed Trk::TrackCollection into an Acts Track object and appends the result to the passe...
Calibrator class that links the legacy Trk::MeasurementBase objects with the Acts MultiTrajectory tra...
Class to calibrate the Acts track states with uncalibrated Trk::PrepRaw data objects.
This is a "hash" representation of an Identifier.
Property holding a SG store/key/clid from which a ReadHandle is made.
TrackFitter
enums to identify who created this track and what propertis does it have.
@ GlobalChi2Fitter
Track's from Thijs' global chi^2 fitter.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
DataVector< const Trk::TrackStateOnSurface > TrackStates
ParametersBase< TrackParametersDim, Charged > TrackParameters
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.