StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mikesEventCut.h
1 /***************************************************************************
2  *
3  * $Id: mikesEventCut.h,v 1.5 2000/03/23 22:57:28 laue Exp $
4  *
5  * Author: Mike Lisa, Ohio State, lisa@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
11  *
12  ***************************************************************************
13  *
14  * $Log: mikesEventCut.h,v $
15  * Revision 1.5 2000/03/23 22:57:28 laue
16  * Clone() function implemented
17  *
18  * Revision 1.4 2000/01/25 17:35:02 laue
19  * I. In order to run the stand alone version of the StHbtMaker the following
20  * changes have been done:
21  * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
22  * b) unnecessary includes of StMaker.h have been removed
23  * c) the subdirectory StHbtMaker/doc/Make has been created including everything
24  * needed for the stand alone version
25  *
26  * II. To reduce the amount of compiler warning
27  * a) some variables have been type casted
28  * b) some destructors have been declared as virtual
29  *
30  * Revision 1.3 1999/10/15 01:57:04 lisa
31  * Important enhancement of StHbtMaker - implement Franks CutMonitors
32  * ----------------------------------------------------------
33  * This means 3 new files in Infrastructure area (CutMonitor),
34  * several specific CutMonitor classes in the Cut area
35  * and a new base class in the Base area (StHbtCutMonitor).
36  * This means also changing all Cut Base class header files from .hh to .h
37  * so we have access to CutMonitor methods from Cint command line.
38  * This last means
39  * 1) files which include these header files are slightly modified
40  * 2) a side benefit: the TrackCuts and V0Cuts no longer need
41  * a SetMass() implementation in each Cut class, which was stupid.
42  * Also:
43  * -----
44  * Include Franks StHbtAssociationReader
45  * ** None of these changes should affect any user **
46  *
47  * Revision 1.2 1999/07/06 22:33:21 lisa
48  * Adjusted all to work in pro and new - dev itself is broken
49  *
50  * Revision 1.1.1.1 1999/06/29 16:02:56 lisa
51  * Installation of StHbtMaker
52  *
53  **************************************************************************/
54 
55 #ifndef mikesEventCut_hh
56 #define mikesEventCut_hh
57 
58 // do I need these lines ?
59 //#ifndef StMaker_H
60 //#include "StMaker.h"
61 //#endif
62 
63 #include "StHbtMaker/Base/StHbtEventCut.h"
64 
65 class mikesEventCut : public StHbtEventCut {
66 
67 public:
68 
69  mikesEventCut();
71  //~mikesEventCut();
72 
73  void SetEventMult(const int& lo,const int& hi);
74  void SetVertZPos(const float& lo, const float& hi);
75  int NEventsPassed();
76  int NEventsFailed();
77 
78  virtual StHbtString Report();
79  virtual bool Pass(const StHbtEvent*);
80 
81  mikesEventCut* Clone();
82 
83 private: // here are the quantities I want to cut on...
84 
85  int mEventMult[2]; // range of multiplicity
86  float mVertZPos[2]; // range of z-position of vertex
87 
88  long mNEventsPassed;
89  long mNEventsFailed;
90 
91 #ifdef __ROOT__
92  ClassDef(mikesEventCut, 1)
93 #endif
94 
95 };
96 
97 inline void mikesEventCut::SetEventMult(const int& lo, const int& hi){mEventMult[0]=lo; mEventMult[1]=hi;}
98 inline void mikesEventCut::SetVertZPos(const float& lo, const float& hi){mVertZPos[0]=lo; mVertZPos[1]=hi;}
99 inline int mikesEventCut::NEventsPassed() {return mNEventsPassed;}
100 inline int mikesEventCut::NEventsFailed() {return mNEventsFailed;}
101 inline mikesEventCut* mikesEventCut::Clone() { mikesEventCut* c = new mikesEventCut(*this); return c;}
102 inline mikesEventCut::mikesEventCut(mikesEventCut& c) : StHbtEventCut(c) {
103  mEventMult[0] = c.mEventMult[0];
104  mEventMult[1] = c.mEventMult[1];
105  mVertZPos[0] = c.mVertZPos[0];
106  mVertZPos[1] = c.mVertZPos[1];
107  mNEventsPassed = 0;
108  mNEventsFailed = 0;
109 }
110 
111 
112 #endif