StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mikesStarStandardEventCut.h
1 /***************************************************************************
2  *
3  * $Id: mikesStarStandardEventCut.h,v 1.3 2003/09/02 17:58:21 perev 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. This one calculates and then cuts on the number of
11  * negative primary tracks with -0.5<eta<0.5, which is the STAR standard.
12  * The cuts are (copied from StEventUtilities/StuRefMult.hh
13  * primary tracks only
14  * flag > 0
15  * charge < 0
16  * fit points >= 10
17  * abs(eta) < 0.5
18  * dca < 3 cm
19  *
20  ***************************************************************************
21  *
22  * $Log: mikesStarStandardEventCut.h,v $
23  * Revision 1.3 2003/09/02 17:58:21 perev
24  * gcc 3.2 updates + WarnOff
25  *
26  * Revision 1.2 2001/04/25 17:57:46 perev
27  * HPcorrs
28  *
29  * Revision 1.1 2000/09/04 16:27:15 lisa
30  * added StarStandard multiplicity cut and modified mikesTrackCut to allow NOT cutting on charge sign
31  *
32  *
33  **************************************************************************/
34 
35 #ifndef mikesStarStandardEventCut_hh
36 #define mikesStarStandardEventCut_hh
37 
38 
39 #include "StHbtMaker/Base/StHbtEventCut.h"
40 #ifdef HPUX
41 #include "Stiostream.h"
42 #else
43 #include <fstream>
44 #endif
45 
47 
48 public:
49 
52  // ~mikesStarStandardEventCut();
53 
54  void SetEventMult(const int& lo,const int& hi);
55  void SetVertZPos(const float& lo, const float& hi);
56  int NEventsPassed();
57  int NEventsFailed();
58 
59  virtual StHbtString Report();
60  virtual bool Pass(const StHbtEvent*);
61 
63 
64 private: // here are the quantities I want to cut on...
65 
66  int mEventMult[2]; // range of multiplicity
67  float mVertZPos[2]; // range of z-position of vertex
68 
69  long mNEventsPassed;
70  long mNEventsFailed;
71 
72  ofstream* mOutFile;
73 
74 #ifdef __ROOT__
75  ClassDef(mikesStarStandardEventCut, 0)
76 #endif
77 
78 };
79 
80 inline void mikesStarStandardEventCut::SetEventMult(const int& lo, const int& hi){mEventMult[0]=lo; mEventMult[1]=hi;}
81 inline void mikesStarStandardEventCut::SetVertZPos(const float& lo, const float& hi){mVertZPos[0]=lo; mVertZPos[1]=hi;}
82 inline int mikesStarStandardEventCut::NEventsPassed() {return mNEventsPassed;}
83 inline int mikesStarStandardEventCut::NEventsFailed() {return mNEventsFailed;}
84 inline mikesStarStandardEventCut* mikesStarStandardEventCut::Clone() { mikesStarStandardEventCut* c = new mikesStarStandardEventCut(*this); return c;}
85 inline mikesStarStandardEventCut::mikesStarStandardEventCut(mikesStarStandardEventCut& c) : StHbtEventCut(c) {
86  mEventMult[0] = c.mEventMult[0];
87  mEventMult[1] = c.mEventMult[1];
88  mVertZPos[0] = c.mVertZPos[0];
89  mVertZPos[1] = c.mVertZPos[1];
90  mNEventsPassed = 0;
91  mNEventsFailed = 0;
92 }
93 
94 
95 #endif