rotateToReactionPlaneEventCut.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. /***************************************************************************
  2. *
  3. * $Id: rotateToReactionPlaneEventCut.h,v 1.1 2000/05/25 21:47:28 laue Exp $
  4. *
  5. * Author: Frank Laue, Ohio State, laue@mps.ohio-state.edu
  6. ***************************************************************************
  7. *
  8. * Description: part of STAR HBT Framework: StHbtMaker package
  9. * A simple event-wise cut that selects on multiplicity and z-position
  10. * of primary vertex and rotates the event around the z-axis
  11. *
  12. ***************************************************************************
  13. *
  14. * $Log: rotateToReactionPlaneEventCut.h,v $
  15. * Revision 1.1 2000/05/25 21:47:28 laue
  16. * new event cut which can be used to rotate an event around the z-axis
  17. *
  18. *
  19. **************************************************************************/
  20. #ifndef rotateToReactionPlaneEventCut_hh
  21. #define rotateToReactionPlaneEventCut_hh
  22. // do I need these lines ?
  23. //#ifndef StMaker_H
  24. //#include "StMaker.h"
  25. //#endif
  26. #include "StHbtMaker/Base/StHbtEventCut.h"
  27. class HepRandom;
  28. class HepJamesRandom;
  29. class RandGauss;
  30. class rotateToReactionPlaneEventCut : public StHbtEventCut {
  31. public:
  32. rotateToReactionPlaneEventCut();
  33. rotateToReactionPlaneEventCut(rotateToReactionPlaneEventCut&);
  34. //~rotateToReactionPlaneEventCut();
  35. void SetEventMult(const int& lo,const int& hi);
  36. void SetVertZPos(const float& lo, const float& hi);
  37. void SetSmear(const float& s=0);
  38. void RotationOn();
  39. void RotationOff();
  40. long NEventsPassed();
  41. long NEventsFailed();
  42. virtual StHbtString Report();
  43. virtual bool Pass(const StHbtEvent*);
  44. rotateToReactionPlaneEventCut* Clone();
  45. private: // here are the quantities I want to cut on...
  46. bool mRotation;
  47. float mSmear;
  48. int mEventMult[2]; // range of multiplicity
  49. float mVertZPos[2]; // range of z-position of vertex
  50. long mNEventsPassed;
  51. long mNEventsFailed;
  52. HepJamesRandom* engine; //!
  53. RandGauss* gauss; //!
  54. #ifdef __ROOT__
  55. ClassDef(rotateToReactionPlaneEventCut, 1)
  56. #endif
  57. };
  58. inline void rotateToReactionPlaneEventCut::SetEventMult(const int& lo, const int& hi){mEventMult[0]=lo; mEventMult[1]=hi;}
  59. inline void rotateToReactionPlaneEventCut::SetVertZPos(const float& lo, const float& hi){mVertZPos[0]=lo; mVertZPos[1]=hi;}
  60. inline void rotateToReactionPlaneEventCut::SetSmear(const float& s){ mSmear = s;}
  61. inline void rotateToReactionPlaneEventCut::RotationOn() { mRotation = true; }
  62. inline void rotateToReactionPlaneEventCut::RotationOff() { mRotation = false; }
  63. inline long rotateToReactionPlaneEventCut::NEventsPassed() {return mNEventsPassed;}
  64. inline long rotateToReactionPlaneEventCut::NEventsFailed() {return mNEventsFailed;}
  65. inline rotateToReactionPlaneEventCut* rotateToReactionPlaneEventCut::Clone() { rotateToReactionPlaneEventCut* c = new rotateToReactionPlaneEventCut(*this); return c;}
  66. inline rotateToReactionPlaneEventCut::rotateToReactionPlaneEventCut(rotateToReactionPlaneEventCut& c) : StHbtEventCut(c) {
  67. mRotation = c.mRotation;
  68. mSmear = c.mSmear;
  69. mEventMult[0] = c.mEventMult[0];
  70. mEventMult[1] = c.mEventMult[1];
  71. mVertZPos[0] = c.mVertZPos[0];
  72. mVertZPos[1] = c.mVertZPos[1];
  73. mNEventsPassed = 0;
  74. mNEventsFailed = 0;
  75. }
  76. #endif