00001
00002
00003
00004
00005
00006 #ifndef StHbtMuDstMakerReader_hh
00007 #define StHbtMuDstMakerReader_hh
00008
00009 #include <string>
00010
00011 #include "StMaker.h"
00012 #include "StChain.h"
00013 #include "St_DataSetIter.h"
00014
00015 #include "StMuDSTMaker/COMMON/StMuDstMaker.h"
00016
00017 #include "Base/StHbtEventReader.hh"
00018
00019
00020
00021 class StMuEvent;
00022 class StMuDst;
00023 class StMuCut;
00024
00025 class StEvent;
00026 class StTrackNode;
00027 class StTrack;
00028 class StRichSpectra;
00029 class StDetectorState;
00030 class StL3AlgorithmInfo;
00031
00032 class StuProbabilityPidAlgorithm;
00033
00035 class StStrangeEvMuDst;
00036 class StStrangeMuDstMaker;
00037 class StV0MuDst;
00038 class StV0Mc;
00039 class StXiMuDst;
00040 class StXiMc;
00041 class StKinkMuDst;
00042 class StKinkMc;
00043 class StStrangeAssoc;
00044
00046 class StFlowMaker;
00047
00048 class StMuCut;
00049 class TFile;
00050 class TTree;
00051 class TChain;
00052 class TClonesArray;
00053
00056
00057 class StHbtMuDstMakerReader : public StHbtEventReader {
00058 public:
00059 StHbtMuDstMakerReader(StMuDstMaker* maker);
00060 ~StHbtMuDstMakerReader();
00061
00062 StHbtEvent* ReturnHbtEvent();
00063 int Init();
00064 int Init(const char* ReadWrite, StHbtString& Message)
00065 { return StHbtEventReader::Init(ReadWrite,Message);}
00066 void Clear();
00067 void clear();
00068 void Finish();
00069
00070 bool readTracks();
00071 bool readV0s();
00072 bool readXis();
00073 bool readKinks();
00074 unsigned int trackType();
00075 StMuDst* muDst();
00076
00077 StStrangeMuDstMaker* stStrangeMuDstMaker();
00078 StFlowMaker* flowMaker();
00079
00080 void setProbabilityPidFile(const char* file);
00081 void setFlowMaker(StFlowMaker*);
00082 void setTrackType(unsigned int);
00083 void setReadTracks(bool);
00084 void setReadV0s(bool);
00085 void setReadXis(bool);
00086 void setReadKinks(bool);
00087
00088 enum ioMode {ioRead, ioWrite};
00089 enum ioNameMode {ioFix, ioAuto};
00090 private:
00091
00092 StMuDst* mMuDst;
00093
00094 StStrangeMuDstMaker* mStStrangeMuDstMaker;
00095 StFlowMaker* mFlowMaker;
00096 StMuDstMaker* mMuDstMaker;
00097
00098 ioMode mIoMode;
00099 ioNameMode mIoNameMode;
00100 string mDirName;
00101 string mFileName;
00102 string mFilter;
00103 int mMaxFiles;
00104
00105 unsigned int mTrackType;
00106 bool mReadTracks;
00107 bool mReadV0s;
00108 bool mReadXis;
00109 bool mReadKinks;
00110 bool mFinish;
00111
00112 TFile* mCurrentFile;
00113 string mCurrentFileName;
00114
00115 int mEventCounter;
00116
00117 StHbtEvent* mHbtEvent;
00118 StuProbabilityPidAlgorithm* mProbabilityPidAlgorithm;
00119
00120 ClassDef(StHbtMuDstMakerReader, 1)
00121 };
00122
00123 inline StMuDst* StHbtMuDstMakerReader::muDst() { return mMuDst;}
00124 inline void StHbtMuDstMakerReader::setFlowMaker(StFlowMaker* f) {mFlowMaker=f;}
00125 inline StFlowMaker* StHbtMuDstMakerReader::flowMaker() {return mFlowMaker;}
00126 inline void StHbtMuDstMakerReader::setTrackType(unsigned int t) {mTrackType=t;}
00127 inline unsigned int StHbtMuDstMakerReader::trackType() {return mTrackType;}
00128
00129 inline bool StHbtMuDstMakerReader::readTracks() { return mReadTracks;}
00130 inline bool StHbtMuDstMakerReader::readV0s() { return mReadV0s;}
00131 inline bool StHbtMuDstMakerReader::readXis() { return mReadXis;}
00132 inline bool StHbtMuDstMakerReader::readKinks() { return mReadKinks;}
00133 inline void StHbtMuDstMakerReader::setReadTracks(bool b) { mReadTracks=b;}
00134 inline void StHbtMuDstMakerReader::setReadV0s(bool b) { mReadV0s=b;}
00135 inline void StHbtMuDstMakerReader::setReadXis(bool b) { mReadXis=b;}
00136 inline void StHbtMuDstMakerReader::setReadKinks(bool b) { mReadKinks=b;}
00137
00138 #endif
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153