00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef FTPCV1P0_HH
00025 #define FTPCV1P0_HH
00026
00027 #include "StDaqLib/GENERIC/EventReader.hh"
00028 #include "StDaqLib/GENERIC/RecHeaderFormats.hh"
00029 #include "FTPV1P0.Banks.hh"
00030
00031 #include "FTPV1P0_Reader.hh"
00032
00033 class FTPV1P0_Reader;
00034 class FTPV1P0_PADK_SR;
00035
00036
00037 class FTPV1P0_ZS_SR : public ZeroSuppressedReader
00038 {
00039 public:
00040 int getPadList(int PadRow, unsigned char **padList);
00041 int getSequences(int PadRow, int Pad, int *nSeq, Sequence **SeqData);
00042 int getSpacePts(int PadRow, int *nSpacePts, SpacePt **SpacePts);
00043 int MemUsed();
00044
00045 FTPV1P0_ZS_SR(int s, FTPV1P0_Reader *det);
00046 int initialize();
00047 int getFeeSequences(int Fee, int Pin, int *nSeq, Sequence **SeqData);
00048
00049 ~FTPV1P0_ZS_SR();
00050
00051 private:
00052 classname(Bank_FTPADCD) *adcd_p;
00053 classname(Bank_FTPADCX) *adcx_p;
00054 classname(Bank_FTPSEQD) *seqd_p;
00055
00056 int sector;
00057 struct Pad Pad_array[FTP_PADROWS][FTP_MAXPADS];
00058 struct PadRow Row_array[FTP_PADROWS];
00059 u_char padlist[FTP_PADROWS][FTP_MAXPADS];
00060
00061 FTPV1P0_Reader *detector;
00062 FTPV1P0_PADK_SR *padkr;
00063
00064 };
00065
00066
00067 class FTPV1P0_ADCR_SR : public ADCRawReader
00068 {
00069 public:
00070 int getPadList(int PadRow, unsigned char **padList);
00071 int getSequences(int PadRow, int Pad, int *nArray, u_char **Array);
00072 int MemUsed();
00073
00074 FTPV1P0_ADCR_SR(int sector, FTPV1P0_Reader *);
00075 int initialize();
00076 ~FTPV1P0_ADCR_SR();
00077
00078 private:
00079 int sector;
00080 FTPV1P0_Reader *detector;
00081 FTPV1P0_PADK_SR *padkr;
00082 u_char padlist[FTP_PADROWS][FTP_MAXPADS];
00083
00084 classname(Bank_FTPADCR) *bank;
00085 };
00086
00087
00088 class FTPV1P0_PEDR_SR : public PedestalReader
00089 {
00090 public:
00091 int getPadList(int PadRow, unsigned char **padList);
00092 int getSequences(int PadRow, int Pad, int *nArray, u_char **Array);
00093 int getNumberOfEvents();
00094
00095 int MemUsed();
00096
00097 FTPV1P0_PEDR_SR(int sector, FTPV1P0_Reader *);
00098 int initialize();
00099 ~FTPV1P0_PEDR_SR();
00100
00101 private:
00102 int sector;
00103 int numEvents;
00104 FTPV1P0_Reader *detector;
00105 FTPV1P0_PADK_SR *padkr;
00106 u_char padlist[FTP_PADROWS][FTP_MAXPADS];
00107
00108 classname(Bank_FTPPEDR) *bank;
00109 };
00110
00111
00112 class FTPV1P0_PRMS_SR : public PedestalRMSReader
00113 {
00114 public:
00115 int getPadList(int PadRow, unsigned char **padList);
00116 int getSequences(int PadRow, int Pad, int *nArray, u_char **Array);
00117 int getNumberOfEvents();
00118
00119 int MemUsed();
00120
00121 FTPV1P0_PRMS_SR(int sector, FTPV1P0_Reader *);
00122 int initialize();
00123 ~FTPV1P0_PRMS_SR();
00124
00125 private:
00126 int sector;
00127 int numEvents;
00128 FTPV1P0_Reader *detector;
00129 FTPV1P0_PADK_SR *padkr;
00130 u_char padlist[FTP_PADROWS][FTP_MAXPADS];
00131
00132 classname(Bank_FTPRMSR) *bank;
00133 };
00134
00135
00136 class FTPV1P0_G_SR : public GainReader
00137 {
00138 public:
00139 int getGain(int PadRow, int Pad, struct Gain **gain);
00140 int getMeanGain();
00141 int getNumberOfEvents();
00142
00143 int MemUsed();
00144
00145 FTPV1P0_G_SR(int sector, FTPV1P0_Reader *);
00146 int initialize();
00147 ~FTPV1P0_G_SR();
00148 };
00149
00150
00151 class FTPV1P0_CPP_SR : public CPPReader
00152 {
00153 public:
00154 int getClusters(int PadRow, int Pad, int *nClusters,
00155 struct ASIC_Cluster **clusters);
00156 int getAsicParams(ASIC_params *){return FALSE;};
00157
00158 int MemUsed();
00159
00160 FTPV1P0_CPP_SR(int sector, FTPV1P0_Reader *);
00161 int initialize();
00162 ~FTPV1P0_CPP_SR();
00163
00164 private:
00165 int sector;
00166 FTPV1P0_Reader *detector;
00167 FTPV1P0_PADK_SR *padkr;
00168 classname(Bank_FTPCPPR) *bank;
00169 };
00170
00171
00172 class FTPV1P0_BC_SR : public BadChannelReader
00173 {
00174 public:
00175 int IsBad(int PadRow, int Pad);
00176
00177 int MemUsed();
00178
00179 FTPV1P0_BC_SR(int sector, FTPV1P0_Reader *);
00180 int initialize();
00181 ~FTPV1P0_BC_SR();
00182 };
00183
00184
00185 class FTPV1P0_CR_SR : public ConfigReader
00186 {
00187 public:
00188 int FEE_id(int PadRow, int Pad) = 0;
00189
00190
00191 int MemUsed();
00192
00193 FTPV1P0_CR_SR(int sector, FTPV1P0_Reader *);
00194 int initialize();
00195 ~FTPV1P0_CR_SR();
00196 };
00197
00198 struct FTPPADK_entry
00199 {
00200 short offset;
00201 };
00202
00203 class FTPV1P0_PADK_SR
00204 {
00205 public:
00206 FTPV1P0_PADK_SR(int sector, FTPV1P0_Reader *);
00207 int initialize();
00208
00209 void place(short padrow, short pad, FTPPADK_entry *);
00210 void get(short padrow, short pad, FTPPADK_entry *);
00211
00212 int getADCBytes() { return 512; };
00213 int getCPPBytes() { return 128; };
00214 int getPEDBytes() { return 512; };
00215 int getRMSBytes() { return 512; };
00216 int getCFGBytes() { return 1; };
00217 int getGAINBytes() { return 4; };
00218
00219 private:
00220 int sector;
00221 FTPV1P0_Reader *detector;
00222
00223 short packed_address[FTP_PADROWS][FTP_MAXPADS];
00224
00225 short pack(short offset);
00226 void unpack(FTPPADK_entry *, short paddress);
00227 };
00228
00229 #endif
00230
00231
00232
00233
00234