9 #ifndef TRKEXTOOLS_EXTRAPOLATOR_H
10 #define TRKEXTOOLS_EXTRAPOLATOR_H
34 #include "GaudiKernel/ToolHandle.h"
35 #include <Gaudi/Accumulators.h>
51 class DetachedTrackingVolume;
52 class TrackingGeometry;
53 class TrackParticleBase;
54 class IDynamicLayerCreator;
55 class IMultipleScatteringUpdator;
56 class IEnergyLossUpdator;
57 class AlignableTrackingVolume;
58 class ExtrapolationCache;
63 using DestSurf = std::pair<const Surface*, BoundaryCheck>;
118 Extrapolator(
const std::string&,
const std::string&,
const IInterface*);
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"};
720 #endif // TRKEXTOOLS_TRKEXTRAPOLATOR_H