]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFmPhysicalHelix.h
Migration of PWG2/FEMTOSCOPY to PWGCF/FEMTOSCOPY
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFmPhysicalHelix.h
1 ///////////////////////////////////////////////////////////////////////////
2 //                                                                       //
3 // AliFmHelix: a helper helix class                                      //
4 //                                                                       //
5 ///////////////////////////////////////////////////////////////////////////
6 #ifndef ALIFMPHYSICALHELIX_H
7 #define ALIFMPHYSICALHELIX_H
8
9 #include "AliFmThreeVector.h"
10 #include "AliFmHelix.h"
11
12 class AliFmPhysicalHelix : public AliFmHelix {
13  public:
14   // Requires: momentum, origin, signed Magnetic Field
15   //           and Charge of particle (+/- 1)
16   AliFmPhysicalHelix(const AliFmThreeVector<double>& v1,
17                      const AliFmThreeVector<double>& v2,
18                      double x, double y);
19     
20   // curvature, dip angle, phase, origin, h
21   AliFmPhysicalHelix(double curvature, double dipAngle, double phase,
22                      const AliFmThreeVector<double>& origin, int h=-1);
23   AliFmPhysicalHelix();
24   
25   ~AliFmPhysicalHelix();
26   
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) ;
39   
40 #ifdef __ROOT__
41   ClassDef(AliFmPhysicalHelix,1)
42 #endif
43 };
44
45 #endif