9#ifndef TRKEXTOOLS_EXTRAPOLATOR_H
10#define TRKEXTOOLS_EXTRAPOLATOR_H
34#include "GaudiKernel/ToolHandle.h"
35#include <Gaudi/Accumulators.h>
63using DestSurf = std::pair<const Surface*, BoundaryCheck>;
118 Extrapolator(
const std::string&,
const std::string&,
const IInterface*);
125 virtual StatusCode
finalize()
override;
132 const EventContext& ctx,
141 virtual std::unique_ptr<NeutralParameters>
extrapolate(
150 const EventContext& ctx,
164 const EventContext& ctx,
175 const EventContext& ctx,
190 const EventContext& ctx,
202 const EventContext& ctx,
219 const EventContext& ctx,
223 int destination = 3)
const override final;
227 const EventContext& ctx,
237 const EventContext& ctx,
253 const EventContext& ctx,
269 const EventContext& ctx,
285 const EventContext& ctx,
298 const EventContext& ctx,
311 const EventContext& ctx,
322 const EventContext& ctx,
335 const EventContext& ctx,
347 const EventContext& ctx,
359 const EventContext& ctx,
409 const EventContext& ctx,
421 const EventContext& ctx,
433 const EventContext& ctx,
443 const EventContext& ctx,
466 const EventContext& ctx,
480 const EventContext& ctx,
496 const EventContext& ctx,
514 const EventContext& ctx,
524 bool perpendicularCheck = true)
const;
537 bool startingLayer = false)
const;
546 const EventContext& ctx,
602 "Trk::STEP_Propagator/AtlasSTEP_Propagator"
607 "Trk::Navigator/AtlasNavigator" };
611 "MaterialEffectsUpdators",
617 "MultipleScatteringUpdater",
618 "Trk::MultipleScatteringUpdator/AtlasMultipleScatteringUpdator"
623 "Trk::EnergyLossUpdator/AtlasEnergyLossUpdator" };
635 "configuration of subPropagators"};
637 "configuration of subupdaters"};
642 "boolean to switch on/off material effects"};
644 {
this,
"StopWithNavigationBreak",
false,
645 "return 0 if navigation breaks - for validation reasons"};
647 "return 0 if update kills the trajectory"};
649 "skip the initial post-Update at the layer [Fatras conversion mode]"};
656 {
this,
"InitialLayerAttempts", 3,
657 "allowed layer intersection attempts at the start of a volume"};
659 {
this,
"SuccessiveLayerAttempts", 1,
660 "layer intersection attemps after one layer has been hit sucessfully"};
662 {
this,
"MaximalMethodSequence", 2000};
664 "surface & volume tolerance"};
667 "use approximative MS inert material"};
669 {
this,
"UseDenseVolumeDescription",
true,
670 "use dense volume description when available in ID/Calo"};
677 BooleanProperty
m_fastField{
this,
"MagneticFieldProperties",
false};
686 {
this,
"NavigationStatisticsOutput",
false,
687 "steer the output for the navigation statistics"};
689 {
this,
"DetailedNavigationOutput",
false,
690 "steer the output for the navigation break details"};
Mixin class to perform additional checks on a component.
Base Class for a navigation object (active) in the Calo realm.
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
Base Class for a navigation object (active/passive) in the Tracking realm.
Interface class IDynamicLayerCreator It inherits from IAlgTool.
Interface class IEnergyLossUpdator.
Interface class for the updater AlgTool, it inherits from IAlgTool.
Interface class IMultipleScatteringUpdator.
Interface class IPropagators It inherits from IAlgTool.
Base Class for a Detector Layer in the Tracking realm.
magnetic field properties to steer the behavior of the extrapolation
represents the full description of deflection and e-loss of a track in material.
Abstract Base Class for tracking surfaces.
represents the track state (measurement, material, fit parameters and quality) at a surface.
The TrackingGeometry class is the owner of the constructed TrackingVolumes.
Full Volume description used in Tracking, it inherits from Volume to get the geometrical structure,...
Base class for all volumes inside the tracking realm, it defines the interface for inherited Volume c...
Definition of ATLAS Math & Geometry primitives (Amg)
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
ParametersBase< NeutralParametersDim, Neutral > NeutralParameters
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
MaterialUpdateMode
This is a steering enum to force the material update it can be: (1) addNoise (-1) removeNoise Second ...
std::vector< std::unique_ptr< Trk::TrackParameters > > TrackParametersUVector
std::pair< const Surface *, BoundaryCheck > DestSurf
typedef for input surfaces, boundary check
ParametersBase< TrackParametersDim, Charged > TrackParameters