#include <BeamHaloPropagator.h>
Private Member Functions | |
void | directionCheck (PropagationDirection dir) 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 | ( | Propagator * | aEndCapTkProp, |
Propagator * | aCrossTkProp, | ||
const MagneticField * | field, | ||
PropagationDirection | dir = alongMomentum |
||
) |
Defines which propagator is used inside endcap and in barrel.
Definition at line 53 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 60 of file BeamHaloPropagator.cc.
References directionCheck().
BeamHaloPropagator::BeamHaloPropagator | ( | const BeamHaloPropagator & | aProp | ) |
Copy constructor.
Definition at line 67 of file BeamHaloPropagator.cc.
References Propagator::clone(), getCrossTkPropagator(), getEndCapTkPropagator(), theCrossTkProp, and theEndCapTkProp.
|
virtual |
virtual destructor
Definition at line 76 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().
bool BeamHaloPropagator::crossingTk | ( | const FreeTrajectoryState & | fts, |
const Plane & | plane | ||
) | const |
true if the plane and the fts z position have different sign
Definition at line 83 of file BeamHaloPropagator.cc.
References LogDebug, GloballyPositioned< T >::position(), FreeTrajectoryState::position(), and PV3DBase< T, PVType, FrameType >::z().
Referenced by propagate(), and propagateWithPath().
|
private |
Definition at line 34 of file BeamHaloPropagator.cc.
References anyDirection, dir, getCrossTkPropagator(), getEndCapTkPropagator(), Propagator::propagationDirection(), and Propagator::setPropagationDirection().
Referenced by BeamHaloPropagator().
Propagator * BeamHaloPropagator::getCrossTkPropagator | ( | ) | const |
return the propagator used to cross the tracker
Definition at line 130 of file BeamHaloPropagator.cc.
References LogDebug, and theCrossTkProp.
Referenced by BeamHaloPropagator(), clone(), directionCheck(), propagate(), propagateWithPath(), and setPropagationDirection().
Propagator * BeamHaloPropagator::getEndCapTkPropagator | ( | ) | const |
return the propagator used in endcaps
Definition at line 125 of file BeamHaloPropagator.cc.
References LogDebug, and theEndCapTkProp.
Referenced by BeamHaloPropagator(), clone(), directionCheck(), propagate(), propagateWithPath(), and setPropagationDirection().
|
inlinevirtual |
return the magneticField
Implements Propagator.
Definition at line 124 of file BeamHaloPropagator.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 88 of file BeamHaloPropagator.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 63 of file BeamHaloPropagator.h.
References Propagator::propagate().
|
virtual |
Implements Propagator.
Definition at line 94 of file BeamHaloPropagator.cc.
References crossingTk(), getCrossTkPropagator(), getEndCapTkPropagator(), and Propagator::propagate().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 71 of file BeamHaloPropagator.h.
References Propagator::propagate().
|
virtual |
Implements Propagator.
Definition at line 104 of file BeamHaloPropagator.cc.
References getCrossTkPropagator(), and Propagator::propagate().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 79 of file BeamHaloPropagator.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 85 of file BeamHaloPropagator.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 91 of file BeamHaloPropagator.h.
References Propagator::propagateWithPath().
|
virtual |
Implements Propagator.
Definition at line 110 of file BeamHaloPropagator.cc.
References crossingTk(), getCrossTkPropagator(), getEndCapTkPropagator(), and Propagator::propagateWithPath().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 101 of file BeamHaloPropagator.h.
References Propagator::propagateWithPath().
|
virtual |
Implements Propagator.
Definition at line 120 of file BeamHaloPropagator.cc.
References getCrossTkPropagator(), and Propagator::propagateWithPath().
|
inlinevirtual |
Reimplemented from Propagator.
Definition at line 111 of file BeamHaloPropagator.h.
References Propagator::propagateWithPath().
|
inlinevirtual |
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 getCrossTkPropagator(), getEndCapTkPropagator(), and Propagator::setPropagationDirection().
|
mutableprivate |
Definition at line 130 of file BeamHaloPropagator.h.
Referenced by BeamHaloPropagator(), getCrossTkPropagator(), and ~BeamHaloPropagator().
|
mutableprivate |
Definition at line 129 of file BeamHaloPropagator.h.
Referenced by BeamHaloPropagator(), getEndCapTkPropagator(), and ~BeamHaloPropagator().
|
private |
Definition at line 131 of file BeamHaloPropagator.h.
Referenced by magneticField().