]>
Commit | Line | Data |
---|---|---|
d0e92d9a | 1 | /////////////////////////////////////////////////////////////////////////// |
2 | // // | |
3 | // AliFmHelix: a helper helix class // | |
4 | // // | |
5 | /////////////////////////////////////////////////////////////////////////// | |
6 | #ifndef ALIPHYSICALHELIX_H | |
7 | #define ALIPHYSICALHELIX_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>& v, | |
17 | const AliFmThreeVector<double>& v, | |
18 | double x, double x); | |
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 x) 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 |