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  getEndCapTkPropagator()->setPropagationDirection(dir);
54  getCrossTkPropagator()->setPropagationDirection(dir);
55  }
56 
57 
58 
59  /* Operations as propagator*/
60  TrajectoryStateOnSurface propagate(const FreeTrajectoryState& fts,
61  const Surface& surface) const;
62 
64  const Surface& surface) const {
65  return Propagator::propagate(tsos,surface);
66  }
67 
68  TrajectoryStateOnSurface propagate(const FreeTrajectoryState& fts,
69  const Plane& plane) const;
70 
72  const Plane& plane) const {
73  return Propagator::propagate(tsos, plane);
74  }
75 
76  TrajectoryStateOnSurface propagate(const FreeTrajectoryState& fts,
77  const Cylinder& cylinder) const;
78 
80  const Cylinder& cylinder) const {
81  return Propagator::propagate(tsos, cylinder);
82  }
83 
84  std::pair<TrajectoryStateOnSurface,double>
86  const Surface& surface) const {
87  return Propagator::propagateWithPath(fts,surface);
88  }
89 
90  std::pair<TrajectoryStateOnSurface,double>
92  const Surface& surface) const {
93  return Propagator::propagateWithPath(tsos,surface);
94  }
95 
96  std::pair<TrajectoryStateOnSurface,double>
97  propagateWithPath(const FreeTrajectoryState& fts,
98  const Plane& plane) const;
99 
100  std::pair<TrajectoryStateOnSurface,double>
102  const Plane& plane) const {
103  return Propagator::propagateWithPath(tsos, plane);
104  }
105 
106  std::pair<TrajectoryStateOnSurface,double>
107  propagateWithPath(const FreeTrajectoryState& fts,
108  const Cylinder& cylinder) const;
109 
110  std::pair<TrajectoryStateOnSurface,double>
112  const Cylinder& cylinder) const {
113  return Propagator::propagateWithPath(tsos, cylinder);
114  }
115 
117  bool crossingTk(const FreeTrajectoryState& fts, const Plane& plane) const ;
118 
120  const Propagator* getEndCapTkPropagator() const ;
122  const Propagator* getCrossTkPropagator() const ;
124  virtual const MagneticField* magneticField() const {return theField;}
125 
126  private:
127  void directionCheck(PropagationDirection dir)const;
128 
131  const MagneticField* theField;
132 
133  protected:
134 
135 };
136 
137 #endif
138 
139 
virtual BeamHaloPropagator * clone() const
Virtual constructor (using copy c&#39;tor)
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
Propagator * theCrossTkProp
void setPropagationDirection(PropagationDirection dir) const
PropagationDirection
Definition: Plane.h:17
tuple field
Definition: statics.py:62
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:77
virtual const MagneticField * magneticField() const
return the magneticField
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
Propagator * theEndCapTkProp
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:134
dbl *** dir
Definition: mlp_gen.cc:35
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Surface &surface) const
Unlimited (trivial) bounds.