MpdFemtoModelQinvCorrFctn.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /**
  2. * \class MpdFemtoModelQinvCorrFctn
  3. * \brief One-dimensional correlation function for the model estimations
  4. *
  5. * One-dimensional correlation function which will store numerators (from real events)
  6. * and denominatros (from mixed events) with and without femtoscopic weights
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 18, 2019
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoModelQinvCorrFctn_h
  13. #define MpdFemtoModelQinvCorrFctn_h
  14. // MpdFemtoMaker headers
  15. // Base
  16. #include "MpdFemtoBaseCorrFctn.h"
  17. // Forward declarations
  18. class MpdFemtoPair;
  19. class MpdFemtoModelManager;
  20. class TH1D;
  21. //_________________
  22. class MpdFemtoModelQinvCorrFctn : public MpdFemtoBaseCorrFctn {
  23. public:
  24. /// Default constructor
  25. MpdFemtoModelQinvCorrFctn();
  26. /// Parametrized constructor
  27. MpdFemtoModelQinvCorrFctn(const char *title, const int& nbins,
  28. const double& qInvLow = 0., const double& qInvHi = 1.0,
  29. const bool useDenominator = true);
  30. /// Copy constructor
  31. MpdFemtoModelQinvCorrFctn(const MpdFemtoModelQinvCorrFctn& corrFctn);
  32. /// Assignment operator
  33. MpdFemtoModelQinvCorrFctn& operator=(const MpdFemtoModelQinvCorrFctn& corrFctn);
  34. /// Destructor
  35. virtual ~MpdFemtoModelQinvCorrFctn();
  36. /// Method that allows front-loading model manager
  37. virtual void connectToManager(MpdFemtoModelManager *manager);
  38. /// Make report
  39. virtual MpdFemtoString report();
  40. /// Add real pair
  41. virtual void addRealPair(MpdFemtoPair* pair);
  42. /// Add mixed pair
  43. virtual void addMixedPair(MpdFemtoPair* pair);
  44. /// Begin event
  45. virtual void eventBegin(const MpdFemtoEvent* event);
  46. /// Event end
  47. virtual void eventEnd(const MpdFemtoEvent* event);
  48. /// Finish
  49. virtual void finish();
  50. /// Write histograms
  51. virtual void writeOutHistos();
  52. /// Return output list
  53. virtual TList* getOutputList();
  54. /// Clone correlation function
  55. virtual MpdFemtoModelQinvCorrFctn* clone() const {
  56. return new MpdFemtoModelQinvCorrFctn(*this);
  57. }
  58. /// Set write denominator
  59. void setUseDenominator(bool isUse) { mIsUseDenominator = isUse; }
  60. protected:
  61. /// Pointer to the model manager that performs femtoscopic
  62. /// weight calculation
  63. MpdFemtoModelManager *mManager;
  64. /// Numerator made with pairs from the same event with femtoscopic weight
  65. TH1D *mNumeratorWeighted;
  66. /// Numerator made with pairs from the same event without weights
  67. TH1D *mNumerator;
  68. /// Denominator made with mixed pairs with femtoscopic weight
  69. TH1D *mDenominatorWeighted;
  70. /// Denominator made with mixed pairs without weights
  71. TH1D *mDenominator;
  72. /// Use and write denominators
  73. bool mIsUseDenominator;
  74. ClassDef(MpdFemtoModelQinvCorrFctn, 2)
  75. };
  76. #endif // MpdFemtoModelQinvCorrFctn_h