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 #include <Stiostream.h>
00044
00045
00046 #include "StDaqLib/GENERIC/EventReader.hh"
00047 #include "TPCV1P0.hh"
00048
00049
00050
00051 using namespace OLDEVP;
00052
00053 TPCV1P0_ADCR_SR::TPCV1P0_ADCR_SR(int s, TPCV1P0_Reader *det)
00054 {
00055
00056 sector = s-1;
00057 detector = det;
00058
00059
00060 memset((char *)banks, 0, sizeof(banks));
00061 }
00062
00063 int TPCV1P0_ADCR_SR::initialize()
00064 {
00065
00066 padkr = detector->getPADKReader(sector);
00067 if (!padkr) return FALSE;
00068
00069
00070 for(int rcb = 0; rcb < 6; rcb++)
00071 {
00072 for(int mz = 0; mz < 3; mz++)
00073 {
00074 banks[rcb][mz] = detector->getBankTPCADCR(sector,rcb,mz);
00075 }
00076 }
00077 return TRUE;
00078 }
00079
00080 TPCV1P0_ADCR_SR::~TPCV1P0_ADCR_SR()
00081 {
00082
00083 }
00084
00085 int TPCV1P0_ADCR_SR::getPadList(int PadRow, u_char **padList)
00086 {
00087
00088 int i;
00089 PADK_entry ent;
00090
00091
00092 int j=0;
00093 for(i=1; i<=TPC_MAXPADS; i++)
00094 {
00095 padkr->get(PadRow, i, &ent);
00096 if((ent.mz == 0) || (ent.rb == 0)) continue;
00097 padlist[PadRow-1][j++] = i;
00098 }
00099
00100 *padList = &padlist[PadRow-1][0];
00101 return j;
00102 }
00103
00104 int TPCV1P0_ADCR_SR::getSequences(int PadRow, int Pad, int *nArray,
00105 u_char **Array)
00106 {
00107 PADK_entry ent;
00108 padkr->get(PadRow, Pad, &ent);
00109 if((ent.mz == 0) || (ent.rb == 0))
00110 {
00111 *nArray = 0;
00112 *Array = NULL;
00113 spERROR(ERR_BANK);
00114 return -1;
00115 }
00116
00117 int offset = ent.offset * padkr->getADCBytes();
00118 *nArray = padkr->getADCBytes();
00119
00120
00121
00122 if (banks[ent.rb-1][ent.mz-1] != NULL)
00123 {
00124 *Array = (((u_char *)banks[ent.rb-1][ent.mz-1]->ADC) + offset);
00125 return 1;
00126 }
00127 return 0;
00128 }
00129
00130 int TPCV1P0_ADCR_SR::MemUsed()
00131 {
00132 return 0;
00133 }
00134
00135
00136
00137 TPCV1P0_PEDR_SR::TPCV1P0_PEDR_SR(int s, TPCV1P0_Reader *det)
00138 {
00139
00140 sector = s-1;
00141 detector = det;
00142
00143
00144 memset((char *)banks, 0, sizeof(banks));
00145 numEvents = 0;
00146 }
00147
00148 int TPCV1P0_PEDR_SR::initialize()
00149 {
00150
00151 padkr = detector->getPADKReader(sector);
00152 if (!padkr) return FALSE;
00153
00154
00155 for(int rcb = 0; rcb < 6; rcb++)
00156 {
00157 for(int mz = 0; mz < 3; mz++)
00158 {
00159 banks[rcb][mz] = detector->getBankTPCPEDR(sector,rcb,mz);
00160 if (banks[rcb][mz] !=NULL)
00161 numEvents = banks[rcb][mz]->NumEvents;
00162 }
00163 }
00164 return TRUE;
00165 }
00166
00167 TPCV1P0_PEDR_SR::~TPCV1P0_PEDR_SR()
00168 {
00169
00170 }
00171
00172 int TPCV1P0_PEDR_SR::getPadList(int PadRow, u_char **padList)
00173 {
00174
00175 int i;
00176 PADK_entry ent;
00177
00178
00179 int j=0;
00180 for(i=1; i<=TPC_MAXPADS; i++)
00181 {
00182 padkr->get(PadRow, i, &ent);
00183 if((ent.mz == 0) || (ent.rb == 0)) continue;
00184 padlist[PadRow-1][j++] = i;
00185 }
00186
00187 *padList = &padlist[PadRow-1][0];
00188 return j;
00189 }
00190
00191 int TPCV1P0_PEDR_SR::getSequences(int PadRow, int Pad, int *nArray,
00192 u_char **Array)
00193 {
00194 PADK_entry ent;
00195 padkr->get(PadRow, Pad, &ent);
00196 if((ent.mz == 0) || (ent.rb == 0))
00197 {
00198 *nArray = 0;
00199 *Array = NULL;
00200 spERROR(ERR_BANK);
00201 return -1;
00202 }
00203
00204 int offset = ent.offset * padkr->getPEDBytes();
00205 *nArray = padkr->getPEDBytes();
00206
00207 if (banks[ent.rb-1][ent.mz-1] != NULL)
00208 {
00209
00210
00211 *Array = (((u_char *)banks[ent.rb-1][ent.mz-1]->pedestal) + offset);
00212 return 1;
00213 }
00214 return 0;
00215 }
00216
00217 int TPCV1P0_PEDR_SR::getNumberOfEvents()
00218 {
00219 return numEvents;
00220 }
00221
00222 int TPCV1P0_PEDR_SR::MemUsed()
00223 {
00224 return 0;
00225 }
00226
00227
00228
00229
00230 TPCV1P0_PRMS_SR::TPCV1P0_PRMS_SR(int s, TPCV1P0_Reader *det)
00231 {
00232
00233 sector = s-1;
00234 detector = det;
00235
00236
00237 memset((char *)banks, 0, sizeof(banks));
00238 numEvents = 0;
00239
00240 }
00241
00242 int TPCV1P0_PRMS_SR::initialize()
00243 {
00244
00245 padkr = detector->getPADKReader(sector);
00246 if (!padkr) return FALSE;
00247
00248
00249 for(int rcb = 0; rcb < 6; rcb++)
00250 {
00251 for(int mz = 0; mz < 3; mz++)
00252 {
00253 banks[rcb][mz] = detector->getBankTPCRMSR(sector,rcb,mz);
00254 if (banks[rcb][mz] !=NULL)
00255 numEvents = banks[rcb][mz]->NumEvents;
00256 }
00257 }
00258 return TRUE;
00259 }
00260
00261 TPCV1P0_PRMS_SR::~TPCV1P0_PRMS_SR()
00262 {
00263
00264 }
00265
00266 int TPCV1P0_PRMS_SR::getPadList(int PadRow, u_char **padList)
00267 {
00268
00269 int i;
00270 PADK_entry ent;
00271
00272
00273 int j=0;
00274 for(i=1; i<=TPC_MAXPADS; i++)
00275 {
00276 padkr->get(PadRow, i, &ent);
00277 if((ent.mz == 0) || (ent.rb == 0)) continue;
00278 padlist[PadRow-1][j++] = i;
00279 }
00280
00281 *padList = &padlist[PadRow-1][0];
00282 return j;
00283 }
00284
00285 int TPCV1P0_PRMS_SR::getSequences(int PadRow, int Pad, int *nArray,
00286 u_char **Array)
00287 {
00288 PADK_entry ent;
00289 padkr->get(PadRow, Pad, &ent);
00290 if((ent.mz == 0) || (ent.rb == 0))
00291 {
00292 *nArray = 0;
00293 *Array = NULL;
00294 spERROR(ERR_BANK);
00295 return -1;
00296 }
00297
00298 int offset = ent.offset * padkr->getRMSBytes();
00299 *nArray = padkr->getRMSBytes();
00300
00301 if (banks[ent.rb-1][ent.mz-1] != NULL)
00302 {
00303
00304
00305 *Array = (((u_char *)banks[ent.rb-1][ent.mz-1]->pedRMSt16) + offset);
00306 return 1;
00307 }
00308 return 0;
00309 }
00310
00311 int TPCV1P0_PRMS_SR::getNumberOfEvents()
00312 {
00313 return numEvents;
00314 }
00315
00316 int TPCV1P0_PRMS_SR::MemUsed()
00317 {
00318 return 0;
00319 }
00320
00321