MpdFemtoKtPairCut.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /**
  2. * \class MpdFemtoKtPairCut
  3. * \brief Simple cut to select pairs within the given kT range
  4. *
  5. * A cut to select pairs with the given reduced transverse momentum, kT,
  6. * emission angle w.r.t. reaction plane
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 11, 2020
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoKtPairCut_h
  13. #define MpdFemtoKtPairCut_h
  14. // MpdFemto
  15. #include "MpdFemtoBasePairCut.h"
  16. //_________________
  17. class MpdFemtoKtPairCut : public MpdFemtoBasePairCut {
  18. public:
  19. /// Default cut
  20. MpdFemtoKtPairCut();
  21. /// Constructor that accepts kTmin, kTmax, phiMin, phiMax values
  22. MpdFemtoKtPairCut(double ktLo = 0., double ktHi = 1e6,
  23. double phiLow = -1e6, double phiHi = 1e6);
  24. /// Copy constructor
  25. MpdFemtoKtPairCut(const MpdFemtoKtPairCut& c);
  26. /// Assignment operator
  27. MpdFemtoKtPairCut& operator=(const MpdFemtoKtPairCut& c);
  28. /// Destructor
  29. virtual ~MpdFemtoKtPairCut();
  30. /// Construct report
  31. virtual MpdFemotString report();
  32. /// Construct report
  33. virtual MpdFemotString Report() { return report(); }
  34. /// Prepare a report using list of settings
  35. virtual TList *listSettings();
  36. /// Prepare a report using list of settings
  37. virtual TList *ListSettings() { return listSettings(); }
  38. /// Clone pair cut
  39. MpdFemotPairCut* clone() { return new MpdFemtoKtPairCut(*this); }
  40. /// Clone pair cut
  41. MpdFemotPairCut* Clone() { return clone(); }
  42. /// Set kT range of the pair
  43. /// \par lo Low kT value
  44. /// \oar hi High kT value
  45. void setKtRange(double lo, double hi) { fKtRange[0] = lo; fKtRange[1] = hi; }
  46. /// Set kT range of the pair
  47. /// \par lo Low kT value
  48. /// \oar hi High kT value
  49. void SetKtRange(double lo, double hi) { setKtRange(lo, hi); }
  50. /// Set emsission angle range w.r.t. reaction plane
  51. /// \par lo Low value of angle
  52. /// \par hi High value of angle
  53. void setPhiRange(double lo, double hi);
  54. /// Set emsission angle range w.r.t. reaction plane
  55. /// \par lo Low value of angle
  56. /// \par hi High value of angle
  57. void SetPhiRange(double lo, double hi) { setPhiRange(lo, hi); }
  58. /// Check if the pair will pass the cut
  59. virtual bool pass(const MpdFemotPair* pair);
  60. /// Check if the pair will pass the cut
  61. virtual bool pass(const MpdFemotPair* pair, double aRPAngle);
  62. protected:
  63. /// Reduced pair transverse momentum range
  64. float fKtRange[2];
  65. /// Emission angle range w.r.t. reaction plane
  66. float fPhiRange[2];
  67. ClassDef(MpdFemtoKtPairCut, 0);
  68. };
  69. #endif // MpdFemtoKtPairCut_h