00001 /*************************************************************************** 00002 * 00003 * $Id: StStandardHbtEventReader.h,v 1.21 2001/12/05 14:42:18 laue Exp $ 00004 * 00005 * Author: Mike Lisa, Ohio State, lisa@mps.ohio-state.edu 00006 *************************************************************************** 00007 * 00008 * Description: part of STAR HBT Framework: StHbtMaker package 00009 * This is the HbtEventReader class to be used when running 00010 * root4star with StEventReaderMaker. 00011 * It inherits from StHbtReaderMaker 00012 * 00013 * Since this StHbtEventReader class gets its input from StEvent in root4star, 00014 * it needs to know what chain has the StEventReaderMaker on it. So you have 00015 * to initialize (thru SetTheChain()). 00016 * Other StHbtEventReader classes (that might read ASCII files for example) 00017 * would need other information, like the filename I guess, and so would 00018 * have other private data members that they access. 00019 * 00020 *************************************************************************** 00021 * 00022 * $Log: StStandardHbtEventReader.h,v $ 00023 * Revision 1.21 2001/12/05 14:42:18 laue 00024 * updated for trigger(action)word and l3TriggerAlgorithm 00025 * 00026 * Revision 1.18 2001/06/04 19:09:54 rcwells 00027 * Adding B-field, run number, and improved reaction plane functionality 00028 * 00029 * Revision 1.17 2001/02/08 22:38:26 laue 00030 * Reader can now switch between different track types: primary is default 00031 * 00032 * Revision 1.16 2000/08/31 22:32:37 laue 00033 * Readers updated for new StHbtEvent version 3. 00034 * 00035 * Revision 1.15 2000/07/16 21:14:45 laue 00036 * StStandardHbtEventReader modified to read primary tracks only 00037 * 00038 * Some unnecessary includes removed. 00039 * Changes from StV0MiniDst to StStrangeMuDst 00040 * 00041 * Revision 1.14 2000/05/25 21:04:30 laue 00042 * StStandarsHbtEventReader updated for the new StStrangMuDstMaker 00043 * 00044 * Revision 1.13 2000/02/18 22:01:56 laue 00045 * Implementation of a collections of StHbtEventWriters. 00046 * We now can write multiple microDsts at a time. 00047 * 00048 * All readers can have front-loaded cuts now. For that reason some 00049 * functionality was moved from the specific readers to the base class 00050 * 00051 * Revision 1.12 2000/01/25 17:35:27 laue 00052 * I. In order to run the stand alone version of the StHbtMaker the following 00053 * changes have been done: 00054 * a) all ClassDefs and ClassImps have been put into #ifdef __ROOT__ statements 00055 * b) unnecessary includes of StMaker.h have been removed 00056 * c) the subdirectory StHbtMaker/doc/Make has been created including everything 00057 * needed for the stand alone version 00058 * 00059 * II. To reduce the amount of compiler warning 00060 * a) some variables have been type casted 00061 * b) some destructors have been declared as virtual 00062 * 00063 * Revision 1.11 1999/12/03 22:24:37 lisa 00064 * (1) make Cuts and CorrFctns point back to parent Analysis (as well as other way). (2) Accommodate new PidTraits mechanism 00065 * 00066 * Revision 1.10 1999/11/24 22:01:41 laue 00067 * reader adopted to the new StEvent 2.x 00068 * 00069 * Revision 1.9 1999/10/15 01:57:37 lisa 00070 * Important enhancement of StHbtMaker - implement Franks CutMonitors 00071 * ---------------------------------------------------------- 00072 * This means 3 new files in Infrastructure area (CutMonitor), 00073 * several specific CutMonitor classes in the Cut area 00074 * and a new base class in the Base area (StHbtCutMonitor). 00075 * This means also changing all Cut Base class header files from .hh to .h 00076 * so we have access to CutMonitor methods from Cint command line. 00077 * This last means 00078 * 1) files which include these header files are slightly modified 00079 * 2) a side benefit: the TrackCuts and V0Cuts no longer need 00080 * a SetMass() implementation in each Cut class, which was stupid. 00081 * Also: 00082 * ----- 00083 * Include Franks StHbtAssociationReader 00084 * ** None of these changes should affect any user ** 00085 * 00086 * Revision 1.8 1999/09/24 01:23:14 fisyak 00087 * Reduced Include Path 00088 * 00089 * Revision 1.7 1999/09/17 22:38:03 lisa 00090 * first full integration of V0s into StHbt framework 00091 * 00092 * Revision 1.6 1999/09/16 18:48:01 lisa 00093 * replace placeholder HbtV0Track stuff with Helens StHbtV0 classes 00094 * 00095 * Revision 1.5 1999/09/09 02:59:55 lisa 00096 * fix Randys factor of 2 in CoulombCorrection AND add SetCut methods to StStandardHbtEventReader which were forgotten last commit 00097 * 00098 * Revision 1.4 1999/09/08 04:15:53 lisa 00099 * persistent microDST implementation tweaked to please fickle solaris details 00100 * 00101 * Revision 1.3 1999/09/03 22:39:17 lisa 00102 * Readers now MUST have Report() methods and MAY have WriteHbtEvent() methods 00103 * 00104 * Revision 1.2 1999/07/06 22:33:24 lisa 00105 * Adjusted all to work in pro and new - dev itself is broken 00106 * 00107 * Revision 1.1.1.1 1999/06/29 16:02:57 lisa 00108 * Installation of StHbtMaker 00109 * 00110 * With the .DEV->DEV revolution of June 1999, must change 00111 * the way that this thing gets StEvent object 00112 * no more going through the chain. Now, we have to have 00113 * a pointer to the object (of type StEventMaker, which is 00114 * derived from StMaker) which has a method to get the StEvent. 00115 **************************************************************************/ 00116 00117 #ifndef StStandardHbtEventReader_hh 00118 #define StStandardHbtEventReader_hh 00119 00120 #include "StHbtMaker/Base/StHbtEventReader.hh" 00121 #include "StHbtMaker/Reader/StHbtTagReader.h" 00122 00123 00124 #include "StMaker.h" 00125 #include "StChain.h" 00126 #include "St_DataSetIter.h" 00127 00128 #include "StEvent/StEnumerations.h" 00129 #include "StStrangeMuDstMaker/StStrangeMuDstMaker.h" 00130 00131 class StPionPlus; 00132 class StKaonPlus; 00133 class StProton; 00134 class StTpcDedxPidAlgorithm; 00135 class StParticleDefinition; 00136 class StFlowMaker; 00137 class StFlowEvent; 00138 class StFlowAnalysisMaker; 00139 class StFlowSelection; 00140 00141 class StStandardHbtEventReader : public StMaker, public StHbtEventReader{ 00142 00143 private: 00144 00145 StMaker* mTheEventMaker; 00146 StStrangeMuDstMaker* mTheV0Maker; 00147 00148 StHbtTagReader* mTheTagReader; 00149 00150 StTrackType mTrackType; 00151 bool mReadTracks; 00152 bool mReadV0s; 00153 bool mReadXis; 00154 bool mReadKinks; 00155 00156 StFlowMaker* mFlowMaker; 00157 StFlowAnalysisMaker* mFlowAnalysisMaker; 00158 00159 protected: 00160 00161 public: 00162 StStandardHbtEventReader(); 00163 ~StStandardHbtEventReader(); 00164 00165 StHbtEvent* ReturnHbtEvent(); 00166 StHbtString Report(); 00167 00168 void SetTheEventMaker(StMaker*); 00169 StMaker* TheEventMaker(); 00170 void SetTheV0Maker(StStrangeMuDstMaker*); 00171 StStrangeMuDstMaker* TheV0Maker(); 00172 void SetTheTagReader(StHbtTagReader*); 00173 StHbtTagReader* TheTagReader(); 00174 00175 StTrackType TrackType(); 00176 bool ReadTracks(); 00177 bool ReadV0s(); 00178 bool ReadXis(); 00179 bool ReadKinks(); 00180 void SetTrackType(StTrackType); 00181 void SetReadTracks(bool); 00182 void SetReadV0s(bool); 00183 void SetReadXis(bool); 00184 void SetReadKinks(bool); 00185 void SetFlowMaker(StFlowMaker* flowMaker); 00186 void SetFlowAnalysisMaker(StFlowAnalysisMaker* flowAnal); 00187 00188 #ifdef __ROOT__ 00189 ClassDef(StStandardHbtEventReader, 1) 00190 #endif 00191 }; 00192 00193 inline void StStandardHbtEventReader::SetTheEventMaker(StMaker* maker){mTheEventMaker=maker;} 00194 inline StMaker* StStandardHbtEventReader::TheEventMaker(){return mTheEventMaker;} 00195 inline void StStandardHbtEventReader::SetTheV0Maker(StStrangeMuDstMaker* maker){mTheV0Maker=maker;} 00196 inline StStrangeMuDstMaker* StStandardHbtEventReader::TheV0Maker(){return mTheV0Maker;} 00197 inline void StStandardHbtEventReader::SetTheTagReader(StHbtTagReader* maker){mTheTagReader=maker;} 00198 inline StHbtTagReader* StStandardHbtEventReader::TheTagReader(){return mTheTagReader;} 00199 inline StTrackType StStandardHbtEventReader::TrackType() { return mTrackType;} 00200 inline bool StStandardHbtEventReader::ReadTracks() { return mReadTracks;} 00201 inline bool StStandardHbtEventReader::ReadV0s() { return mReadV0s;} 00202 inline bool StStandardHbtEventReader::ReadXis() { return mReadXis;} 00203 inline bool StStandardHbtEventReader::ReadKinks() { return mReadKinks;} 00204 inline void StStandardHbtEventReader::SetTrackType(StTrackType t) { mTrackType=t;} 00205 inline void StStandardHbtEventReader::SetReadTracks(bool b) { mReadTracks=b;} 00206 inline void StStandardHbtEventReader::SetReadV0s(bool b) { mReadV0s=b;} 00207 inline void StStandardHbtEventReader::SetReadXis(bool b) { mReadXis=b;} 00208 inline void StStandardHbtEventReader::SetReadKinks(bool b) { mReadKinks=b;} 00209 inline void StStandardHbtEventReader::SetFlowMaker(StFlowMaker* flowMaker){mFlowMaker = flowMaker;} 00210 inline void StStandardHbtEventReader::SetFlowAnalysisMaker(StFlowAnalysisMaker* flowAnal) { 00211 mFlowAnalysisMaker = flowAnal; 00212 } 00213 00214 #endif 00215
1.5.9