MpdFemtoQinvCorrFctnKt.h 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. /**
  2. * \class MpdFemtoQinvCorrFctnKt
  3. * \brief One-dimensional correlation function with kT-binning
  4. *
  5. * One-dimensional correlation function with correlation functions binned
  6. * according to the user request
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 18, 2019
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoQinvCorrFctnKt_h
  13. #define MpdFemtoQinvCorrFctnKt_h
  14. // MpdFemtoMaker headers
  15. #include "MpdFemtoBaseCorrFctn.h"
  16. #include "MpdFemtoBasePairCut.h"
  17. // C++ headers
  18. #include <vector>
  19. // Forward declaration
  20. class TH1D;
  21. //_________________
  22. class MpdFemtoQinvCorrFctnKt : public MpdFemtoBaseCorrFctn {
  23. public:
  24. /// Constructor
  25. MpdFemtoQinvCorrFctnKt(const char* title = "hQinv",
  26. const int& nbins = 100, const double& QinvLo = 0., const double& QinvHi = 1.,
  27. const int& nCFs = 10, const double& KtLo = 0.05, const double& KtHi = 1.05);
  28. /// Copy constructor
  29. MpdFemtoQinvCorrFctnKt(const MpdFemtoQinvCorrFctnKt& copy);
  30. /// Assignment operator
  31. MpdFemtoQinvCorrFctnKt& operator=(const MpdFemtoQinvCorrFctnKt& copy);
  32. /// Destructor
  33. virtual ~MpdFemtoQinvCorrFctnKt();
  34. /// Make report
  35. virtual MpdFemtoString report();
  36. /// Add real pair
  37. virtual void addRealPair(MpdFemtoPair* pair);
  38. /// Add mixed pair
  39. virtual void addMixedPair(MpdFemtoPair* pair);
  40. /// Begin event
  41. virtual void eventBegin(const MpdFemtoEvent* event);
  42. /// Event end
  43. virtual void eventEnd(const MpdFemtoEvent* event);
  44. /// Finish
  45. virtual void finish();
  46. /// Write histograms
  47. void writeOutHistos();
  48. /// Return output list
  49. virtual TList* getOutputList();
  50. /// Set kT bins
  51. void setKtRange(const int& nbins = 10, const double& ktLo = 0.05, const double& ktHi = 1.05);
  52. /// Return i-th numerator
  53. TH1D *numerator(unsigned int i) {
  54. return ( mNumerator.at(i)) ? mNumerator.at(i) : nullptr;
  55. }
  56. /// Return i-th denominator
  57. TH1D *denominator(unsigned int i) {
  58. return ( mDenominator.at(i)) ? mDenominator.at(i) : nullptr;
  59. }
  60. /// Clone correlation function
  61. virtual MpdFemtoQinvCorrFctnKt* clone() const {
  62. return new MpdFemtoQinvCorrFctnKt(*this);
  63. }
  64. private:
  65. /// Numerators
  66. std::vector< TH1D* > mNumerator;
  67. /// Denominators
  68. std::vector< TH1D* > mDenominator;
  69. /// Number of kT bins to study
  70. int mNKtBins;
  71. /// Range of kT to plot [min,max]
  72. double mKtRange[2];
  73. /// kT bin width
  74. double mKtStep;
  75. ClassDef(MpdFemtoQinvCorrFctnKt, 2)
  76. };
  77. #endif // #define MpdFemtoQinvCorrFctnKt_h