CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
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  virtual ~BeamHaloPropagator() ;
43 
45  virtual BeamHaloPropagator* clone() const {
46  return new BeamHaloPropagator(getEndCapTkPropagator(),getCrossTkPropagator(),magneticField(),propagationDirection());
47  }
48 
49 
51  {
53  theEndCapTkProp->setPropagationDirection(dir);
54  theCrossTkProp->setPropagationDirection(dir);
55  }
56 
59 
60  private:
61 
62  std::pair<TrajectoryStateOnSurface,double>
63  propagateWithPath(const FreeTrajectoryState& fts,
64  const Plane& plane) const;
65 
66 
67  std::pair<TrajectoryStateOnSurface,double>
68  propagateWithPath(const FreeTrajectoryState& fts,
69  const Cylinder& cylinder) const;
70 
71 
73  bool crossingTk(const FreeTrajectoryState& fts, const Plane& plane) const ;
74 
76  const Propagator* getEndCapTkPropagator() const ;
78  const Propagator* getCrossTkPropagator() const ;
80  virtual const MagneticField* magneticField() const {return theField;}
81 
82  private:
83  void directionCheck(PropagationDirection dir);
84 
87  const MagneticField* theField;
88 
89  protected:
90 
91 };
92 
93 #endif
94 
95 
virtual void setPropagationDirection(PropagationDirection dir)
Definition: Propagator.h:144
virtual BeamHaloPropagator * clone() const
Virtual constructor (using copy c&#39;tor)
Propagator * theCrossTkProp
PropagationDirection
Definition: Plane.h:17
void setPropagationDirection(PropagationDirection dir) override
virtual const MagneticField * magneticField() const
return the magneticField
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const final
Definition: Propagator.cc:15
Propagator * theEndCapTkProp
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
Definition: Propagator.h:56
dbl *** dir
Definition: mlp_gen.cc:35
Unlimited (trivial) bounds.