9#ifndef TRKEXINTERFACES_IPROPAGATIONENGINE_H
10#define TRKEXINTERFACES_IPROPAGATIONENGINE_H
13#include "GaudiKernel/IAlgTool.h"
61 bool returnCurvilinear =
true)
const = 0;
74 bool returnCurvilinear =
true)
const = 0;
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 :
virtual ExtrapolationCode propagate(ExCellNeutral &enCell, const Surface &sf, PropDirection dir=alongMomentum, BoundaryCheck bcheck=true, bool returnCurvilinear=true) const =0
resolve the boundary situation - for neutral particles Possible return codes :
virtual ~IPropagationEngine()
Virtual destructor.
std::string m_sopPostfix
prefix for screen output
static const InterfaceID & interfaceID()
AlgTool interface methods.
std::string m_sopPrefix
< SCREEN output formatting (SOP) - unify amongst extrapolation engines
Abstract Base Class for tracking surfaces.
Ensure that the ATLAS eigen extensions are properly loaded.
PropDirection
PropDirection, enum for direction of the propagation.
static const InterfaceID IID_IPropagationEngine("IPropagationEngine", 1, 0)
ExtrapolationCell< TrackParameters > ExCellCharged
ExtrapolationCell< NeutralParameters > ExCellNeutral