#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... | |
virtual BeamHaloPropagator * | clone () const |
Virtual constructor (using copy c'tor) More... | |
void | setPropagationDirection (PropagationDirection dir) override |
virtual | ~BeamHaloPropagator () |
Public Member Functions inherited from Propagator | |
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 |
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... | |
virtual const MagneticField * | magneticField () const |
return the magneticField More... | |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Plane &plane) const |
std::pair < TrajectoryStateOnSurface, double > | propagateWithPath (const FreeTrajectoryState &fts, const Cylinder &cylinder) const |
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 54 of file BeamHaloPropagator.cc.
References 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 61 of file BeamHaloPropagator.cc.
References directionCheck().
BeamHaloPropagator::BeamHaloPropagator | ( | const BeamHaloPropagator & | aProp | ) |
Copy constructor.
Definition at line 68 of file BeamHaloPropagator.cc.
References Propagator::clone(), getCrossTkPropagator(), getEndCapTkPropagator(), theCrossTkProp, and theEndCapTkProp.
|
virtual |
virtual destructor
Definition at line 77 of file BeamHaloPropagator.cc.
References theCrossTkProp, and theEndCapTkProp.
|
inlinevirtual |
Virtual constructor (using copy c'tor)
Implements Propagator.
Definition at line 45 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 84 of file BeamHaloPropagator.cc.
References LogDebug, GloballyPositioned< T >::position(), FreeTrajectoryState::position(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagateWithPath().
|
private |
Definition at line 34 of file BeamHaloPropagator.cc.
References anyDirection, 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 112 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 107 of file BeamHaloPropagator.cc.
References LogDebug, and theEndCapTkProp.
Referenced by BeamHaloPropagator(), clone(), directionCheck(), and propagateWithPath().
|
inlineprivatevirtual |
return the magneticField
Implements Propagator.
Definition at line 80 of file BeamHaloPropagator.h.
References theField.
Referenced by clone().
|
privatevirtual |
Implements Propagator.
Definition at line 92 of file BeamHaloPropagator.cc.
References crossingTk(), getCrossTkPropagator(), getEndCapTkPropagator(), and Propagator::propagateWithPath().
|
privatevirtual |
Implements Propagator.
Definition at line 102 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 50 of file BeamHaloPropagator.h.
References Propagator::setPropagationDirection(), theCrossTkProp, and theEndCapTkProp.
|
private |
Definition at line 86 of file BeamHaloPropagator.h.
Referenced by BeamHaloPropagator(), directionCheck(), getCrossTkPropagator(), setPropagationDirection(), and ~BeamHaloPropagator().
|
private |
Definition at line 85 of file BeamHaloPropagator.h.
Referenced by BeamHaloPropagator(), directionCheck(), getEndCapTkPropagator(), setPropagationDirection(), and ~BeamHaloPropagator().
|
private |
Definition at line 87 of file BeamHaloPropagator.h.
Referenced by magneticField().