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(Propagator* aEndCapTkProp, 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 {
47  }
48 
49 
51  {
55  }
56 
57 
58 
59  /* Operations as propagator*/
61  const Surface& surface) const;
62 
64  const Surface& surface) const {
65  return Propagator::propagate(tsos,surface);
66  }
67 
69  const Plane& plane) const;
70 
72  const Plane& plane) const {
73  return Propagator::propagate(tsos, plane);
74  }
75 
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>
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>
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 
124  virtual const MagneticField* magneticField() const {return theField;}
125 
126  private:
128 
132 
133  protected:
134 
135 };
136 
137 #endif
138 
139 
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &fts, const Surface &surface) const
Propagator * theCrossTkProp
Propagator * getEndCapTkPropagator() const
return the propagator used in endcaps
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
virtual PropagationDirection propagationDirection() const
Definition: Propagator.h:143
void setPropagationDirection(PropagationDirection dir) const
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
TrajectoryStateOnSurface propagate(const TrajectoryStateOnSurface &tsos, const Surface &surface) const
void directionCheck(PropagationDirection dir) const
PropagationDirection
Propagator * getCrossTkPropagator() const
return the propagator used to cross the tracker
virtual BeamHaloPropagator * clone() const
Virtual constructor (using copy c&#39;tor)
Definition: Plane.h:17
virtual std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:74
bool crossingTk(const FreeTrajectoryState &fts, const Plane &plane) const
true if the plane and the fts z position have different sign
TrajectoryStateOnSurface propagate(const FreeTrajectoryState &fts, const Surface &surface) const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:9
virtual const MagneticField * magneticField() const
return the magneticField
const MagneticField * theField
virtual void setPropagationDirection(PropagationDirection dir) const
Definition: Propagator.h:132
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Cylinder &cylinder) const
dbl *** dir
Definition: mlp_gen.cc:35
std::pair< TrajectoryStateOnSurface, double > propagateWithPath(const TrajectoryStateOnSurface &tsos, const Plane &plane) const
Propagator * theEndCapTkProp
BeamHaloPropagator(Propagator *aEndCapTkProp, Propagator *aCrossTkProp, const MagneticField *field, PropagationDirection dir=alongMomentum)
Defines which propagator is used inside endcap and in barrel.