]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FEMTOSCOPY/AliFemto/Infrastructure/AliFmPhysicalHelix.h
Pad size less then cell size + ideal geom in v2
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / Infrastructure / AliFmPhysicalHelix.h
1 /***************************************************************************
2  *
3  * $Id$
4  *
5  * Author: Brian Lasiuk, Sep 1997
6  ***************************************************************************
7  *
8  * Description: 
9  * Parametrization of a physical helix. See the SCL user guide for more.
10  * 
11  ***************************************************************************
12  *
13  * $Log$
14  * Revision 1.1.1.1  2007/03/07 10:14:49  mchojnacki
15  * First version on CVS
16  *
17  * Revision 1.4  2005/07/06 18:49:56  fisyak
18  * Replace AliFmHelixD, AliFmLorentzVectorD,AliFmLorentzVectorF,AliFmMatrixD,AliFmMatrixF,AliFmPhysicalHelixD,AliFmThreeVectorD,AliFmThreeVectorF by templated version
19  *
20  * Revision 1.3  2002/06/21 17:49:26  genevb
21  * Some minor speed improvements
22  *
23  * Revision 1.2  2002/02/20 00:56:23  ullrich
24  * Added methods to calculate signed DCA.
25  *
26  * Revision 1.1  1999/01/30 03:59:04  fisyak
27  * Root Version of AliFmarClassLibrary
28  *
29  * Revision 1.1  1999/01/23 00:27:59  ullrich
30  * Initial Revision
31  *
32  **************************************************************************/
33 #ifndef ST_PHYSICAL_HELIX_HH
34 #define ST_PHYSICAL_HELIX_HH
35
36 #include "AliFmThreeVector.h"
37 #include "AliFmHelix.h"
38
39 class AliFmPhysicalHelix : public AliFmHelix {
40 public:
41     // Requires: momentum, origin, signed Magnetic Field
42     //           and Charge of particle (+/- 1)
43     AliFmPhysicalHelix(const AliFmThreeVector<double>&,
44                     const AliFmThreeVector<double>&,
45                     double, double);
46     
47     // curvature, dip angle, phase, origin, h
48     AliFmPhysicalHelix(double, double, double,
49                     const AliFmThreeVector<double>&, int h=-1);
50     AliFmPhysicalHelix();
51     
52     ~AliFmPhysicalHelix();
53
54     // Requires:  signed Magnetic Field
55     AliFmThreeVector<double> momentum(double) const;     // returns the momentum at origin
56     AliFmThreeVector<double> momentumAt(double, double) const; // returns momemtum at S
57     int                   charge(double)   const;     // returns charge of particle
58     // 2d DCA to x,y point signed relative to curvature
59     double curvatureSignedDistance(double x, double y) ;
60     // 2d DCA to x,y point signed relative to rotation 
61     double geometricSignedDistance(double x, double y) ;
62     // 3d DCA to 3d point signed relative to curvature
63     double curvatureSignedDistance(const AliFmThreeVector<double>&) ;
64     // 3d DCA to 3d point signed relative to rotation
65     double geometricSignedDistance(const AliFmThreeVector<double>&) ;
66     
67 #ifdef __ROOT__
68   ClassDef(AliFmPhysicalHelix,1)
69 #endif
70 };
71
72 #endif