ATLAS Offline Software
Loading...
Searching...
No Matches
PropagationEngine.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6// PropagationEngine.h, (c) ATLAS Detector software
8
9#ifndef TRKEXENGINE_PROPAGATIONENGINE_H
10#define TRKEXENGINE_PROPAGATIONENGINE_H
11
12// Gaudi
14#include "GaudiKernel/ToolHandle.h"
15// Trk
23
24namespace Trk {
25
26 class Surface;
27
36 class PropagationEngine : public AthAlgTool, virtual public IPropagationEngine {
37 public:
38
40 PropagationEngine(const std::string&,const std::string&,const IInterface*);
41
44
46 StatusCode initialize();
47
49 StatusCode finalize();
50
53
56 const Surface& sf,
58 BoundaryCheck bcheck = true,
59 bool returnCurvilinear = true) const;
60
63 const Surface& sf,
65 BoundaryCheck bcheck = true,
66 bool returnCurvilinear = true) const;
67
68 protected:
69 ToolHandle<IPropagator> m_propagator{this, "Propagator", "Trk::RungeKuttaPropagator/AtlasRungeKuttaPropagator"};
70 DoubleProperty m_pathLimitTolerance{this, "PathLimitTolerance", 0.01};
71 StringProperty m_sopPrefix_prop{this, "OutputPrefix", ""};
72 StringProperty m_sopPostfix_prop{this, "OutputPostfix", ""};
73
74 };
75
76
77} // end of namespace
78
79#endif // TRKEXINTERFACES_INAVIGATIONENGINE_H
80
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
The BoundaryCheck class allows to steer the way surface boundaries are used for inside/outside checks...
A propagation engine wrapping the propagator algtool it respects the path limit to stop particles if ...
virtual ExtrapolationCode propagate(ExCellCharged &ecCell, const Surface &sf, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true, bool returnCurvilinear=true) const =0
resolve the boundary situation - for charged particles Possible return codes :
~PropagationEngine()
Destructor.
StatusCode initialize()
AlgTool initialize method.
DoubleProperty m_pathLimitTolerance
PropagationEngine(const std::string &, const std::string &, const IInterface *)
Constructor.
StringProperty m_sopPostfix_prop
ToolHandle< IPropagator > m_propagator
StatusCode finalize()
AlgTool finalize method.
StringProperty m_sopPrefix_prop
virtual ExtrapolationCode propagate(ExCellCharged &ecCell, const Surface &sf, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true, bool returnCurvilinear=true) const
resolve the boundary situation - for charged particles
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
@ alongMomentum
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral