StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
randomRotateEventCut.h
1 /***************************************************************************
2  *
3  * $Id: randomRotateEventCut.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: randomRotateEventCut.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 
21 #ifndef randomRotateEventCut_hh
22 #define randomRotateEventCut_hh
23 
24 // do I need these lines ?
25 //#ifndef StMaker_H
26 //#include "StMaker.h"
27 //#endif
28 
29 #include "StHbtMaker/Base/StHbtEventCut.h"
30 class HepRandom;
31 
33 
34 public:
35 
38  //~randomRotateEventCut();
39 
40  void SetEventMult(const int& lo,const int& hi);
41  void SetVertZPos(const float& lo, const float& hi);
42  void RotationOn();
43  void RotationOff();
44  long NEventsPassed();
45  long NEventsFailed();
46 
47  virtual StHbtString Report();
48  virtual bool Pass(const StHbtEvent*);
49 
50  randomRotateEventCut* Clone();
51 
52 private: // here are the quantities I want to cut on...
53 
54  bool mRotation;
55  int mEventMult[2]; // range of multiplicity
56  float mVertZPos[2]; // range of z-position of vertex
57  long mNEventsPassed;
58  long mNEventsFailed;
59  HepRandom* engine;
60 
61 #ifdef __ROOT__
62  ClassDef(randomRotateEventCut, 1)
63 #endif
64 
65 };
66 
67 inline void randomRotateEventCut::SetEventMult(const int& lo, const int& hi){mEventMult[0]=lo; mEventMult[1]=hi;}
68 inline void randomRotateEventCut::SetVertZPos(const float& lo, const float& hi){mVertZPos[0]=lo; mVertZPos[1]=hi;}
69 inline void randomRotateEventCut::RotationOn() { mRotation = true; }
70 inline void randomRotateEventCut::RotationOff() { mRotation = false; }
71 inline long randomRotateEventCut::NEventsPassed() {return mNEventsPassed;}
72 inline long randomRotateEventCut::NEventsFailed() {return mNEventsFailed;}
73 inline randomRotateEventCut* randomRotateEventCut::Clone() { randomRotateEventCut* c = new randomRotateEventCut(*this); return c;}
74 inline randomRotateEventCut::randomRotateEventCut(randomRotateEventCut& c) : StHbtEventCut(c) {
75  mRotation = c.mRotation;
76  mEventMult[0] = c.mEventMult[0];
77  mEventMult[1] = c.mEventMult[1];
78  mVertZPos[0] = c.mVertZPos[0];
79  mVertZPos[1] = c.mVertZPos[1];
80  mNEventsPassed = 0;
81  mNEventsFailed = 0;
82 }
83 
84 
85 #endif