StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StStandardHbtEventReader.h
1 /***************************************************************************
2  *
3  * $Id: StStandardHbtEventReader.h,v 1.21 2001/12/05 14:42:18 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  * This is the HbtEventReader class to be used when running
10  * root4star with StEventReaderMaker.
11  * It inherits from StHbtReaderMaker
12  *
13  * Since this StHbtEventReader class gets its input from StEvent in root4star,
14  * it needs to know what chain has the StEventReaderMaker on it. So you have
15  * to initialize (thru SetTheChain()).
16  * Other StHbtEventReader classes (that might read ASCII files for example)
17  * would need other information, like the filename I guess, and so would
18  * have other private data members that they access.
19  *
20  ***************************************************************************
21  *
22  * $Log: StStandardHbtEventReader.h,v $
23  * Revision 1.21 2001/12/05 14:42:18 laue
24  * updated for trigger(action)word and l3TriggerAlgorithm
25  *
26  * Revision 1.18 2001/06/04 19:09:54 rcwells
27  * Adding B-field, run number, and improved reaction plane functionality
28  *
29  * Revision 1.17 2001/02/08 22:38:26 laue
30  * Reader can now switch between different track types: primary is default
31  *
32  * Revision 1.16 2000/08/31 22:32:37 laue
33  * Readers updated for new StHbtEvent version 3.
34  *
35  * Revision 1.15 2000/07/16 21:14:45 laue
36  * StStandardHbtEventReader modified to read primary tracks only
37  *
38  * Some unnecessary includes removed.
39  * Changes from StV0MiniDst to StStrangeMuDst
40  *
41  * Revision 1.14 2000/05/25 21:04:30 laue
42  * StStandarsHbtEventReader updated for the new StStrangMuDstMaker
43  *
44  * Revision 1.13 2000/02/18 22:01:56 laue
45  * Implementation of a collections of StHbtEventWriters.
46  * We now can write multiple microDsts at a time.
47  *
48  * All readers can have front-loaded cuts now. For that reason some
49  * functionality was moved from the specific readers to the base class
50  *
51  * Revision 1.12 2000/01/25 17:35:27 laue
52  * I. In order to run the stand alone version of the StHbtMaker the following
53  * changes have been done:
54  * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements
55  * b) unnecessary includes of StMaker.h have been removed
56  * c) the subdirectory StHbtMaker/doc/Make has been created including everything
57  * needed for the stand alone version
58  *
59  * II. To reduce the amount of compiler warning
60  * a) some variables have been type casted
61  * b) some destructors have been declared as virtual
62  *
63  * Revision 1.11 1999/12/03 22:24:37 lisa
64  * (1) make Cuts and CorrFctns point back to parent Analysis (as well as other way). (2) Accommodate new PidTraits mechanism
65  *
66  * Revision 1.10 1999/11/24 22:01:41 laue
67  * reader adopted to the new StEvent 2.x
68  *
69  * Revision 1.9 1999/10/15 01:57:37 lisa
70  * Important enhancement of StHbtMaker - implement Franks CutMonitors
71  * ----------------------------------------------------------
72  * This means 3 new files in Infrastructure area (CutMonitor),
73  * several specific CutMonitor classes in the Cut area
74  * and a new base class in the Base area (StHbtCutMonitor).
75  * This means also changing all Cut Base class header files from .hh to .h
76  * so we have access to CutMonitor methods from Cint command line.
77  * This last means
78  * 1) files which include these header files are slightly modified
79  * 2) a side benefit: the TrackCuts and V0Cuts no longer need
80  * a SetMass() implementation in each Cut class, which was stupid.
81  * Also:
82  * -----
83  * Include Franks StHbtAssociationReader
84  * ** None of these changes should affect any user **
85  *
86  * Revision 1.8 1999/09/24 01:23:14 fisyak
87  * Reduced Include Path
88  *
89  * Revision 1.7 1999/09/17 22:38:03 lisa
90  * first full integration of V0s into StHbt framework
91  *
92  * Revision 1.6 1999/09/16 18:48:01 lisa
93  * replace placeholder HbtV0Track stuff with Helens StHbtV0 classes
94  *
95  * Revision 1.5 1999/09/09 02:59:55 lisa
96  * fix Randys factor of 2 in CoulombCorrection AND add SetCut methods to StStandardHbtEventReader which were forgotten last commit
97  *
98  * Revision 1.4 1999/09/08 04:15:53 lisa
99  * persistent microDST implementation tweaked to please fickle solaris details
100  *
101  * Revision 1.3 1999/09/03 22:39:17 lisa
102  * Readers now MUST have Report() methods and MAY have WriteHbtEvent() methods
103  *
104  * Revision 1.2 1999/07/06 22:33:24 lisa
105  * Adjusted all to work in pro and new - dev itself is broken
106  *
107  * Revision 1.1.1.1 1999/06/29 16:02:57 lisa
108  * Installation of StHbtMaker
109  *
110  * With the .DEV->DEV revolution of June 1999, must change
111  * the way that this thing gets StEvent object
112  * no more going through the chain. Now, we have to have
113  * a pointer to the object (of type StEventMaker, which is
114  * derived from StMaker) which has a method to get the StEvent.
115  **************************************************************************/
116 
117 #ifndef StStandardHbtEventReader_hh
118 #define StStandardHbtEventReader_hh
119 
120 #include "StHbtMaker/Base/StHbtEventReader.hh"
121 #include "StHbtMaker/Reader/StHbtTagReader.h"
122 
123 
124 #include "StMaker.h"
125 #include "StChain.h"
126 #include "St_DataSetIter.h"
127 
128 #include "StEvent/StEnumerations.h"
130 
131 class StPionPlus;
132 class StKaonPlus;
133 class StProton;
136 class StFlowMaker;
137 class StFlowEvent;
138 class StFlowAnalysisMaker;
139 class StFlowSelection;
140 
142 
143 private:
144 
145  StMaker* mTheEventMaker;
146  StStrangeMuDstMaker* mTheV0Maker;
147 
148  StHbtTagReader* mTheTagReader;
149 
150  StTrackType mTrackType;
151  bool mReadTracks;
152  bool mReadV0s;
153  bool mReadXis;
154  bool mReadKinks;
155 
156  StFlowMaker* mFlowMaker;
157  StFlowAnalysisMaker* mFlowAnalysisMaker;
158 
159  protected:
160 
161  public:
164 
165  StHbtEvent* ReturnHbtEvent();
166  StHbtString Report();
167 
168  void SetTheEventMaker(StMaker*);
169  StMaker* TheEventMaker();
170  void SetTheV0Maker(StStrangeMuDstMaker*);
171  StStrangeMuDstMaker* TheV0Maker();
172  void SetTheTagReader(StHbtTagReader*);
173  StHbtTagReader* TheTagReader();
174 
175  StTrackType TrackType();
176  bool ReadTracks();
177  bool ReadV0s();
178  bool ReadXis();
179  bool ReadKinks();
180  void SetTrackType(StTrackType);
181  void SetReadTracks(bool);
182  void SetReadV0s(bool);
183  void SetReadXis(bool);
184  void SetReadKinks(bool);
185  void SetFlowMaker(StFlowMaker* flowMaker);
186  void SetFlowAnalysisMaker(StFlowAnalysisMaker* flowAnal);
187 
188 #ifdef __ROOT__
189  ClassDef(StStandardHbtEventReader, 1)
190 #endif
191 };
192 
193 inline void StStandardHbtEventReader::SetTheEventMaker(StMaker* maker){mTheEventMaker=maker;}
194 inline StMaker* StStandardHbtEventReader::TheEventMaker(){return mTheEventMaker;}
195 inline void StStandardHbtEventReader::SetTheV0Maker(StStrangeMuDstMaker* maker){mTheV0Maker=maker;}
196 inline StStrangeMuDstMaker* StStandardHbtEventReader::TheV0Maker(){return mTheV0Maker;}
197 inline void StStandardHbtEventReader::SetTheTagReader(StHbtTagReader* maker){mTheTagReader=maker;}
198 inline StHbtTagReader* StStandardHbtEventReader::TheTagReader(){return mTheTagReader;}
199 inline StTrackType StStandardHbtEventReader::TrackType() { return mTrackType;}
200 inline bool StStandardHbtEventReader::ReadTracks() { return mReadTracks;}
201 inline bool StStandardHbtEventReader::ReadV0s() { return mReadV0s;}
202 inline bool StStandardHbtEventReader::ReadXis() { return mReadXis;}
203 inline bool StStandardHbtEventReader::ReadKinks() { return mReadKinks;}
204 inline void StStandardHbtEventReader::SetTrackType(StTrackType t) { mTrackType=t;}
205 inline void StStandardHbtEventReader::SetReadTracks(bool b) { mReadTracks=b;}
206 inline void StStandardHbtEventReader::SetReadV0s(bool b) { mReadV0s=b;}
207 inline void StStandardHbtEventReader::SetReadXis(bool b) { mReadXis=b;}
208 inline void StStandardHbtEventReader::SetReadKinks(bool b) { mReadKinks=b;}
209 inline void StStandardHbtEventReader::SetFlowMaker(StFlowMaker* flowMaker){mFlowMaker = flowMaker;}
210 inline void StStandardHbtEventReader::SetFlowAnalysisMaker(StFlowAnalysisMaker* flowAnal) {
211  mFlowAnalysisMaker = flowAnal;
212 }
213 
214 #endif
215