MarlinUtil  1.12.1
SimpleHelix.h
1 #ifndef SimpleHelix_H
2 #define SimpleHelix_H 1
3 
4 #include "Trajectory.h"
5 
11 class SimpleHelix : public Trajectory {
12 
13 public:
14 
15  virtual ~SimpleHelix() {}
16 
19  SimpleHelix( double d0, double phi0, double omega,
20  double z0, double tanLambda,
21  LCVector3D referencePoint, LCErrorMatrix* errors=0) ;
22 
27  virtual LCVector3D getPosition(double s, LCErrorMatrix* errors=0) const ;
28 
33  virtual LCVector3D getDirection(double s, LCErrorMatrix* errors=0) const ;
34 
38  virtual LCErrorMatrix getCovarianceMatrix( double s) const ;
39 
45  virtual double getPathAt(const LCVector3D position ) const ;
46 
49  virtual double getRadius() const ;
50 
51  /*----------------------------------------------------------------------*/
52 
56  virtual double getIntersectionWithPlane( LCPlane3D p, bool& pointExists) const ;
57 
62  virtual double getIntersectionWithCylinder(const LCCylinder & cylinder,
63  bool & pointExists) const ;
64 
67  virtual double getStart() const ;
68  virtual double getEnd() const ;
69 
74  virtual bool setStart(double s);
75  virtual bool setEnd(double s);
76  virtual bool setStartEnd(double start, double end);
77 
78  virtual void printProperties();
79 
80 protected:
81 
82  SimpleHelix() {}
83 
84  virtual void init() ;
85 
86  virtual double getCentreX() const ;
87  virtual double getCentreY() const ;
88  virtual double getWindingLength() const ;
89  virtual double getPitch();
90  double _d0;
91  double _phi0;
92  double _omega;
93  double _z0;
94  double _tanLambda;
95 
96  // double _Bz;
97 
98  double _helixStart;
99  double _helixEnd;
100 
101  static const char* _names[];
102 
103  static const double _a; // = 2.99792458E-4;
104  static const double _pi; // = 3.14159265358979323846;
105 
106  LCVector3D _reference;
107  LCErrorMatrix* _errors;
108 }; // class
109 
110 
111 
112 // /** Physical trajectory describing a (charged) particle's path in a B
113 // * field and material.
114 // * @author F.Gaede, DESY
115 // * @version $Id: SimpleHelix.h,v 1.7 2007-06-20 18:47:25 samson Exp $
116 // */
117 
118 // class PhysicalSimpleLine : public SimpleLine{
119 
120 // /** Particle's momentum at path length s. Implementations will have to have knowledge
121 // * about the particle type, B-field and material.
122 // */
123 // virtual LCLorentzVector get4Momentum( double s ) const ;
124 // }
125 
126 
127 #endif /* ifndef SimpleLine_H */
virtual double getStart() const
Pathlength at the start and end point of the trajectory.
Definition: SimpleHelix.cc:347
Abstract trajectory interface describing a geometrical path in 3D space.
Definition: Trajectory.h:13
virtual double getIntersectionWithCylinder(const LCCylinder &cylinder, bool &pointExists) const
Pathlength at closest intersection point with cylinder - undefined if pointExists==false.
Definition: SimpleHelix.cc:283
virtual LCErrorMatrix getCovarianceMatrix(double s) const
Full covariance Matrix of x,y,z,px,py,pz.
Definition: SimpleHelix.cc:105
virtual double getIntersectionWithPlane(LCPlane3D p, bool &pointExists) const
Pathlength at closest intersection point with plane - undefined if pointExists==false.
Definition: SimpleHelix.cc:197
virtual bool setStart(double s)
Set pathlength at the start and end point of the trajectory.
Definition: SimpleHelix.cc:357
virtual double getPathAt(const LCVector3D position) const
Pathlength at point on trajectory closest to given position.
Definition: SimpleHelix.cc:110
Definition of a LCPlane3D describing a geometrical plane in 3D space.
Definition: LCPlane3D.h:12
virtual LCVector3D getDirection(double s, LCErrorMatrix *errors=0) const
Direction at path length s, i.e.
Definition: SimpleHelix.cc:91
virtual double getRadius() const
get the radius of the helix.
Definition: SimpleHelix.cc:428
virtual LCVector3D getPosition(double s, LCErrorMatrix *errors=0) const
Position at path length s - s==0 corresponds to P.C.A to the origin.
Definition: SimpleHelix.cc:74
Definition of a LCCylinder describing a geometrical cylinder in 3D space.
Definition: LCCylinder.h:12
Simple helix trajectory.
Definition: SimpleHelix.h:11