CMS 3D CMS Logo

BeamHaloPropagator.h
Go to the documentation of this file.
1 #ifndef GeomPropagators_BeamHaloPropagator_H
2 #define GeomPropagators_BeamHaloPropagator_H
3 
14 /* Collaborating Class Declarations */
21 
22 /* Class BeamHaloPropagator Interface */
23 
24 class BeamHaloPropagator final : public Propagator {
25 public:
26  /* Constructor */
28  BeamHaloPropagator(const Propagator* aEndCapTkProp,
29  const Propagator* aCrossTkProp,
30  const MagneticField* field,
32 
34  BeamHaloPropagator(const Propagator& aEndCapTkProp,
35  const Propagator& aCrossTkProp,
36  const MagneticField* field,
38 
41 
43  ~BeamHaloPropagator() override;
44 
46  BeamHaloPropagator* clone() const override {
47  return new BeamHaloPropagator(
49  }
50 
55  }
56 
59 
60 private:
61  std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const FreeTrajectoryState& fts,
62  const Plane& plane) const override;
63 
64  std::pair<TrajectoryStateOnSurface, double> propagateWithPath(const FreeTrajectoryState& fts,
65  const Cylinder& cylinder) const override;
66 
68  bool crossingTk(const FreeTrajectoryState& fts, const Plane& plane) const;
69 
71  const Propagator* getEndCapTkPropagator() const;
73  const Propagator* getCrossTkPropagator() const;
75  const MagneticField* magneticField() const override { return theField; }
76 
77 private:
79 
83 
84 protected:
85 };
86 
87 #endif
const Propagator * getCrossTkPropagator() const
return the propagator used to cross the tracker
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:130
Propagator * theCrossTkProp
BeamHaloPropagator(const Propagator *aEndCapTkProp, const Propagator *aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum)
Defines which propagator is used inside endcap and in barrel.
const MagneticField * magneticField() const override
return the magneticField
void setPropagationDirection(PropagationDirection dir) override
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:139
void directionCheck(PropagationDirection dir)
PropagationDirection
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:50
Definition: Plane.h:16
BeamHaloPropagator * clone() const override
Virtual constructor (using copy c&#39;tor)
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
Definition: Propagator.cc:10
~BeamHaloPropagator() override
const MagneticField * theField
const Propagator * getEndCapTkPropagator() const
return the propagator used in endcaps
Propagator * theEndCapTkProp
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override