#include <SmartPropagator.h>
Public Member Functions | |
SmartPropagator * | clone () const override |
Virtual constructor (using copy c'tor) More... | |
const Propagator * | getGenPropagator () const |
return the propagator used outside tracker More... | |
const 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 Cylinder &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... | |
const MagneticField * | magneticField () const override |
return the magneticField More... | |
void | setPropagationDirection (PropagationDirection dir) override |
setting the direction fo both components 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 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... | |
~SmartPropagator () override | |
Public Member Functions inherited from Propagator | |
template<typename STA , typename SUR > | |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const final |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const final |
virtual FreeTrajectoryState | propagate (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest1, const GlobalPoint &pDest2) const |
Propagate to PCA to a line (given by 2 points) given a starting point. More... | |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const reco::BeamSpot &beamSpot) const |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point. More... | |
virtual PropagationDirection | propagationDirection () const final |
Propagator (PropagationDirection dir=alongMomentum) | |
virtual bool | setMaxDirectionChange (float phiMax) |
virtual | ~Propagator () |
Private Member Functions | |
void | initTkVolume (float epsilon) |
build the tracker volume More... | |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Plane &plane) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Cylinder &cylinder) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const override |
std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const override |
Private Attributes | |
const MagneticField * | theField |
Propagator * | theGenProp |
Propagator * | theTkProp |
ReferenceCountingPointer< Cylinder > | theTkVolume |
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 35 of file SmartPropagator.h.
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 38 of file SmartPropagator.cc.
References initTkVolume().
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 47 of file SmartPropagator.cc.
References initTkVolume().
SmartPropagator::SmartPropagator | ( | const SmartPropagator & | aProp | ) |
Copy constructor.
Definition at line 56 of file SmartPropagator.cc.
References Propagator::clone(), getGenPropagator(), getTkPropagator(), theGenProp, and theTkProp.
|
override |
virtual destructor
Definition at line 70 of file SmartPropagator.cc.
References theGenProp, and theTkProp.
|
inlineoverridevirtual |
Virtual constructor (using copy c'tor)
Implements Propagator.
Definition at line 55 of file SmartPropagator.h.
References getGenPropagator(), getTkPropagator(), magneticField(), and SmartPropagator().
const Propagator * SmartPropagator::getGenPropagator | ( | ) | const |
return the propagator used outside tracker
Definition at line 195 of file SmartPropagator.cc.
References theGenProp.
Referenced by clone(), propagateWithPath(), setPropagationDirection(), and SmartPropagator().
const Propagator * SmartPropagator::getTkPropagator | ( | ) | const |
return the propagator used inside tracker
Definition at line 188 of file SmartPropagator.cc.
References theTkProp.
Referenced by clone(), propagateWithPath(), setPropagationDirection(), and SmartPropagator().
|
private |
build the tracker volume
Definition at line 79 of file SmartPropagator.cc.
References Cylinder::build(), geometryDiff::epsilon, TrackerBounds::halfLength(), TCMET_cfi::radius, TrackerBounds::radius(), makeMuonMisalignmentScenario::rot, and theTkVolume.
Referenced by magneticField(), and SmartPropagator().
bool SmartPropagator::insideTkVol | ( | const FreeTrajectoryState & | fts | ) | const |
true if a fts is inside tracker volume
Definition at line 144 of file SmartPropagator.cc.
References runTauDisplay::gp, TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), FreeTrajectoryState::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by insideTkVol(), propagateWithPath(), and setPropagationDirection().
bool SmartPropagator::insideTkVol | ( | const Surface & | surface | ) | const |
true if a surface is inside tracker volume
Definition at line 154 of file SmartPropagator.cc.
References runTauDisplay::gp, TrackerBounds::halfLength(), insideTkVol(), PV3DBase< T, PVType, FrameType >::perp(), GloballyPositioned< T >::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().
bool SmartPropagator::insideTkVol | ( | const Cylinder & | cylin | ) | const |
true if a cylinder is inside tracker volume
bool SmartPropagator::insideTkVol | ( | const Plane & | plane | ) | const |
true if a plane is inside tracker volume
Definition at line 177 of file SmartPropagator.cc.
References runTauDisplay::gp, TrackerBounds::halfLength(), PV3DBase< T, PVType, FrameType >::perp(), GloballyPositioned< T >::position(), TrackerBounds::radius(), and PV3DBase< T, PVType, FrameType >::z().
|
inlineoverridevirtual |
return the magneticField
Implements Propagator.
Definition at line 105 of file SmartPropagator.h.
References geometryDiff::epsilon, initTkVolume(), and theField.
Referenced by clone().
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 100 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
Referenced by setPropagationDirection().
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 111 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
overrideprivatevirtual |
Reimplemented from Propagator.
Definition at line 123 of file SmartPropagator.cc.
References TrajectoryStateOnSurface::freeState(), getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
overrideprivatevirtual |
Reimplemented from Propagator.
Definition at line 134 of file SmartPropagator.cc.
References TrajectoryStateOnSurface::freeState(), getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
inlineoverridevirtual |
setting the direction fo both components
Reimplemented from Propagator.
Definition at line 60 of file SmartPropagator.h.
References getGenPropagator(), getTkPropagator(), insideTkVol(), Propagator::propagate(), Propagator::propagateWithPath(), propagateWithPath(), Propagator::setPropagationDirection(), theGenProp, and theTkProp.
|
private |
Definition at line 113 of file SmartPropagator.h.
Referenced by magneticField().
|
private |
Definition at line 112 of file SmartPropagator.h.
Referenced by getGenPropagator(), setPropagationDirection(), SmartPropagator(), and ~SmartPropagator().
|
private |
Definition at line 111 of file SmartPropagator.h.
Referenced by getTkPropagator(), setPropagationDirection(), SmartPropagator(), and ~SmartPropagator().
|
private |
Definition at line 114 of file SmartPropagator.h.
Referenced by initTkVolume().