35 edm::LogError(
"BeamHaloPropagator") <<
"composite propagator set with inconsistent direction components\n"
37 <<
"\n to be set on: " <<
dir;
43 edm::LogError(
"BeamHaloPropagator") <<
"composite propagator set with inconsistent direction components\n"
45 <<
"\n to be set on: " <<
dir;
54 :
Propagator(dir), theEndCapTkProp(aEndCapTkProp->
clone()), theCrossTkProp(aCrossTkProp->
clone()), theField(field) {
62 :
Propagator(dir), theEndCapTkProp(aEndCapTkProp.
clone()), theCrossTkProp(aCrossTkProp.
clone()), theField(field) {
67 :
Propagator(aProp.propagationDirection()), theEndCapTkProp(nullptr), theCrossTkProp(nullptr) {
88 const Plane& plane)
const {
102 LogDebug(
"BeamHaloPropagator") <<
"using the EndCap propagator";
107 LogDebug(
"BeamHaloPropagator") <<
"using the Crossing propagator";
virtual void setPropagationDirection(PropagationDirection dir)
Propagator * theCrossTkProp
const Propagator * getCrossTkPropagator() const
return the propagator used to cross the tracker
BeamHaloPropagator(const Propagator *aEndCapTkProp, const Propagator *aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum)
Defines which propagator is used inside endcap and in barrel.
virtual Propagator * clone() const =0
virtual PropagationDirection propagationDirection() const final
void directionCheck(PropagationDirection dir)
Log< level::Error, false > LogError
const Propagator * getEndCapTkPropagator() const
return the propagator used in endcaps
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
~BeamHaloPropagator() override
GlobalPoint position() const
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
const PositionType & position() const
Propagator * theEndCapTkProp
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override