MpdFemtoPhysicalHelix.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * \class MpdFemtoPhysicalHelix
  3. * \author Grigory Nigmatkulov, May 07 2018
  4. *
  5. * Parametrization of a physical helix (modification of StPhysicalHelix).
  6. *
  7. * \author Grigory Nigmatkulov (NRNU MEPhI)
  8. * \date May 18, 2019
  9. * \email nigmatkulov@gmail.com
  10. */
  11. #ifndef MpdFemtoPhysicalHelix_h
  12. #define MpdFemtoPhysicalHelix_h
  13. // ROOT headers
  14. #include "TVector3.h"
  15. // PicoDst headers
  16. #include "MpdFemtoHelix.h"
  17. //_________________
  18. class MpdFemtoPhysicalHelix : public MpdFemtoHelix {
  19. public:
  20. /// Default constructor
  21. MpdFemtoPhysicalHelix();
  22. /// Constructor with momentum, origin, signed Magnetic Field
  23. /// and Charge of particle (+/- 1)
  24. MpdFemtoPhysicalHelix(const TVector3&,
  25. const TVector3&,
  26. double, double);
  27. /// Constructor with Curvature, dip angle, phase, origin, h
  28. MpdFemtoPhysicalHelix(double, double, double,
  29. const TVector3&, Int_t h = -1);
  30. /// Destructor
  31. ~MpdFemtoPhysicalHelix();
  32. /// Requires: signed Magnetic Field
  33. TVector3 momentum(double) const; // returns the momentum at origin
  34. TVector3 momentumAt(double, double) const; // returns momemtum at S
  35. Int_t charge(double) const; // returns charge of particle
  36. /// 2d DCA to x,y point signed relative to curvature
  37. double curvatureSignedDistance(double x, double y);
  38. /// 2d DCA to x,y point signed relative to rotation
  39. double geometricSignedDistance(double x, double y);
  40. /// 3d DCA to 3d point signed relative to curvature
  41. double curvatureSignedDistance(const TVector3&);
  42. /// 3d DCA to 3d point signed relative to rotation
  43. double geometricSignedDistance(const TVector3&);
  44. ClassDef(MpdFemtoPhysicalHelix, 1)
  45. };
  46. #endif