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"
24
25namespace Trk {
26 class Surface;
27 class Track;
28 class MeasurementBase;
29 class PrepRawData;
30} // namespace Trk
31
32namespace Acts {
33class Surface;
34class SourceLink;
35}
36
37namespace ActsTrk::detail {
38 enum class SourceLinkType;
39}
40
41
42namespace ActsTrk {
45class IActsToTrkConverterTool : virtual public IAlgTool {
46 public:
54 virtual const Trk::Surface& actsSurfaceToTrkSurface(const EventContext& ctx, const Acts::Surface& actsSurface) const = 0;
59 virtual const Acts::Surface& trkSurfaceToActsSurface(const Trk::Surface& atlasSurface) const = 0;
60
64 virtual std::vector<Acts::SourceLink> trkTrackToSourceLinks(const Trk::Track& track) const = 0;
69 virtual void toSourceLinks(const std::vector<const Trk::MeasurementBase*>& measSet,
70 std::vector<Acts::SourceLink>& links) const = 0;
75 virtual void toSourceLinks(const std::vector<const Trk::PrepRawData*>& prdSet,
76 std::vector<Acts::SourceLink>& links) const = 0;
81 virtual const Acts::BoundTrackParameters trkTrackParametersToActsParameters(
82 const Trk::TrackParameters& atlasParameter,
83 const Acts::GeometryContext& gctx,
84 Trk::ParticleHypothesis hypothesis = Trk::pion) const = 0;
85
91 virtual std::unique_ptr<Trk::TrackParameters>
92 actsTrackParametersToTrkParameters(const EventContext& ctx,
93 const Acts::BoundTrackParameters& actsParameter,
94 const Acts::GeometryContext& gctx) const = 0;
103 using TrackFitResult_t = Acts::Result<ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>;
104 virtual std::unique_ptr<Trk::Track> convertFitResult(const EventContext& ctx,
106 TrackFitResult_t& fitResult,
107 const Trk::TrackInfo::TrackFitter fitAuthor,
108 const detail::SourceLinkType slType) const = 0;
109
112 const TrackCollection& trackColl,
113 const Acts::GeometryContext& gctx) const = 0;
114
115};
116} // namespace ActsTrk
117
118#endif
static Double_t tc
Handle class for recording to StoreGate.
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 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::Surface & trkSurfaceToActsSurface(const Trk::Surface &atlasSurface) const =0
Translate the parsed Trk surface into an Acts surface.
virtual const Trk::Surface & actsSurfaceToTrkSurface(const EventContext &ctx, const Acts::Surface &actsSurface) const =0
Translates the parsed Acts surface into a Trk::Surface via associated detector element.
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)
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 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
virtual std::unique_ptr< Trk::Track > convertFitResult(const EventContext &ctx, ActsTrk::MutableTrackContainer &tracks, TrackFitResult_t &fitResult, const Trk::TrackInfo::TrackFitter fitAuthor, const detail::SourceLinkType slType) 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.
Athena definition of the Eigen plugin.
SourceLinkType
Enumeration to distinguish between the ATLAS EDM -> Acts::SourceLink variants.
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