ATLAS Offline Software
Loading...
Searching...
No Matches
IActsToTrkConverterTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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/TrackParameters.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:
53 virtual const Trk::Surface& actsSurfaceToTrkSurface(const Acts::Surface& actsSurface) const = 0;
58 virtual const Acts::Surface& trkSurfaceToActsSurface(const Trk::Surface& atlasSurface) const = 0;
59
63 virtual std::vector<Acts::SourceLink> trkTrackToSourceLinks(const Trk::Track& track) const = 0;
68 virtual void toSourceLinks(const std::vector<const Trk::MeasurementBase*>& measSet,
69 std::vector<Acts::SourceLink>& links) const = 0;
74 virtual void toSourceLinks(const std::vector<const Trk::PrepRawData*>& prdSet,
75 std::vector<Acts::SourceLink>& links) const = 0;
80 virtual const Acts::BoundTrackParameters trkTrackParametersToActsParameters(
81 const Trk::TrackParameters& atlasParameter,
82 const Acts::GeometryContext& gctx,
83 Trk::ParticleHypothesis hypothesis = Trk::pion) const = 0;
84
89 virtual std::unique_ptr<Trk::TrackParameters>
90 actsTrackParametersToTrkParameters(const Acts::BoundTrackParameters& actsParameter,
91 const Acts::GeometryContext& gctx) const = 0;
100 using TrackFitResult_t = Acts::Result<ActsTrk::MutableTrackContainer::TrackProxy, std::error_code>;
101 virtual std::unique_ptr<Trk::Track> convertFitResult(const EventContext& ctx,
103 TrackFitResult_t& fitResult,
104 const Trk::TrackInfo::TrackFitter fitAuthor,
105 const detail::SourceLinkType slType) const = 0;
106
109 const TrackCollection& trackColl,
110 const Acts::GeometryContext& gctx) const = 0;
111
112};
113} // namespace ActsTrk
114
115#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 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 const Trk::Surface & actsSurfaceToTrkSurface(const Acts::Surface &actsSurface) const =0
Translates the parsed Acts surface into a Trk::Surface via associated detector element.
virtual std::unique_ptr< Trk::TrackParameters > actsTrackParametersToTrkParameters(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.
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