#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... | |
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 |
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 std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0 |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
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< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Cylinder &) const=0 |
virtual std::pair< FreeTrajectoryState, double > | propagateWithPath (const FreeTrajectoryState &ftsStart, const GlobalPoint &pDest) const |
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... | |
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 34 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 36 of file SmartPropagator.cc.
References geometryDiff::epsilon, and 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 45 of file SmartPropagator.cc.
References geometryDiff::epsilon, and initTkVolume().
SmartPropagator::SmartPropagator | ( | const SmartPropagator & | aProp | ) |
Copy constructor.
Definition at line 54 of file SmartPropagator.cc.
References Propagator::clone(), getGenPropagator(), getTkPropagator(), theGenProp, and theTkProp.
|
override |
virtual destructor
Definition at line 67 of file SmartPropagator.cc.
References theGenProp, and theTkProp.
|
inlineoverridevirtual |
Virtual constructor (using copy c'tor)
Implements Propagator.
Definition at line 58 of file SmartPropagator.h.
References getGenPropagator(), getTkPropagator(), magneticField(), and SmartPropagator().
const Propagator * SmartPropagator::getGenPropagator | ( | ) | const |
return the propagator used outside tracker
Definition at line 157 of file SmartPropagator.cc.
References theGenProp.
Referenced by clone(), propagateWithPath(), and SmartPropagator().
const Propagator * SmartPropagator::getTkPropagator | ( | ) | const |
return the propagator used inside tracker
Definition at line 155 of file SmartPropagator.cc.
References theTkProp.
Referenced by clone(), propagateWithPath(), and SmartPropagator().
|
private |
build the tracker volume
Definition at line 73 of file SmartPropagator.cc.
References Cylinder::build(), geometryDiff::epsilon, TrackerBounds::halfLength(), TrackerBounds::radius(), CosmicsPD_Skims::radius, makeMuonMisalignmentScenario::rot, and theTkVolume.
Referenced by SmartPropagator().
bool SmartPropagator::insideTkVol | ( | const FreeTrajectoryState & | fts | ) | const |
true if a fts is inside tracker volume
Definition at line 125 of file SmartPropagator.cc.
References runTauDisplay::gp, TrackerBounds::halfLength(), FreeTrajectoryState::position(), and TrackerBounds::radius().
Referenced by propagateWithPath().
bool SmartPropagator::insideTkVol | ( | const Surface & | surface | ) | const |
true if a surface is inside tracker volume
Definition at line 133 of file SmartPropagator.cc.
References runTauDisplay::gp, TrackerBounds::halfLength(), GloballyPositioned< T >::position(), and TrackerBounds::radius().
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 148 of file SmartPropagator.cc.
References runTauDisplay::gp, TrackerBounds::halfLength(), GloballyPositioned< T >::position(), and TrackerBounds::radius().
|
inlineoverridevirtual |
return the magneticField
Implements Propagator.
Definition at line 100 of file SmartPropagator.h.
References theField.
Referenced by clone().
|
inlinefinal |
Definition at line 109 of file Propagator.h.
|
inlinefinal |
Definition at line 112 of file Propagator.h.
|
inlinefinal |
Definition at line 117 of file Propagator.h.
|
inline |
Definition at line 50 of file Propagator.h.
Referenced by GlobalTrackerMuonAlignment::analyzeTrackTrack(), and GlobalTrackerMuonAlignment::analyzeTrackTrajectory().
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
inline |
Definition at line 86 of file Propagator.h.
|
final |
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.
Definition at line 10 of file Propagator.cc.
|
final |
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.
Definition at line 26 of file Propagator.cc.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath |
Propagate to PCA to a line (given by 2 points) given a starting point.
Definition at line 47 of file Propagator.cc.
|
inline |
Definition at line 91 of file Propagator.h.
std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath |
implemented by Stepping Helix Propagate to PCA to point given a starting point
Definition at line 42 of file Propagator.cc.
std::pair< FreeTrajectoryState, double > Propagator::propagateWithPath |
Propagate to PCA to a line (given by beamSpot position and slope) given a starting point.
Definition at line 53 of file Propagator.cc.
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 89 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 98 of file SmartPropagator.cc.
References getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
overrideprivatevirtual |
Reimplemented from Propagator.
Definition at line 107 of file SmartPropagator.cc.
References TrajectoryStateOnSurface::freeState(), getGenPropagator(), getTkPropagator(), insideTkVol(), and Propagator::propagateWithPath().
|
overrideprivatevirtual |
Reimplemented from Propagator.
Definition at line 116 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 63 of file SmartPropagator.h.
References DeadROC_duringRun::dir, Propagator::setPropagationDirection(), theGenProp, and theTkProp.
|
private |
Definition at line 108 of file SmartPropagator.h.
Referenced by magneticField().
|
private |
Definition at line 107 of file SmartPropagator.h.
Referenced by getGenPropagator(), setPropagationDirection(), SmartPropagator(), and ~SmartPropagator().
|
private |
Definition at line 106 of file SmartPropagator.h.
Referenced by getTkPropagator(), setPropagationDirection(), SmartPropagator(), and ~SmartPropagator().
|
private |
Definition at line 109 of file SmartPropagator.h.
Referenced by initTkVolume().