00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef rotateToReactionPlaneEventCut_hh
00022 #define rotateToReactionPlaneEventCut_hh
00023
00024
00025
00026
00027
00028
00029 #include "StHbtMaker/Base/StHbtEventCut.h"
00030 class HepRandom;
00031 class HepJamesRandom;
00032 class RandGauss;
00033
00034 class rotateToReactionPlaneEventCut : public StHbtEventCut {
00035 public:
00036
00037 rotateToReactionPlaneEventCut();
00038 rotateToReactionPlaneEventCut(rotateToReactionPlaneEventCut&);
00039
00040
00041 void SetEventMult(const int& lo,const int& hi);
00042 void SetVertZPos(const float& lo, const float& hi);
00043 void SetSmear(const float& s=0);
00044 void RotationOn();
00045 void RotationOff();
00046 long NEventsPassed();
00047 long NEventsFailed();
00048
00049 virtual StHbtString Report();
00050 virtual bool Pass(const StHbtEvent*);
00051
00052 rotateToReactionPlaneEventCut* Clone();
00053
00054 private:
00055
00056 bool mRotation;
00057 float mSmear;
00058 int mEventMult[2];
00059 float mVertZPos[2];
00060
00061 long mNEventsPassed;
00062 long mNEventsFailed;
00063 HepJamesRandom* engine;
00064 RandGauss* gauss;
00065
00066 #ifdef __ROOT__
00067 ClassDef(rotateToReactionPlaneEventCut, 1)
00068 #endif
00069
00070 };
00071
00072 inline void rotateToReactionPlaneEventCut::SetEventMult(const int& lo, const int& hi){mEventMult[0]=lo; mEventMult[1]=hi;}
00073 inline void rotateToReactionPlaneEventCut::SetVertZPos(const float& lo, const float& hi){mVertZPos[0]=lo; mVertZPos[1]=hi;}
00074 inline void rotateToReactionPlaneEventCut::SetSmear(const float& s){ mSmear = s;}
00075 inline void rotateToReactionPlaneEventCut::RotationOn() { mRotation = true; }
00076 inline void rotateToReactionPlaneEventCut::RotationOff() { mRotation = false; }
00077 inline long rotateToReactionPlaneEventCut::NEventsPassed() {return mNEventsPassed;}
00078 inline long rotateToReactionPlaneEventCut::NEventsFailed() {return mNEventsFailed;}
00079 inline rotateToReactionPlaneEventCut* rotateToReactionPlaneEventCut::Clone() { rotateToReactionPlaneEventCut* c = new rotateToReactionPlaneEventCut(*this); return c;}
00080 inline rotateToReactionPlaneEventCut::rotateToReactionPlaneEventCut(rotateToReactionPlaneEventCut& c) : StHbtEventCut(c) {
00081 mRotation = c.mRotation;
00082 mSmear = c.mSmear;
00083 mEventMult[0] = c.mEventMult[0];
00084 mEventMult[1] = c.mEventMult[1];
00085 mVertZPos[0] = c.mVertZPos[0];
00086 mVertZPos[1] = c.mVertZPos[1];
00087 mNEventsPassed = 0;
00088 mNEventsFailed = 0;
00089 }
00090
00091
00092 #endif