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