#include <SmartPropagator.h>
Public Member Functions | |
virtual SmartPropagator * | clone () const |
Virtual constructor (using copy c'tor) More... | |
Propagator * | getGenPropagator () const |
return the propagator used outside tracker More... | |
Propagator * | getTkPropagator () const |
return the propagator used inside tracker More... | |
bool | insideTkVol (const FreeTrajectoryState &fts) const |
true if a fts is inside tracker volume More... | |
bool | insideTkVol (const Surface &surface) const |
true if a surface is inside tracker volume More... | |
bool | insideTkVol (const BoundCylinder &cylin) const |
true if a cylinder is inside tracker volume More... | |
bool | insideTkVol (const Plane &plane) const |
true if a plane is inside tracker volume More... | |
virtual const MagneticField * | magneticField () const |
return the magneticField More... | |
TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &fts, const Surface &surface) const |
TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &tsos, const Surface &surface) const |
TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &fts, const Plane &plane) const |
TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &tsos, const Plane &plane) const |
TrajectoryStateOnSurface | propagate (const FreeTrajectoryState &fts, const Cylinder &cylinder) const |
TrajectoryStateOnSurface | propagate (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Surface &surface) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &surface) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Plane &plane) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &plane) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Cylinder &cylinder) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const |
void | setPropagationDirection (PropagationDirection dir) const |
setting the direction fo both components More... | |
SmartPropagator (Propagator *aTkProp, Propagator *aGenProp, const MagneticField *field, PropagationDirection dir=alongMomentum, float epsilon=5) | |
Defines which propagator is used inside Tk and which outside. More... | |
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. More... | |
SmartPropagator (const SmartPropagator &) | |
Copy constructor. More... | |
virtual | ~SmartPropagator () |
Public Member Functions inherited from Propagator | |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &, const reco::BeamSpot &) const |
virtual std::pair < FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &, const GlobalPoint &, const GlobalPoint &) const |
virtual PropagationDirection | propagationDirection () const |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual bool | setMaxDirectionChange (float phiMax) |
virtual | ~Propagator () |
Static Private Member Functions | |
static void | initTkVolume (float epsilon) |
build the tracker volume More... | |
static ReferenceCountingPointer < BoundCylinder > & | theTkVolume () |
Private Attributes | |
const MagneticField * | theField |
Propagator * | theGenProp |
Propagator * | theTkProp |
A propagator which use different algorithm to propagate inside or outside tracker
Modification: 26-Jun-2002 SL: theTkVolume is now a static ReferenceCountingPointer<BoundCylinder> 28-Aug-2002 SL: added methods to unhide Propagator methods 29-Oct-2002 SL: fixed clone and copy constructor, and BoundCylinder are build with CylinderBuilder to enforce the referencePointer
Definition at line 37 of file SmartPropagator.h.
SmartPropagator::SmartPropagator | ( | Propagator * | aTkProp, |
Propagator * | aGenProp, | ||
const MagneticField * | field, | ||
PropagationDirection | dir = alongMomentum , |
||
float | epsilon = 5 |
||
) |
Defines which propagator is used inside Tk and which outside.
Definition at line 44 of file SmartPropagator.cc.
References initTkVolume(), and theTkVolume().
Referenced by clone().
SmartPropagator::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.
Definition at line 53 of file SmartPropagator.cc.
References initTkVolume(), and theTkVolume().
SmartPropagator::SmartPropagator | ( | const SmartPropagator & | aProp | ) |
Copy constructor.
Definition at line 62 of file SmartPropagator.cc.
References Propagator::clone(), getGenPropagator(), getTkPropagator(), theGenProp, and theTkProp.
|
virtual |
virtual destructor
Definition at line 76 of file SmartPropagator.cc.
References theGenProp, and theTkProp.
|
inlinevirtual |
Virtual constructor (using copy c'tor)
Implements Propagator.
Definition at line 57 of file SmartPropagator.h.
References getGenPropagator(), getTkPropagator(), magneticField(), and SmartPropagator().
Propagator * SmartPropagator::getGenPropagator | ( | ) | const |
return the propagator used outside tracker
Definition at line 205 of file SmartPropagator.cc.
References theGenProp.
Referenced by clone(), propagate(), propagateWithPath(), setPropagationDirection(), and SmartPropagator().
Propagator * SmartPropagator::getTkPropagator | ( | ) | const |
return the propagator used inside tracker
Definition at line 198 of file SmartPropagator.cc.
References theTkProp.
Referenced by clone(), propagate(), propagateWithPath(), setPropagationDirection(), and SmartPropagator().
|
staticprivate |
build the tracker volume
Definition at line 85 of file SmartPropagator.cc.
References BoundCylinder::build(), epsilon, TrackerBounds::halfLength(), pos, TrackerBounds::radius(), CosmicsPD_Skims::radius, and theTkVolume().
Referenced by SmartPropagator().
bool SmartPropagator::insideTkVol | ( | const FreeTrajectoryState & | fts | ) | const |
true if a fts is inside tracker volume
Definition at line 154 of file SmartPropagator.cc.
References TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), FreeTrajectoryState::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagate(), and propagateWithPath().
bool SmartPropagator::insideTkVol | ( | const Surface & | surface | ) | const |
true if a surface is inside tracker volume
Definition at line 164 of file SmartPropagator.cc.
References TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), GloballyPositioned< T >::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().
bool SmartPropagator::insideTkVol | ( | const BoundCylinder & | cylin | ) | const |
true if a cylinder is inside tracker volume
Definition at line 176 of file SmartPropagator.cc.
References BoundSurface::bounds(), TrackerBounds::halfLength(), Bounds::length(), PV3DBase< T, PVType, FrameType >::perp(), TrackerBounds::radius(), Cylinder::radius(), and PV3DBase< T, PVType, FrameType >::z().
bool SmartPropagator::insideTkVol | ( | const Plane & | plane | ) | const |
true if a plane is inside tracker volume
Definition at line 187 of file SmartPropagator.cc.
References TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), GloballyPositioned< T >::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().
|
inlinevirtual |
return the magneticField
Implements Propagator.
Definition at line 141 of file SmartPropagator.h.
References theField.
Referenced by clone().
|
virtual |
Propagate from a free state (e.g. position and momentum in in global cartesian coordinates) to a surface.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.
Reimplemented from Propagator.
Definition at line 104 of file SmartPropagator.cc.
References Propagator::propagate().
|
inlinevirtual |
The following three methods are equivalent to the corresponding methods above, but if the starting state is a TrajectoryStateOnSurface, it's better to use it as such rather than use just the FreeTrajectoryState part. It may help some concrete propagators.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.
Reimplemented from Propagator.
Definition at line 74 of file SmartPropagator.h.
References Propagator::propagate().
|
virtual |
Implements Propagator.
Definition at line 110 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagate().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 82 of file SmartPropagator.h.
References Propagator::propagate().
|
virtual |
Implements Propagator.
Definition at line 122 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagate().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 90 of file SmartPropagator.h.
References Propagator::propagate().
|
inlinevirtual |
The methods propagateWithPath() are identical to the corresponding methods propagate() in what concerns the resulting TrajectoryStateOnSurface, but they provide in addition the exact path length along the trajectory.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.
Reimplemented from Propagator.
Definition at line 96 of file SmartPropagator.h.
References Propagator::propagateWithPath().
|
inlinevirtual |
The following three methods are equivalent to the corresponding methods above, but if the starting state is a TrajectoryStateOnSurface, it's better to use it as such rather than use just the FreeTrajectoryState part. It may help some concrete propagators.Only use the generic method if the surface type (plane or cylinder) is not known at the calling point.
Reimplemented from Propagator.
Definition at line 102 of file SmartPropagator.h.
References Propagator::propagateWithPath().
|
virtual |
Implements Propagator.
Definition at line 133 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 112 of file SmartPropagator.h.
References Propagator::propagateWithPath().
|
virtual |
Implements Propagator.
Definition at line 144 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 122 of file SmartPropagator.h.
References Propagator::propagateWithPath().
|
inlinevirtual |
setting the direction fo both components
Reimplemented from Propagator.
Definition at line 62 of file SmartPropagator.h.
References getGenPropagator(), getTkPropagator(), and Propagator::setPropagationDirection().
|
staticprivate |
Definition at line 36 of file SmartPropagator.cc.
Referenced by initTkVolume(), and SmartPropagator().
|
private |
Definition at line 149 of file SmartPropagator.h.
Referenced by magneticField().
|
mutableprivate |
Definition at line 148 of file SmartPropagator.h.
Referenced by getGenPropagator(), SmartPropagator(), and ~SmartPropagator().
|
mutableprivate |
Definition at line 147 of file SmartPropagator.h.
Referenced by getTkPropagator(), SmartPropagator(), and ~SmartPropagator().