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 #ifndef _StTPCReader_
00038 #define _StTPCReader_
00039
00040 #ifndef __CINT__
00041 #include "StDAQReader.h"
00042
00043 #endif
00044
00045
00046
00047 struct EventInfo;
00048 typedef EventInfo DAQEventInfo;
00049 class EventReader;
00050 class DetectorReader;
00051 class ZeroSuppressedReader;
00052 class ADCRawReader;
00053 class PedestalReader;
00054 class PedestalRMSReader;
00055 class GainReader;
00056 class CPPReader;
00057 class BadChannelReader;
00058 class RICH_Reader;
00059
00060
00061
00062 typedef struct TPCSequence
00063 {
00064 unsigned short startTimeBin;
00065 unsigned short Length;
00066 unsigned char *FirstAdc;
00067
00068 }TPCSequence;
00069
00070 typedef struct TPCCluster
00071 {
00072 short start_time_bin;
00073 short stop_time_bin;
00074 }TPCCluster;
00075
00076
00077
00078 typedef struct TPCGain
00079 {
00080 int t0;
00081 int t0_rms;
00082 int rel_gain;
00083 }TPCGain;
00084
00085 class StTPCReader;
00086 class StFTPCReader;
00087
00088
00089 class StTPCReader
00090 {
00091 friend class St_tpcdaq_Maker;
00092 friend class StRTSClientFCFMaker;
00093 public:
00094
00095 StTPCReader(StDAQReader *rd,char);
00096 ~StTPCReader();
00097 int close();
00098 int empty();
00099
00100 int getMaxPad(int PadRow) const;
00101
00102 int getPadList(int Sector, int PadRow, unsigned char *&padList);
00103
00104
00105
00106
00107 int getSequences(int Sector, int PadRow, int Pad, int &nSeq,
00108 TPCSequence *&SeqData);
00109
00110
00111
00112
00113
00114
00115 int getRawADC(int Sector,int PadRow, int Pad, int &nArray,
00116 unsigned char *&Array);
00117
00118
00119
00120
00121
00122
00123 int getPedestals(int Sector,int PadRow, int Pad, int &nArray,
00124 unsigned char *&Array);
00125
00126
00127
00128
00129
00130
00131
00132 int getRMSPedestals(int Sector,int PadRow, int Pad, int &nArray,
00133 unsigned char *&Array);
00134
00135
00136
00137
00138
00139
00140
00141 int getGain(int Sector, int PadRow, int Pad, TPCGain *&gain);
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153 int getClusters(int Sector, int PadRow, int Pad, int &nClusters,
00154 TPCCluster *&clusters);
00155
00156
00157
00158
00159
00160 int IsBad(int Sector, int PadRow, int Pad);
00161
00162
00163
00164 int Update();
00165
00166 void SetSequenceMerging (char);
00167
00168 protected:
00169 int setSector(int sector);
00170
00171 StDAQReader *fDAQReader;
00172 DetectorReader *fTPCImpReader;
00173 ZeroSuppressedReader *fZeroSuppressedReader;
00174 ADCRawReader *fADCRawReader;
00175 PedestalReader *fPedestalReader;
00176 PedestalRMSReader *fPedestalRMSReader;
00177 GainReader *fGainReader;
00178 CPPReader *fCPPReader;
00179 BadChannelReader *fBadChannelReader;
00180
00181 private:
00182 char mMergeSequences;
00183 void *ptrTPCP;
00184
00185 int fSector;
00186 };
00187
00188 #endif