MpdFemtoReactionPlaneAnalysis.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /**
  2. * \class MpdFemtoReactionPlaneAnalysis
  3. * \brief Class that allows the azimuthal analysis
  4. *
  5. * Analysis with respect to the z position of the primary vertex and event
  6. * total multiplicity and uses only events in certain reaction plane angle bin
  7. *
  8. * \author Grigory Nigmatkulov (NRNU MEPhI)
  9. * \date May 18, 2019
  10. * \email nigmatkulov@gmail.com
  11. */
  12. #ifndef MpdFemtoReactionPlaneAnalysis_h
  13. #define MpdFemtoReactionPlaneAnalysis_h
  14. // MpdFemtoMaker headers
  15. #include "MpdFemtoAnalysis.h"
  16. // ROOT headers
  17. #include "TList.h"
  18. // Forward declaration
  19. class MpdFemtoPicoEventCollectionVectorHideAway;
  20. //_________________
  21. class MpdFemtoReactionPlaneAnalysis : public MpdFemtoAnalysis {
  22. public:
  23. /// Default constructor
  24. MpdFemtoReactionPlaneAnalysis(unsigned int binsVertex = 10, double minVertex = -100., double maxVertex = +100.,
  25. unsigned int binsMult = 10, double minMult = -1.e9, double maxMult = +1.e9,
  26. unsigned short binsRP = 10, double minRP = -1.e9, double maxRP = +1.e9);
  27. /// Copy constructor
  28. MpdFemtoReactionPlaneAnalysis(const MpdFemtoReactionPlaneAnalysis& copy);
  29. /// Assignment operator
  30. MpdFemtoReactionPlaneAnalysis& operator=(const MpdFemtoReactionPlaneAnalysis& copy);
  31. /// Destructor
  32. virtual ~MpdFemtoReactionPlaneAnalysis();
  33. /// Process event
  34. virtual void processEvent(const MpdFemtoEvent* thisEvent);
  35. /// Reports of all cuts applied and correlation functions being done
  36. virtual MpdFemtoString report();
  37. /// Number of events that overflow Z max
  38. virtual unsigned int overflowVertexZ() const {
  39. return mOverFlowVertexZ;
  40. }
  41. /// Number of events that underflow Z min
  42. virtual unsigned int underflowVertexZ() const {
  43. return mUnderFlowVertexZ;
  44. }
  45. /// Number of events that overflow max multiplicity
  46. virtual unsigned int overflowMult() const {
  47. return mOverFlowMult;
  48. }
  49. /// Number of events that underflow min multiplicity
  50. virtual unsigned int underflowMult() const {
  51. return mUnderFlowMult;
  52. }
  53. /// Reaction plane angle
  54. double getCurrentReactionPlane() const {
  55. return mCurrentRP;
  56. }
  57. /// Return a TList of analysis settings.
  58. ///
  59. /// The TList comprises TObjStrings describing the settings provided by the
  60. /// MpdFemtoAnalysis::ListSettings class followed by all event-mixing
  61. /// binning parameters.
  62. virtual TList *listSettings();
  63. /// Obtain number of objects to be written as an output
  64. virtual TList *getOutputList();
  65. protected:
  66. /// Min/max z-vertex position allowed to be processed
  67. double mVertexZ[2];
  68. /// Number of VERTEX mixing bins in z-vertex in EventMixing Buffer
  69. unsigned int mVertexZBins;
  70. /// Number of events encountered which had too large z-vertex
  71. unsigned int mOverFlowVertexZ;
  72. /// Number of events encountered which had too small z-vertex
  73. unsigned int mUnderFlowVertexZ;
  74. /// Min/max multiplicity allowed for event to be processed
  75. double mMult[2];
  76. /// Number of MULTIPLICITY mixing bins in z-vertex in EventMixing Buffer
  77. unsigned int mMultBins;
  78. /// Number of events encountered which had too large multiplicity
  79. unsigned int mOverFlowMult;
  80. /// Number of events encountered which had too small multiplicity
  81. unsigned int mUnderFlowMult;
  82. /// Number of reaction plane angle orientation bins
  83. unsigned short mRPBins;
  84. /// Reaction plane angle range
  85. double mRP[2];
  86. /// Reaction plane angle of the current event
  87. double mCurrentRP;
  88. ClassDef(MpdFemtoReactionPlaneAnalysis, 0)
  89. };
  90. #endif // #define MpdFemtoReactionPlaneAnalysis_h