00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137 #ifndef _StDAQReader_
00138 #define _StDAQReader_
00139 #ifndef NEW_EVP_READER
00140 #define OLD_EVP_READER 1
00141 #endif
00142
00143 struct EventInfo;
00144 typedef EventInfo DAQEventInfo;
00145 class EventReader ;
00146 class StTPCReader ;
00147 class StSSDReader ;
00148 class StEMCReader ;
00149 class StEEMCReader;
00150 class StPMDReader ;
00151 class StFTPCReader;
00152 class StTRGReader ;
00153 class StSVTReader ;
00154 class TDataSet ;
00155
00156 class daqReader;
00157 typedef daqReader evpReader;
00158
00159 #ifndef __CINT__
00160
00161 struct RICH_Reader;
00162 struct L3_Reader;
00163 struct TOF_Reader;
00164 struct FPD_Reader;
00165
00166 typedef RICH_Reader StRICHReader;
00167 typedef L3_Reader StL3Reader;
00168 typedef TOF_Reader StTOFReader;
00169 typedef FPD_Reader StFPDReader;
00170
00171 #endif
00172
00173 #ifdef __CINT__
00174
00175 class StRICHReader;
00176 class StL3Reader;
00177 class StTOFReader;
00178 class StFPDReader;
00179
00180 #endif
00181 class StTrigSummary {
00182 public:
00183 int L1summary[2];
00184 int L2summary[2];
00185 int L3summary[4];
00186 };
00187 class StRtsReaderMaker;
00188 class StStreamFile;
00189
00190
00191
00192 class StDAQReader
00193 {
00194 public:
00195 StDAQReader(const char *file=0, StRtsReaderMaker* rtsMaker=0);
00196 virtual ~StDAQReader();
00197 void clear();
00198 virtual void setVerbose(int ver=1){fVerbose=ver;};
00199 virtual int open(const char *file);
00200 virtual int close();
00201 virtual int isOpened(){ return (fFd != (-1));};
00202 virtual int Make();
00203 virtual int skipEvent(int nskip);
00204 virtual int getRunNumber() const;
00205 virtual int getEventNumber() const;
00206 virtual unsigned int getUnixTime() const;
00207 virtual unsigned int getTrigWord() const;
00208 virtual unsigned int getTrigInputWord() const;
00209
00210 virtual int TPCPresent () const;
00211 virtual int SVTPresent () const;
00212 virtual int TOFPresent () const;
00213 virtual int FPDPresent () const;
00214 virtual int SSDPresent () const;
00215 virtual int EMCPresent () const;
00216 virtual int PMDPresent () const;
00217 virtual int SMDPresent () const;
00218 virtual int FTPCPresent() const;
00219 virtual int RICHPresent() const;
00220 virtual int TRGPresent () const;
00221 virtual int L3Present () const;
00222
00223 virtual void setTPCVersion(const char* vers = "TPCV2P0");
00224 virtual void setFTPCVersion(const char* vers = "FTPV1P0");
00225 virtual const char *getTPCVersion() const {return fTPCVersion ;}
00226 virtual const char *getFTPCVersion() const {return fFTPCVersion;}
00227 StTPCReader *getTPCReader (char mergeSequences=1);
00228 StSSDReader *getSSDReader ();
00229 StEMCReader *getEMCReader ();
00230 StEEMCReader *getEEMCReader();
00231 StPMDReader *getPMDReader ();
00232 StRICHReader *getRICHReader();
00233 StFTPCReader *getFTPCReader();
00234 StTRGReader *getTRGReader ();
00235 StSVTReader *getSVTReader ();
00236 StL3Reader *getL3Reader ();
00237 StTOFReader *getTOFReader ();
00238 StFPDReader *getFPDReader ();
00239 StTrigSummary *getTrigSummary () const {return fTrigSummary;}
00240 virtual void printEventInfo();
00241 virtual int getEventSize() const;
00242 virtual EventReader *getEventReader() const {return fEventReader; }
00243 virtual daqReader *getFileReader() const {return fDaqFileReader;}
00244 virtual StStreamFile *getDatFileReader() const {return fDatFileReader;}
00245
00246 protected:
00247 void nextEvent();
00248 virtual int readEvent();
00249 int fEventStatus;
00250
00251 protected:
00252 int m_ZeroTokens;
00253 int fFd;
00254 int fVerbose;
00255 EventReader *fEventReader;
00256 StTPCReader *fTPCReader;
00257 StSSDReader *fSSDReader;
00258 StEMCReader *fEMCReader;
00259 StEEMCReader *fEEMCReader;
00260 StPMDReader *fPMDReader;
00261 StFTPCReader *fFTPCReader;
00262 StRICHReader *fRICHReader;
00263 StTRGReader *fTRGReader;
00264 StSVTReader *fSVTReader;
00265 StL3Reader *fL3Reader;
00266 StTOFReader *fTOFReader;
00267 StFPDReader *fFPDReader;
00268 long fOffset;
00269 DAQEventInfo *fEventInfo;
00270 char *fFile;
00271 char fTPCVersion[12];
00272 char fFTPCVersion[12];
00273 StTrigSummary *fTrigSummary;
00274 daqReader *fDaqFileReader;
00275 StStreamFile *fDatFileReader;
00276 char *fDATAP;
00277 StRtsReaderMaker *fRtsMaker;
00278 };
00279 #ifndef __CINT__
00280 #include "StTPCReader.h"
00281 #include "StFTPCReader.h"
00282 #include "StEMCReader.h"
00283 #include "StEEMCReader.h"
00284 #include "StPMDReader.h"
00285 #endif
00286 #endif