1 ///////////////////////////////////////////////////////////////////////////
3 // AliFmHelix: a helper helix class //
5 ///////////////////////////////////////////////////////////////////////////
6 #ifndef ALIFMPHYSICALHELIX_H
7 #define ALIFMPHYSICALHELIX_H
9 #include "AliFmThreeVector.h"
10 #include "AliFmHelix.h"
12 class AliFmPhysicalHelix : public AliFmHelix {
14 // Requires: momentum, origin, signed Magnetic Field
15 // and Charge of particle (+/- 1)
16 AliFmPhysicalHelix(const AliFmThreeVector<double>& v1,
17 const AliFmThreeVector<double>& v2,
20 // curvature, dip angle, phase, origin, h
21 AliFmPhysicalHelix(double curvature, double dipAngle, double phase,
22 const AliFmThreeVector<double>& origin, int h=-1);
25 ~AliFmPhysicalHelix();
27 // Requires: signed Magnetic Field
28 AliFmThreeVector<double> Momentum(double x) const; // returns the momentum at origin
29 AliFmThreeVector<double> MomentumAt(double x, double y) const; // returns momemtum at S
30 int Charge(double x) const; // returns charge of particle
31 // 2d DCA to x,y point signed relative to curvature
32 double CurvatureSignedDistance(double x, double y) ;
33 // 2d DCA to x,y point signed relative to rotation
34 double GeometricSignedDistance(double x, double y) ;
35 // 3d DCA to 3d point signed relative to curvature
36 double CurvatureSignedDistance(const AliFmThreeVector<double>& v) ;
37 // 3d DCA to 3d point signed relative to rotation
38 double GeometricSignedDistance(const AliFmThreeVector<double>& v) ;
41 ClassDef(AliFmPhysicalHelix,1)