MarlinUtil  1.12.1
HelixClass.h
1 #ifndef HELIXAR_H
2 #define HELIXAR_H 1
3 #include <vector>
50 #include "LineClass.h"
51 class HelixClass;
52 
53 class HelixClass {
54  public:
55 
60  HelixClass();
64  ~HelixClass();
72  void Initialize_VP(float * pos, float * mom, float q, float B);
73 
88  void Initialize_BZ(float xCentre, float yCentre, float radius,
89  float bZ, float phi0, float B, float signPz,
90  float zBegin);
102  void Initialize_Canonical(float phi0, float d0, float z0, float omega,
103  float tanlambda, float B);
108  const float * getMomentum();
109 
113  const float * getReferencePoint();
114 
119  float getPhi0();
120 
125  float getD0();
126 
131  float getZ0();
132 
136  float getOmega();
137 
141  float getTanLambda();
142 
146  float getPXY();
147 
148 
152  float getXC();
153 
157  float getYC();
158 
159 
163  float getRadius();
164 
165 
174  float getPointInXY(float x0, float y0, float ax, float ay,
175  float * ref , float * point);
176 
184  float getPointInZ(float zLine, float * ref, float * point);
185 
195  float getDistanceToPoint(float * xPoint, float * Distance);
196 
206  float getDistanceToPoint(const float* xPoint, float distCut);
207  float getDistanceToPoint(const std::vector<float>& xPoint, float distCut);
208 
224  float getPointOnCircle(float Radius, float * ref, float * point);
225 
231  float getDistanceToHelix(HelixClass * helix, float * pos, float * mom);
232 
236  void setHelixEdges(float * xStart, float * xEnd);
237 
241  float * getStartingPoint() {return _xStart;}
242 
246  float * getEndPoint() {return _xEnd;}
247 
251  float getBz();
252 
256  float getPhiZ();
257 
261  void getExtrapolatedMomentum(float * pos, float * momentum);
262 
266  float getCharge();
267 
268  private:
269  float _momentum[3]; // momentum @ ref point
270  float _referencePoint[3]; // coordinates @ ref point
271  float _phi0; // phi0 in canonical parameterization
272  float _d0; // d0 in canonical parameterisation
273  float _z0; // z0 in canonical parameterisation
274  float _omega; // signed curvuture in canonical parameterisation
275  float _tanLambda; // TanLambda
276  float _pxy; // Transverse momentum
277  float _charge; // Particle Charge
278  float _bField; // Magnetic field (assumed to point to Z>0)
279  float _radius; // radius of circle in XY plane
280  float _xCentre; // X of circle centre
281  float _yCentre; // Y of circle centre
282  float _phiRefPoint; // Phi w.r.t. (X0,Y0) of circle @ ref point
283  float _phiAtPCA; // Phi w.r.t. (X0,Y0) of circle @ PCA
284  float _xAtPCA; // X @ PCA
285  float _yAtPCA; // Y @ PCA
286  float _pxAtPCA; // PX @ PCA
287  float _pyAtPCA; // PY @ PCA
288  float _phiMomRefPoint; // Phi of Momentum vector @ ref point
289  float _const_pi; // PI
290  float _const_2pi; // 2*PI
291  float _const_pi2; // PI/2
292  float _FCT; // 2.99792458E-4
293  float _xStart[3]; // Starting point of track segment
294  float _xEnd[3]; // Ending point of track segment
295 
296  float _bZ;
297  float _phiZ;
298 
299 };
300 
301 
302 #endif
float getYC()
Returns y coordinate of circumference.
Definition: HelixClass.cc:208
float getTanLambda()
Returns tangent of dip angle of the track
Definition: HelixClass.cc:198
float getPXY()
Returns transverse momentum of the track
Definition: HelixClass.cc:201
float * getEndPoint()
Returns endpoint of helix.
Definition: HelixClass.h:246
HelixClass()
Constructor.
Definition: HelixClass.cc:7
~HelixClass()
Destructor.
Definition: HelixClass.cc:13
float getDistanceToHelix(HelixClass *helix, float *pos, float *mom)
Returns distance between two helixes Output : pos[3] - position of the point of closest approach ...
Definition: HelixClass.cc:567
float getPointOnCircle(float Radius, float *ref, float *point)
This method calculates coordinates of both intersection of the helix with a cylinder.
Definition: HelixClass.cc:324
void Initialize_Canonical(float phi0, float d0, float z0, float omega, float tanlambda, float B)
Canonical (LEP-wise) parameterisation with the following parameters
Definition: HelixClass.cc:92
float getPhi0()
Returns Phi angle of the momentum vector at the point of closest approach to IP ...
Definition: HelixClass.cc:184
Definition: HelixClass.h:53
void setHelixEdges(float *xStart, float *xEnd)
Set Edges of helix.
Definition: HelixClass.cc:559
const float * getReferencePoint()
Returns reference point of track
Definition: HelixClass.cc:181
float getDistanceToPoint(float *xPoint, float *Distance)
Return distance of the closest approach of the helix to arbitrary 3D point in space.
Definition: HelixClass.cc:451
float getPointInXY(float x0, float y0, float ax, float ay, float *ref, float *point)
Returns helix intersection point with the plane parallel to z axis.
Definition: HelixClass.cc:228
void getExtrapolatedMomentum(float *pos, float *momentum)
Returns extrapolated momentum.
Definition: HelixClass.cc:758
float getRadius()
Returns radius of circumference.
Definition: HelixClass.cc:212
float getPhiZ()
Returns Phi for the second parameterization.
Definition: HelixClass.cc:220
float getPointInZ(float zLine, float *ref, float *point)
Returns helix intersection point with the plane perpendicular to z axis.
Definition: HelixClass.cc:423
const float * getMomentum()
Returns momentum of particle at the point of closest approach to IP
Definition: HelixClass.cc:178
float * getStartingPoint()
Returns starting point of helix.
Definition: HelixClass.h:241
void Initialize_BZ(float xCentre, float yCentre, float radius, float bZ, float phi0, float B, float signPz, float zBegin)
Initialization of helix according to the following parameterization x = xCentre + radius*cos(bZ*z +...
Definition: HelixClass.cc:123
float getXC()
Returns x coordinate of circumference.
Definition: HelixClass.cc:204
float getCharge()
Returns charge.
Definition: HelixClass.cc:224
float getZ0()
Returns z coordinate of the point of closest approach to IP in the R-Phi plane
Definition: HelixClass.cc:192
float getOmega()
Returns signed curvature of the track
Definition: HelixClass.cc:195
void Initialize_VP(float *pos, float *mom, float q, float B)
Initialization of helix using
Definition: HelixClass.cc:15
float getD0()
Returns signed distance of closest approach to IP in the R-Phi plane
Definition: HelixClass.cc:189
float getBz()
Returns BZ for the second parameterization.
Definition: HelixClass.cc:216