64 virtual Acts::Result<PropagationOutput>
66 const Acts::BoundTrackParameters& startParameters,
67 const Acts::Direction navDir,
68 const double pathLimit)
const override final;
71 virtual Acts::Result<Acts::BoundTrackParameters>
73 const Acts::BoundTrackParameters& startParameters,
74 const Acts::Direction navDir,
75 const double pathLimit)
const override final;
78 virtual Acts::Result<PropagationOutput>
80 const Acts::BoundTrackParameters& startParameters,
81 const Acts::Surface& target,
82 const Acts::Direction navDir,
83 const double pathLimit)
const override;
86 virtual Acts::Result<Acts::BoundTrackParameters>
88 const Acts::BoundTrackParameters& startParameters,
89 const Acts::Surface& target,
90 const Acts::Direction navDir,
91 const double pathLimit)
const override;
94 virtual Acts::Result<Acts::BoundTrackParameters>
propagate(
const EventContext& ctx,
95 const Acts::BoundTrackParameters& startParameters,
96 const Acts::TrackingVolume& target,
97 const VolumeAbort stopVolumeFlag,
98 const Acts::Direction navDir,
99 const double pathLimit)
const override;
102 const Acts::BoundTrackParameters& startParameters,
103 const SurfaceRecordOptions& recordOpts)
const override;
108 std::unique_ptr<const ActsExtrapolationDetail::VariantPropagator>
m_varProp;
109 std::unique_ptr<const Acts::Logger>
m_logger{
nullptr};
115 Gaudi::Property<std::string>
m_fieldMode{
this,
"FieldMode",
"ATLAS",
"Either ATLAS or Constant or StraightLine"};
116 Gaudi::Property<std::vector<double>>
m_constantFieldVector{
this,
"ConstantFieldVector", {0, 0, 0},
"Constant field value to use if FieldMode == Constant"};
118 Gaudi::Property<double>
m_ptLoopers{
this,
"PtLoopers", 300,
"PT loop protection threshold. Will be converted to Acts MeV unit"};
119 Gaudi::Property<double>
m_maxStepSize{
this,
"MaxStepSize", 10,
"Max step size in Acts m unit"};
120 Gaudi::Property<unsigned>
m_maxStep{
this,
"MaxSteps", 100000,
"Max number of steps"};
121 Gaudi::Property<unsigned>
m_maxSurfSkip{
this,
"MaxSurfaceSkip" ,100,
"Maximum number of surfaces to be tried by the navigator"};
122 Gaudi::Property<double>
m_surfTolerance{
this,
"OnSurfaceTolerance", Acts::s_onSurfaceTolerance,
123 "Tolerance to consider track parameters on surface"};
125 Gaudi::Property<bool>
m_interactionMultiScatering{
this,
"InteractionMultiScatering",
false,
"Whether to consider multiple scattering in the interactor"};
126 Gaudi::Property<bool>
m_interactionEloss{
this,
"InteractionEloss",
false,
"Whether to consider energy loss in the interactor"};
127 Gaudi::Property<bool>
m_interactionRecord{
this,
"InteractionRecord",
false,
"Whether to record all material interactions"};
129 template<
typename OptionsType>
132 const Acts::MagneticFieldContext& mctx,
133 const Acts::BoundTrackParameters& startParameters,
134 Acts::Direction navDir,
135 double pathLimit)
const;
Utility class to handle the three contexts neeeded in an ACTS reconstruction job 1) GeometryContext -...