StFemtoPhysicalHelix.h 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. /**
  2. * \class StFemtoPhysicalHelix
  3. * \brief Helix parametrization for the particle
  4. *
  5. * Parametrization of a physical helix that uses ROOT classes
  6. *
  7. * \author Grigory Nigmatkulov; e-mail: nigmatkulov@gmail.com
  8. * \date May 07, 2018
  9. */
  10. #ifndef StFemtoPhysicalHelix_h
  11. #define StFemtoPhysicalHelix_h
  12. // ROOT headers
  13. #include "TVector3.h"
  14. // FemtoDst headers
  15. #include "StFemtoHelix.h"
  16. //_________________
  17. class StFemtoPhysicalHelix : public StFemtoHelix {
  18. public:
  19. /// Empty constructor
  20. StFemtoPhysicalHelix();
  21. /// Constructor with momentum, origin, signed Magnetic Field
  22. /// and Charge of particle (+/- 1)
  23. StFemtoPhysicalHelix(const TVector3&,
  24. const TVector3&,
  25. Double_t, Double_t);
  26. /// Constructor with Curvature, dip angle, phase, origin, h
  27. StFemtoPhysicalHelix(Double_t, Double_t, Double_t,
  28. const TVector3&, Int_t h=-1);
  29. /// Destructor
  30. ~StFemtoPhysicalHelix();
  31. /// Return the momentum at origin
  32. /// \param bField magnetic field
  33. TVector3 momentum(Double_t) const;
  34. /// Return momemtum at S
  35. TVector3 momentumAt(Double_t, Double_t) const;
  36. /// Returns charge of particle
  37. Int_t charge(Double_t) const;
  38. /// 2d DCA to x,y point signed relative to curvature
  39. Double_t curvatureSignedDistance(Double_t x, Double_t y) ;
  40. /// 2d DCA to x,y point signed relative to rotation
  41. Double_t geometricSignedDistance(Double_t x, Double_t y) ;
  42. /// 3d DCA to 3d point signed relative to curvature
  43. Double_t curvatureSignedDistance(const TVector3&) ;
  44. /// 3d DCA to 3d point signed relative to rotation
  45. Double_t geometricSignedDistance(const TVector3&) ;
  46. ClassDef(StFemtoPhysicalHelix,1)
  47. };
  48. #endif