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 
26  public:
27 
28  /* Constructor */
30  BeamHaloPropagator(const Propagator* aEndCapTkProp, const Propagator* aCrossTkProp, const MagneticField* field,
32 
34  BeamHaloPropagator(const Propagator& aEndCapTkProp,const Propagator& aCrossTkProp, const MagneticField* field,
36 
37 
40 
42  ~BeamHaloPropagator() override ;
43 
45  BeamHaloPropagator* clone() const override {
47  }
48 
49 
51  {
55  }
56 
59 
60  private:
61 
62  std::pair<TrajectoryStateOnSurface,double>
64  const Plane& plane) const override;
65 
66 
67  std::pair<TrajectoryStateOnSurface,double>
69  const Cylinder& cylinder) const override;
70 
71 
73  bool crossingTk(const FreeTrajectoryState& fts, const Plane& plane) const ;
74 
76  const Propagator* getEndCapTkPropagator() const ;
78  const Propagator* getCrossTkPropagator() const ;
80  const MagneticField* magneticField() const override {return theField;}
81 
82  private:
84 
88 
89  protected:
90 
91 };
92 
93 #endif
94 
95 
const MagneticField * magneticField() const override
return the magneticField
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:140
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.
void setPropagationDirection(PropagationDirection dir) override
void directionCheck(PropagationDirection dir)
PropagationDirection
Definition: Plane.h:17
virtual PropagationDirection propagationDirection() const final
Definition: Propagator.h:151
const Propagator * getEndCapTkPropagator() const
return the propagator used in endcaps
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
Definition: Propagator.cc:15
BeamHaloPropagator * clone() const override
Virtual constructor (using copy c&#39;tor)
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
~BeamHaloPropagator() override
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:53
const MagneticField * theField
dbl *** dir
Definition: mlp_gen.cc:35
Propagator * theEndCapTkProp
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Plane &plane) const override