38 edm::LogError(
"BeamHaloPropagator")<<
"composite propagator set with inconsistent direction components\n"
40 <<
"\n to be set on: "<<
dir;
45 edm::LogError(
"BeamHaloPropagator")<<
"composite propagator set with inconsistent direction components\n"
47 <<
"\n to be set on: "<<
dir;
55 Propagator(dir), theEndCapTkProp(aEndCapTkProp->
clone()), theCrossTkProp(aCrossTkProp->
clone()), theField(field) {
62 Propagator(dir), theEndCapTkProp(aEndCapTkProp.
clone()), theCrossTkProp(aCrossTkProp.
clone()), theField(field) {
68 Propagator(aProp.propagationDirection()), theEndCapTkProp(0), theCrossTkProp(0) {
85 <<
"and hence "<<((fts.
position().
z()*plane.
position().
z()<0)?
"crossing":
"not crossing");
95 const Plane& plane)
const {
109 std::pair<TrajectoryStateOnSurface,double>
111 const Plane& plane)
const
119 std::pair<TrajectoryStateOnSurface,double>
126 LogDebug(
"BeamHaloPropagator")<<
"using the EndCap propagator";
131 LogDebug(
"BeamHaloPropagator")<<
"using the Crossing propagator";
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Surface &surface) const
Propagator * theCrossTkProp
Propagator * getEndCapTkPropagator() const
return the propagator used in endcaps
virtual PropagationDirection propagationDirection() const
virtual Propagator * clone() const =0
void directionCheck(PropagationDirection dir) const
Propagator * getCrossTkPropagator() const
return the propagator used to cross the tracker
virtual ~BeamHaloPropagator()
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
TrajectoryStateOnSurface propagate(const FreeTrajectoryState &fts, const Surface &surface) const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
GlobalPoint position() const
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
virtual void setPropagationDirection(PropagationDirection dir) const
const PositionType & position() const
Propagator * theEndCapTkProp
BeamHaloPropagator(Propagator *aEndCapTkProp, Propagator *aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum)
Defines which propagator is used inside endcap and in barrel.