StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFlowCutEvent.h
1 //
3 // $Id: StFlowCutEvent.h,v 1.14 2006/02/22 19:27:04 posk Exp $
4 //
5 // Author: Art Poskanzer and Raimond Snellings, LBNL, Oct 1999
6 // FTPC added by Markus Oldenburg, MPI, Dec 2000
7 // MuDst enabled by Kirill Filimonov, LBNL, Jun 2002
8 //
9 // Description: Class for applying flow event cuts
10 // If lo >= hi no cut is applied
11 // All functions and data members are static
12 // Therefore, no need to instantiate
13 // Just use StFlowCutEvent::func();
14 //
16 
17 #ifndef _StFlowCutEvent_INCLUDED_
18 #define _StFlowCutEvent_INCLUDED_
19 #include <Stiostream.h>
20 #include <stdlib.h>
21 #include "Rtypes.h"
22 class StEvent;
23 class StFlowPicoEvent;
24 class StMuEvent;
25 class StMuDst;
26 
28 
29  public:
30 
32  virtual ~StFlowCutEvent();
33 
34  static Bool_t CheckEvent(StEvent* pEvent);
35  static Bool_t CheckEvent(StFlowPicoEvent* pPicoEvent);
36  static Bool_t CheckEvent(StMuDst* pMu);
37  static Bool_t CheckEtaSymmetry(StEvent* pEvent);
38  static Bool_t CheckEtaSymmetry(StFlowPicoEvent* pPicoEvent);
39  static Bool_t CheckEtaSymmetry(StMuEvent* pMuEvent);
40  static void PrintCutList();
41  static void SetCent(const Int_t lo, const Int_t hi);
42  static void SetMult(const Int_t lo, const Int_t hi);
43  static void SetVertexX(const Float_t lo, const Float_t hi);
44  static void SetVertexY(const Float_t lo, const Float_t hi);
45  static void SetVertexZ(const Float_t lo, const Float_t hi);
46  static void SetEtaSymTpc(Float_t lo, Float_t hi);
47  static void SetEtaSymFtpc(Float_t lo, Float_t hi);
48  static void SetTrigger(const UInt_t value);
49  static UInt_t TriggersFound();
50  static UInt_t GetFlowTriggerBitMap();
51 
52  private:
53 
54  static UInt_t mEventN; // number of events
55  static UInt_t mGoodEventN; // number of accepted events
56 
57  static UInt_t mCentCut; // number of not accepted events
58  static Int_t mCentCuts[2]; // range of multiplicity
59 
60  static UInt_t mMultCut; // number of not accepted events
61  static Int_t mMultCuts[2]; // range of multiplicity
62 
63  static UInt_t mVertexXCut; // number of not accepted events
64  static Float_t mVertexXCuts[2]; // range of X vertex position
65 
66  static UInt_t mVertexYCut; // number of not accepted events
67  static Float_t mVertexYCuts[2]; // range of Y vertex position
68 
69  static UInt_t mVertexZCut; // number of not accepted events
70  static Float_t mVertexZCuts[2]; // range of Z vertex position
71 
72  static UInt_t mEtaSymTpcCutN; // number not accepted
73  static Float_t mEtaSymTpcCuts[2]; // range
74 
75  static UInt_t mEtaSymFtpcCutN; // number not accepted
76  static Float_t mEtaSymFtpcCuts[2]; // range
77 
78  static UInt_t mTriggerCutN; // number not accepted
79  static UInt_t mTriggerCut; // allowed trigger value
80 
81  static UInt_t mTriggersFound;
82  static UInt_t flowTriggerBitMap;
83 
84  ClassDef(StFlowCutEvent,1) // macro for rootcint
85 };
86 
87 inline void StFlowCutEvent::SetCent(const Int_t lo, const Int_t hi) {
88  mCentCuts[0] = lo; mCentCuts[1] = hi; }
89 
90 inline void StFlowCutEvent::SetMult(const Int_t lo, const Int_t hi) {
91  mMultCuts[0] = lo; mMultCuts[1] = hi; }
92 
93 inline void StFlowCutEvent::SetVertexX(const Float_t lo, const Float_t hi) {
94  mVertexXCuts[0] = lo; mVertexXCuts[1] = hi; }
95 
96 inline void StFlowCutEvent::SetVertexY(const Float_t lo, const Float_t hi) {
97  mVertexYCuts[0] = lo; mVertexYCuts[1] = hi; }
98 
99 inline void StFlowCutEvent::SetVertexZ(const Float_t lo, const Float_t hi) {
100  mVertexZCuts[0] = lo; mVertexZCuts[1] = hi; }
101 
102 inline void StFlowCutEvent::SetEtaSymTpc(Float_t lo, Float_t hi) {
103  mEtaSymTpcCuts[0] = lo; mEtaSymTpcCuts[1] = hi; }
104 
105 inline void StFlowCutEvent::SetEtaSymFtpc(Float_t lo, Float_t hi) {
106  mEtaSymFtpcCuts[0] = lo; mEtaSymFtpcCuts[1] = hi; }
107 
108 inline void StFlowCutEvent::SetTrigger(const UInt_t value) {
109  mTriggerCut = value; }
110 
111 inline UInt_t StFlowCutEvent::TriggersFound() {
112  return mTriggersFound; }
113 
114 inline UInt_t StFlowCutEvent::GetFlowTriggerBitMap() {
115  return flowTriggerBitMap; }
116 
117 #endif
118 
120 //
121 // $Log: StFlowCutEvent.h,v $
122 // Revision 1.14 2006/02/22 19:27:04 posk
123 // Changes needed for the MuDst
124 // Stopped using eventSummary()
125 //
126 // Revision 1.13 2005/02/11 23:22:12 posk
127 // Made TriggersFound() work for pico files.
128 //
129 // Revision 1.12 2005/02/08 20:57:36 psoren
130 // trigger and centrality selections were updated for all runs after run 4 to be compatible with trigger collections. Added TriggersFound() and GetFlowTriggerBitMap() functions.
131 //
132 // Revision 1.11 2003/09/02 17:58:11 perev
133 // gcc 3.2 updates + WarnOff
134 //
135 // Revision 1.10 2003/01/10 16:41:56 oldi
136 // Several changes to comply with FTPC tracks:
137 // - Switch to include/exclude FTPC tracks introduced.
138 // The same switch changes the range of the eta histograms.
139 // - Eta symmetry plots for FTPC tracks added and separated from TPC plots.
140 // - PhiWgts and related histograms for FTPC tracks split in FarEast, East,
141 // West, FarWest (depending on vertex.z()).
142 // - Psi_Diff plots for 2 different selections and the first 2 harmonics added.
143 // - Cut to exclude mu-events with no primary vertex introduced.
144 // (This is possible for UPC events and FTPC tracks.)
145 // - Global DCA cut for FTPC tracks added.
146 // - Global DCA cuts for event plane selection separated for TPC and FTPC tracks.
147 // - Charge cut for FTPC tracks added.
148 //
149 // Revision 1.9 2002/06/10 22:50:57 posk
150 // pt and eta weighting now default.
151 // DcaGlobalPart default now 0 to 1 cm.
152 // Event cut order changed.
153 //
154 // Revision 1.8 2002/06/07 22:18:38 kirill
155 // Introduced MuDst reader
156 //
157 // Revision 1.7 2002/01/30 13:04:20 oldi
158 // Trigger cut implemented.
159 //
160 // Revision 1.6 2000/12/12 20:22:05 posk
161 // Put log comments at end of files.
162 // Deleted persistent StFlowEvent (old micro DST).
163 //
164 // Revision 1.5 2000/08/31 18:58:19 posk
165 // For picoDST, added version number, runID, and multEta for centrality.
166 // Added centrality cut when reading picoDST.
167 // Added pt and eta selections for particles corr. wrt event plane.
168 //
169 // Revision 1.4 2000/07/12 17:54:34 posk
170 // Added chi2 and dca cuts. Multiplied EtaSym by ::sqrt(mult).
171 // Apply cuts when reading picoevent file.
172 //
173 // Revision 1.3 2000/06/30 14:48:30 posk
174 // Using MessageMgr, changed Eta Symmetry cut.
175 //
176 // Revision 1.2 2000/05/26 21:29:26 posk
177 // Protected Track data members from overflow.
178 //
179 // Revision 1.1 2000/03/02 23:02:40 posk
180 // Changed extensions from .hh and .cc to .h and .cxx .
181 //
182 // Revision 1.4 1999/12/15 22:01:23 posk
183 // Added StFlowConstants.hh
184 //
185 // Revision 1.3 1999/11/30 18:52:48 snelling
186 // First modification for the new StEvent
187 //
188 // Revision 1.2 1999/11/24 18:17:10 posk
189 // Put the methods which act on the data in with the data in StFlowEvent.
190 //
191 // Revision 1.1 1999/11/05 00:06:42 posk
192 // First versions of Flow cut classes.
193 //