#include <BeamHaloPropagator.h>
Public Member Functions | |
BeamHaloPropagator (const Propagator *aEndCapTkProp, const Propagator *aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum) | |
Defines which propagator is used inside endcap and in barrel. More... | |
BeamHaloPropagator (const Propagator &aEndCapTkProp, const Propagator &aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum) | |
Defines which propagator is used inside endcap and in barrel. More... | |
BeamHaloPropagator (const BeamHaloPropagator &) | |
Copy constructor. More... | |
BeamHaloPropagator * | clone () const override |
Virtual constructor (using copy c'tor) More... | |
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 |
template<typename STA , typename SUR > | |
TrajectoryStateOnSurface | propagate (STA const &state, SUR const &surface) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Surface &sur) const final |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Surface &) const final |
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 std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
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< TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &, const Plane &) const=0 |
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 |
void | setPropagationDirection (PropagationDirection dir) override |
~BeamHaloPropagator () 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< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Plane &sur) const |
virtual std::pair< TrajectoryStateOnSurface, double > | propagateWithPath (const TrajectoryStateOnSurface &tsos, const Cylinder &sur) const |
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 | |
bool | crossingTk (const FreeTrajectoryState &fts, const Plane &plane) const |
true if the plane and the fts z position have different sign More... | |
void | directionCheck (PropagationDirection dir) |
const Propagator * | getCrossTkPropagator () const |
return the propagator used to cross the tracker More... | |
const Propagator * | getEndCapTkPropagator () const |
return the propagator used in endcaps More... | |
const MagneticField * | magneticField () const override |
return the magneticField 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 |
Private Attributes | |
Propagator * | theCrossTkProp |
Propagator * | theEndCapTkProp |
const MagneticField * | theField |
A propagator which use different algorithm to propagate within an endcap or to cross over to the other endcap
Definition at line 24 of file BeamHaloPropagator.h.
BeamHaloPropagator::BeamHaloPropagator | ( | const Propagator * | aEndCapTkProp, |
const Propagator * | aCrossTkProp, | ||
const MagneticField * | field, | ||
PropagationDirection | dir = alongMomentum |
||
) |
Defines which propagator is used inside endcap and in barrel.
Definition at line 50 of file BeamHaloPropagator.cc.
References DeadROC_duringRun::dir, and directionCheck().
Referenced by clone().
BeamHaloPropagator::BeamHaloPropagator | ( | const Propagator & | aEndCapTkProp, |
const Propagator & | aCrossTkProp, | ||
const MagneticField * | field, | ||
PropagationDirection | dir = alongMomentum |
||
) |
Defines which propagator is used inside endcap and in barrel.
Definition at line 58 of file BeamHaloPropagator.cc.
References DeadROC_duringRun::dir, and directionCheck().
BeamHaloPropagator::BeamHaloPropagator | ( | const BeamHaloPropagator & | aProp | ) |
Copy constructor.
Definition at line 66 of file BeamHaloPropagator.cc.
References Propagator::clone(), getCrossTkPropagator(), getEndCapTkPropagator(), theCrossTkProp, and theEndCapTkProp.
|
override |
virtual destructor
Definition at line 75 of file BeamHaloPropagator.cc.
References theCrossTkProp, and theEndCapTkProp.
|
inlineoverridevirtual |
Virtual constructor (using copy c'tor)
Implements Propagator.
Definition at line 46 of file BeamHaloPropagator.h.
References BeamHaloPropagator(), getCrossTkPropagator(), getEndCapTkPropagator(), magneticField(), and Propagator::propagationDirection().
|
private |
true if the plane and the fts z position have different sign
Definition at line 80 of file BeamHaloPropagator.cc.
References LogDebug, GloballyPositioned< T >::position(), FreeTrajectoryState::position(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagateWithPath().
|
private |
Definition at line 31 of file BeamHaloPropagator.cc.
References anyDirection, DeadROC_duringRun::dir, getCrossTkPropagator(), getEndCapTkPropagator(), Propagator::propagationDirection(), Propagator::setPropagationDirection(), theCrossTkProp, and theEndCapTkProp.
Referenced by BeamHaloPropagator().
|
private |
return the propagator used to cross the tracker
Definition at line 106 of file BeamHaloPropagator.cc.
References LogDebug, and theCrossTkProp.
Referenced by BeamHaloPropagator(), clone(), directionCheck(), and propagateWithPath().
|
private |
return the propagator used in endcaps
Definition at line 101 of file BeamHaloPropagator.cc.
References LogDebug, and theEndCapTkProp.
Referenced by BeamHaloPropagator(), clone(), directionCheck(), and propagateWithPath().
|
inlineoverrideprivatevirtual |
return the magneticField
Implements Propagator.
Definition at line 75 of file BeamHaloPropagator.h.
References theField.
Referenced by clone().
|
inline |
Definition at line 50 of file Propagator.h.
|
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.
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.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
inline |
Definition at line 86 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.
|
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.
|
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.
|
inline |
Definition at line 91 of file Propagator.h.
virtual std::pair<TrajectoryStateOnSurface, double> Propagator::propagateWithPath |
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 87 of file BeamHaloPropagator.cc.
References crossingTk(), getCrossTkPropagator(), getEndCapTkPropagator(), and Propagator::propagateWithPath().
|
overrideprivatevirtual |
Implements Propagator.
Definition at line 96 of file BeamHaloPropagator.cc.
References getCrossTkPropagator(), and Propagator::propagateWithPath().
|
inlineoverridevirtual |
The propagation direction can now be set for every propagator. There is no more distinction between unidirectional and bidirectional at class level. The value "anyDiriction" for PropagationDirection provides the functionality of the ex-BidirectionalPropagator. The values "alongMomentum" and "oppositeToMomentum" provide the functionality of the ex-UnidirectionalPropagator.
Reimplemented from Propagator.
Definition at line 51 of file BeamHaloPropagator.h.
References DeadROC_duringRun::dir, Propagator::setPropagationDirection(), theCrossTkProp, and theEndCapTkProp.
|
private |
Definition at line 81 of file BeamHaloPropagator.h.
Referenced by BeamHaloPropagator(), directionCheck(), getCrossTkPropagator(), setPropagationDirection(), and ~BeamHaloPropagator().
|
private |
Definition at line 80 of file BeamHaloPropagator.h.
Referenced by BeamHaloPropagator(), directionCheck(), getEndCapTkPropagator(), setPropagationDirection(), and ~BeamHaloPropagator().
|
private |
Definition at line 82 of file BeamHaloPropagator.h.
Referenced by magneticField().