StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StDAQReader.h
1 /***************************************************************************
2  *
3  * $Id: StDAQReader.h,v 1.43 2012/09/13 20:01:49 fisyak Exp $
4  *
5  * Author: Victor Perev
6  ***************************************************************************
7  *
8  * Description: Offline Wrapper for DAQ reader classes
9  *
10  ***************************************************************************
11  *
12  * $Log: StDAQReader.h,v $
13  * Revision 1.43 2012/09/13 20:01:49 fisyak
14  * Clean up, use Jeff's skip_then_get
15  *
16  * Revision 1.42 2009/10/13 15:51:48 fine
17  * Activate the new DAT file format
18  *
19  * Revision 1.41 2009/10/07 23:21:56 fine
20  * Move the StRtsReaderMaker instantiation fro StDAQReader to StDAQMaker to make sure it is located just after StDAQMaker in chain
21  *
22  * Revision 1.40 2009/10/07 00:52:32 fine
23  * Move daqReader instantiation from StDAQMaker to StDAQReader to switch between input files properly
24  *
25  * Revision 1.39 2009/04/06 18:22:33 fine
26  * remove the redundant methods and fix L1/L2/L3 summary
27  *
28  * Revision 1.38 2009/01/20 22:56:32 fine
29  * remove the redundant CPP flag
30  *
31  * Revision 1.37 2009/01/14 18:20:49 fine
32  * Remove the redundant devReader type
33  *
34  * Revision 1.36 2008/11/26 15:53:12 fine
35  * fix the CPP flags for StDAQReader.h
36  *
37  * Revision 1.35 2008/11/25 21:42:53 fine
38  * preparing DAQ maker for DAQ_READER
39  *
40  * Revision 1.34 2008/01/29 01:55:56 fine
41  * Add extra CPP flag to simply the Conscript
42  *
43  * Revision 1.33 2008/01/22 21:13:01 fine
44  * move the dependency from the class desclaration to class implematation to allo for the new EVP_READER
45  *
46  * Revision 1.32 2007/12/24 05:19:58 fine
47  * Introduce the shadow copy of the evp buffer for the new EVP_READER
48  *
49  * Revision 1.31 2007/12/22 01:14:59 fine
50  * version compatible with new/old DAQ readers
51  *
52  * Revision 1.30 2007/08/07 19:44:11 perev
53  * Gene scalers added
54  *
55  * Revision 1.29 2004/08/07 02:39:00 perev
56  * Traditional Clear added
57  *
58  * Revision 1.28 2004/03/05 15:38:08 fisyak
59  * Add default for getTPCReader (to keep interface unchanged)
60  *
61  * Revision 1.27 2004/03/04 21:51:27 ward
62  * Replaced MERGE_SEQUENCES with a StDAQMaker chain parameter, as suggested by Landgraf and Lauret.
63  *
64  * Revision 1.26 2004/02/18 20:17:45 ward
65  * Access SSD data in makers.
66  *
67  * Revision 1.25 2004/02/03 03:25:06 jeromel
68  * Added counter for ZeroToken events
69  *
70  * Revision 1.24 2003/12/24 21:30:45 perev
71  * Cleanup of DAQ
72  *
73  * Revision 1.23 2003/09/28 01:57:21 jeromel
74  * No change (indent)
75  *
76  * Revision 1.22 2003/03/24 18:12:10 ward
77  * Full support for EEMC from Herbert Ward.
78  *
79  * Revision 1.21 2003/02/16 16:02:49 perev
80  * new method added
81  *
82  * Revision 1.20 2002/12/19 22:28:27 perev
83  * PMD added
84  *
85  * Revision 1.19 2002/01/17 21:14:38 perev
86  * Akio FPD reader
87  *
88  * Revision 1.18 2001/07/16 21:38:44 perev
89  * EMC added
90  *
91  * Revision 1.17 2001/07/10 18:13:04 jeromel
92  * Changes commited for Frank Geurts (TOF) after approval from Herb Ward
93  * on Tue, 10 Jul 2001 11:19:48 and review by Victor.
94  * Changes implements TOF DAQ Reader.
95  *
96  * Revision 1.16 2001/06/29 17:08:24 perev
97  * Hide DaqLib includes from CINT
98  *
99  * Revision 1.15 2001/06/19 21:10:49 jeromel
100  * Changes for FTPCReader (Janet S.)
101  *
102  * Revision 1.14 2000/07/13 22:35:10 perev
103  * More accurate __CINT__ flags added
104  *
105  * Revision 1.13 2000/06/30 21:53:40 perev
106  * L3 stuff added
107  *
108  * Revision 1.12 2000/06/12 15:41:19 perev
109  * StTPCRead.h added into StDAQReader.h
110  *
111  * Revision 1.11 2000/06/12 15:04:02 perev
112  * SVT + cleanup
113  *
114  * Revision 1.10 2000/05/25 20:01:58 perev
115  * EventSize added
116  *
117  * Revision 1.9 2000/04/07 15:43:19 perev
118  * SetVerbose method added
119  *
120  * Revision 1.8 2000/01/24 20:35:37 ward
121  * Access trigger data.
122  *
123  * Revision 1.7 2000/01/24 14:39:33 perev
124  * FTPC (HolmMade) is added
125  *
126  * Revision 1.6 1999/12/15 18:40:59 perev
127  * Keep undeleted all DAQ wrapper classes
128  *
129  * Revision 1.5 1999/08/06 16:20:59 perev
130  * RICHReader added
131  *
132  * Revision 1.4 1999/08/01 00:14:50 perev
133  * leak removed author added
134  *
135  * Revision 1.3 1999/08/01 00:10:57 perev
136  * leak removed author added
137  *
138  *
139  **************************************************************************/
140 #ifndef _StDAQReader_
141 #define _StDAQReader_
142 // Forward declarations
143 struct EventInfo;
144 typedef EventInfo DAQEventInfo;
145 class EventReader ;
146 class StTPCReader ;
147 class StSSDReader ;
148 class StEMCReader ;
149 class StEEMCReader;
150 class StPMDReader ;
151 class StFTPCReader;
152 class StTRGReader ;
153 class StSVTReader ;
154 class TDataSet ;
155 
156 class daqReader;
157 typedef daqReader evpReader;
158 
159 #ifndef __CINT__
160 
161 struct RICH_Reader;
162 struct L3_Reader;
163 struct TOF_Reader;
164 struct FPD_Reader;
165 
166 typedef RICH_Reader StRICHReader;
167 typedef L3_Reader StL3Reader;
168 typedef TOF_Reader StTOFReader;
169 typedef FPD_Reader StFPDReader;
170 
171 #endif /*__CINT__*/
172 
173 #ifdef __CINT__
174 
175 class StRICHReader;
176 class StL3Reader;
177 class StTOFReader;
178 class StFPDReader;
179 
180 #endif /*__CINT__*/
182 public:
183  int L1summary[2];
184  int L2summary[2];
185  int L3summary[4];
186 };
187 class StRtsReaderMaker;
188 class StStreamFile;
189 //
190 
191 
193 {
194 public:
195  StDAQReader(const char *file=0, StRtsReaderMaker* rtsMaker=0);
196  virtual ~StDAQReader();
197  void clear();
198  virtual void setVerbose(int ver=1){fVerbose=ver;};
199  virtual int open(const char *file);
200  virtual int close();
201  virtual int isOpened(){ return (fFd != (-1));};
202  virtual int Make();
203  virtual int skipEvent(int nskip);
204  virtual int getRunNumber() const;
205  virtual int getEventNumber() const;
206  virtual unsigned int getUnixTime() const;
207  virtual unsigned int getTrigWord() const;
208  virtual unsigned int getTrigInputWord() const;
209 
210  virtual int TPCPresent () const;
211  virtual int SVTPresent () const;
212  virtual int TOFPresent () const;
213  virtual int FPDPresent () const;
214  virtual int SSDPresent () const;
215  virtual int EMCPresent () const;
216  virtual int PMDPresent () const;
217  virtual int SMDPresent () const;
218  virtual int FTPCPresent() const;
219  virtual int RICHPresent() const;
220  virtual int TRGPresent () const;
221  virtual int L3Present () const;
222 
223  virtual void setTPCVersion(const char* vers = "TPCV2P0");
224  virtual void setFTPCVersion(const char* vers = "FTPV1P0");
225  virtual const char *getTPCVersion() const {return fTPCVersion ;}
226  virtual const char *getFTPCVersion() const {return fFTPCVersion;}
227  StTPCReader *getTPCReader (char mergeSequences=1);
228  StSSDReader *getSSDReader ();
229  StEMCReader *getEMCReader ();
230  StEEMCReader *getEEMCReader();
231  StPMDReader *getPMDReader ();
232  StRICHReader *getRICHReader();
233  StFTPCReader *getFTPCReader();
234  StTRGReader *getTRGReader ();
235  StSVTReader *getSVTReader ();
236  StL3Reader *getL3Reader ();
237  StTOFReader *getTOFReader ();
238  StFPDReader *getFPDReader ();
239  StTrigSummary *getTrigSummary () const {return fTrigSummary;}
240  virtual void printEventInfo();
241  virtual int getEventSize() const;
242  virtual EventReader *getEventReader() const {return fEventReader; }
243  virtual daqReader *getFileReader() const {return fDaqFileReader;}
244  virtual StStreamFile *getDatFileReader() const {return fDatFileReader;}
245 
246 protected:
247  void nextEvent();
248  virtual int readEvent();
249  int fEventStatus;
250 
251 protected:
252  int m_ZeroTokens;
253  int fFd; // File descriptor
254  int fVerbose;
255  EventReader *fEventReader;
256  StTPCReader *fTPCReader;
257  StSSDReader *fSSDReader;
258  StEMCReader *fEMCReader;
259  StEEMCReader *fEEMCReader;
260  StPMDReader *fPMDReader;
261  StFTPCReader *fFTPCReader;
262  StRICHReader *fRICHReader;
263  StTRGReader *fTRGReader;
264  StSVTReader *fSVTReader;
265  StL3Reader *fL3Reader;
266  StTOFReader *fTOFReader;
267  StFPDReader *fFPDReader;
268  long fOffset;
269  DAQEventInfo *fEventInfo;
270  char *fFile;
271  char fTPCVersion[12];
272  char fFTPCVersion[12];
273  StTrigSummary *fTrigSummary;
274  daqReader *fDaqFileReader;
275  StStreamFile *fDatFileReader;
276  char *fDATAP;
277  StRtsReaderMaker *fRtsMaker;
278 };
279 #ifndef __CINT__
280 #include "StTPCReader.h"
281 #include "StFTPCReader.h"
282 #include "StEMCReader.h"
283 #include "StEEMCReader.h"
284 #include "StPMDReader.h"
285 #endif /*__CINT__*/
286 #endif /*end*/
void nextEvent()
NextEvent - this method is called to advance the next daq event if any.
int fFd
number of events with token==0
Definition: StDAQReader.h:253