ATLAS Offline Software
Loading...
Searching...
No Matches
IActsToTrkConverterTool.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 ACTSGEOMETRYINTERFACES_IActsToTrkConverterTool_H
6#define ACTSGEOMETRYINTERFACES_IActsToTrkConverterTool_H
7
8// ATHENA
9#include <memory>
10
11#include "GaudiKernel/IAlgTool.h"
12#include "GaudiKernel/IInterface.h"
14#include "TrkParameters/TrackParameters.h" //typedef, cannot fwd declare
16#include "xAODMeasurementBase/UncalibratedMeasurement.h" //typedef, cannot fwd declare
21#include "Acts/EventData/BoundTrackParameters.hpp"
22#include "Acts/EventData/VectorTrackContainer.hpp"
25#include "TrkSurfaces/Surface.h"
26namespace Trk {
27 class Track;
28 class Surface;
29 class MeasurementBase;
30 class PrepRawData;
31} // namespace Trk
32
33namespace Acts {
34class Surface;
35class SourceLink;
36}
37
38
39namespace ActsTrk {
42class IActsToTrkConverterTool : virtual public IAlgTool {
43 public:
54 virtual SurfacePtr_t actsSurfaceToTrkSurface(const EventContext& ctx,
55 const Acts::Surface& actsSurface) const = 0;
60 virtual std::shared_ptr<const Acts::Surface> trkSurfaceToActsSurface(const Trk::Surface& atlasSurface) const = 0;
61
65 virtual std::vector<Acts::SourceLink> trkTrackToSourceLinks(const Trk::Track& track) const = 0;
70 virtual void toSourceLinks(const std::vector<const Trk::MeasurementBase*>& measSet,
71 std::vector<Acts::SourceLink>& links) const = 0;
76 virtual void toSourceLinks(const std::vector<const Trk::PrepRawData*>& prdSet,
77 std::vector<Acts::SourceLink>& links) const = 0;
82 virtual const Acts::BoundTrackParameters trkTrackParametersToActsParameters(
83 const Trk::TrackParameters& atlasParameter,
84 const Acts::GeometryContext& gctx,
85 Trk::ParticleHypothesis hypothesis = Trk::pion) const = 0;
86
92 virtual std::unique_ptr<Trk::TrackParameters>
93 actsTrackParametersToTrkParameters(const EventContext& ctx,
94 const Acts::BoundTrackParameters& actsParameter,
95 const Acts::GeometryContext& gctx) const = 0;
101 using TrackFitResult_t = Acts::Result<ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>;
102 virtual std::unique_ptr<Trk::Track> convertFitResult(const EventContext& ctx,
103 TrackFitResult_t& fitResult,
104 const Trk::TrackInfo::TrackFitter fitAuthor) const = 0;
105
108 const TrackCollection& trackColl,
109 const Acts::GeometryContext& gctx) const = 0;
110
114 virtual std::unique_ptr<TrackCollection>
115 convertActsToTrkContainer(const EventContext& ctx,
116 const ActsTrk::TrackContainer& trackCont) const = 0;
117
118};
119} // namespace ActsTrk
120
121#endif
static Double_t tc
Handle class for recording to StoreGate.
Handle conditional ownership of surfaces.
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
Conversion tool interface to translate surfaces & track parameters between the Acts & Trk realm.
virtual std::shared_ptr< const Acts::Surface > trkSurfaceToActsSurface(const Trk::Surface &atlasSurface) const =0
Translate the parsed Trk surface into an Acts surface.
Trk::SurfaceUniquePtrT< const Trk::Surface > SurfacePtr_t
Abrivation of the surface pointer with memory management for free surfaces not associated with a Trk:...
virtual void toSourceLinks(const std::vector< const Trk::MeasurementBase * > &measSet, std::vector< Acts::SourceLink > &links) const =0
Converts a vector of Trk measurement states into a vector of Acts source links and appends the result...
virtual std::vector< Acts::SourceLink > trkTrackToSourceLinks(const Trk::Track &track) const =0
Converts the Trk measurement track states into a vector of Acts::Source links.
virtual const Acts::BoundTrackParameters trkTrackParametersToActsParameters(const Trk::TrackParameters &atlasParameter, const Acts::GeometryContext &gctx, Trk::ParticleHypothesis hypothesis=Trk::pion) const =0
Translates the Trk track parameters into bound Acts track parameters with a particle hypothesis.
DeclareInterfaceID(IActsToTrkConverterTool, 1, 0)
virtual std::unique_ptr< TrackCollection > convertActsToTrkContainer(const EventContext &ctx, const ActsTrk::TrackContainer &trackCont) const =0
Converts the Acts track container to a Trk::Track collection.
Acts::Result< ActsTrk::MutableTrackContainer::TrackProxy, std::error_code > TrackFitResult_t
Convert the Acts fit result into a Trk::Track object, if the fit was successful.
virtual std::unique_ptr< Trk::TrackParameters > actsTrackParametersToTrkParameters(const EventContext &ctx, const Acts::BoundTrackParameters &actsParameter, const Acts::GeometryContext &gctx) const =0
Translates the bounded Acts track parameters to Trk parameters.
virtual std::unique_ptr< Trk::Track > convertFitResult(const EventContext &ctx, TrackFitResult_t &fitResult, const Trk::TrackInfo::TrackFitter fitAuthor) const =0
virtual SurfacePtr_t actsSurfaceToTrkSurface(const EventContext &ctx, const Acts::Surface &actsSurface) const =0
Translates the parsed Acts surface into a Trk::Surface via associated detector element.
virtual void toSourceLinks(const std::vector< const Trk::PrepRawData * > &prdSet, std::vector< Acts::SourceLink > &links) const =0
Converts a vector of Trk::PrepRawData states into a vector of Acts source links and appends the resul...
virtual void trkTrackCollectionToActsTrackContainer(ActsTrk::MutableTrackContainer &tc, const TrackCollection &trackColl, const Acts::GeometryContext &gctx) const =0
This class is the pure abstract base class for all fittable tracking measurements.
Abstract Base Class for tracking surfaces.
Definition Surface.h:79
TrackFitter
enums to identify who created this track and what propertis does it have.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
Ensure that the ATLAS eigen extensions are properly loaded.
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
std::unique_ptr< S, SurfaceDeleter< S > > SurfaceUniquePtrT