1 /***************************************************************************
5 * Author: Brian Lasiuk, Sep 1997
6 ***************************************************************************
9 * Parametrization of a physical helix. See the SCL user guide for more.
11 ***************************************************************************
14 * Revision 1.1.1.1 2007/03/07 10:14:49 mchojnacki
15 * First version on CVS
17 * Revision 1.4 2005/07/06 18:49:56 fisyak
18 * Replace AliFmHelixD, AliFmLorentzVectorD,AliFmLorentzVectorF,AliFmMatrixD,AliFmMatrixF,AliFmPhysicalHelixD,AliFmThreeVectorD,AliFmThreeVectorF by templated version
20 * Revision 1.3 2002/06/21 17:49:26 genevb
21 * Some minor speed improvements
23 * Revision 1.2 2002/02/20 00:56:23 ullrich
24 * Added methods to calculate signed DCA.
26 * Revision 1.1 1999/01/30 03:59:04 fisyak
27 * Root Version of AliFmarClassLibrary
29 * Revision 1.1 1999/01/23 00:27:59 ullrich
32 **************************************************************************/
33 #ifndef ST_PHYSICAL_HELIX_HH
34 #define ST_PHYSICAL_HELIX_HH
36 #include "AliFmThreeVector.h"
37 #include "AliFmHelix.h"
39 class AliFmPhysicalHelix : public AliFmHelix {
41 // Requires: momentum, origin, signed Magnetic Field
42 // and Charge of particle (+/- 1)
43 AliFmPhysicalHelix(const AliFmThreeVector<double>&,
44 const AliFmThreeVector<double>&,
47 // curvature, dip angle, phase, origin, h
48 AliFmPhysicalHelix(double, double, double,
49 const AliFmThreeVector<double>&, int h=-1);
52 ~AliFmPhysicalHelix();
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>&) ;
68 ClassDef(AliFmPhysicalHelix,1)