Go to the documentation of this file.
55 :
Propagator(aProp.propagationDirection()), theTkProp(nullptr), theGenProp(nullptr) {
90 const Plane& plane)
const {
108 const Plane& plane)
const {
142 GlobalPoint gp(cylin.radius(), 0., (cylin.bounds().length()) / 2.);
static float halfLength()
void initTkVolume(float epsilon)
build the tracker volume
GlobalPoint position() const
~SmartPropagator() override
FreeTrajectoryState const * freeState(bool withErrors=true) const
const Propagator * getGenPropagator() const
return the propagator used outside tracker
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
const Propagator * getTkPropagator() const
return the propagator used inside tracker
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override
static CylinderPointer build(const PositionType &pos, const RotationType &rot, Scalar radius, Bounds *bounds=nullptr)
SmartPropagator(const Propagator *aTkProp, const Propagator *aGenProp, const MagneticField *field, PropagationDirection dir=alongMomentum, float epsilon=5)
Defines which propagator is used inside Tk and which outside.
ReferenceCountingPointer< Cylinder > theTkVolume
const PositionType & position() const
bool insideTkVol(const FreeTrajectoryState &fts) const
true if a fts is inside tracker volume
virtual Propagator * clone() const =0
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final