MpdFemtoLikeSignAnalysis.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /**
  2. * \class MpdFemtoLikeSignAnalysis
  3. * \brief The class is a base class for like-sign analysis with z-binning
  4. *
  5. * The class provides posibility to perform femtoscopic analysis
  6. * using vertex binning
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 18, 2019
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoLikeSignAnalysis_h
  13. #define MpdFemtoLikeSignAnalysis_h
  14. // MpdFemtoMaker headers
  15. // Base
  16. #include "MpdFemtoBaseAnalysis.h"
  17. #include "MpdFemtoBaseEventCut.h"
  18. #include "MpdFemtoBaseParticleCut.h"
  19. #include "MpdFemtoBasePairCut.h"
  20. #include "MpdFemtoBaseLikeSignCorrFctn.h"
  21. // Infrastructure
  22. #include "MpdFemtoTypes.h"
  23. #include "MpdFemtoAnalysis.h"
  24. #include "MpdFemtoCorrFctnCollection.h"
  25. //_________________
  26. class MpdFemtoLikeSignAnalysis : public MpdFemtoAnalysis {
  27. public:
  28. /// Constructor
  29. MpdFemtoLikeSignAnalysis(const unsigned int& bins = 20, const double& min = -100., const double& max = 100.);
  30. /// Copy constructor
  31. MpdFemtoLikeSignAnalysis(const MpdFemtoLikeSignAnalysis& copy);
  32. /// Copy constructor
  33. MpdFemtoLikeSignAnalysis& operator=(const MpdFemtoLikeSignAnalysis& copy);
  34. /// Default destructor
  35. virtual ~MpdFemtoLikeSignAnalysis();
  36. /// Function that calls processing
  37. virtual void processEvent(const MpdFemtoEvent*);
  38. /// Make report
  39. virtual MpdFemtoString report();
  40. /// Make report
  41. virtual MpdFemtoString Report() {
  42. return report();
  43. }
  44. /// Return number of events were lower than min z
  45. virtual unsigned int overflow() {
  46. return mOverFlow;
  47. }
  48. /// Return number of events were lower than min z
  49. virtual unsigned int Overflow() {
  50. return overflow();
  51. }
  52. /// Return number of events were higher than max z
  53. virtual unsigned int underflow() {
  54. return mUnderFlow;
  55. }
  56. /// Return number of events were higher than max z
  57. virtual unsigned int Underflow() {
  58. return mUnderFlow;
  59. }
  60. protected:
  61. /// Min/Max z-vertex position allowed to be processed
  62. double mVertexZ[2];
  63. /// Number of mixing bins in z-vertex in EventMixing Buffer
  64. unsigned int mVertexBins;
  65. /// Number of events encountered which had too large z-vertex
  66. unsigned int mOverFlow;
  67. /// Number of events encountered which had too small z-vertex
  68. unsigned int mUnderFlow;
  69. ClassDef(MpdFemtoLikeSignAnalysis, 0)
  70. };
  71. #endif // #define MpdFemtoLikeSignAnalysis_h