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 #ifndef SVTV1P0BANKS_HH
00035 #define SVTV1P0BANKS_HH
00036
00037 #define SVT_HYPERSECTORS 4
00038 #define SVT_WAFERS 216
00039 #define SVT_TOTALHYBRIDS 432
00040 #define SVT_HYBRIDS 2
00041 #define SVT_MZHYBRIDS 6
00042 #define SVT_ANODES 240
00043 #define SVT_MZANODES 256
00044 #define SVT_MXSEQUENCE 8
00045
00046 #define classname(x) x ## V1P0 //embed version number in bank name
00047
00048 #include <sys/types.h>
00049 #include "StDaqLib/GENERIC/RecHeaderFormats.hh"
00050
00051
00052 #define VARLENGTH 1
00053
00054
00055 struct classname(Bank_SVTP): public Bank
00056 {
00057 Pointer HyperSector[4];
00058
00059
00060
00061 };
00062
00063
00064 struct classname(Bank_SVTSECP) : public Bank
00065 {
00066 Pointer RcvBoard[12];
00067 };
00068
00069
00070 struct classname(Bank_SVTRBP) : public Bank
00071 {
00072 Pointer Mz[3];
00073 char FiberHeader[64];
00074
00075 int swap();
00076 };
00077
00078
00079 struct classname(Bank_SVTMZP) : public Bank
00080 {
00081 Pointer SVTADCD;
00082 Pointer SVTSEQD;
00083 Pointer SVTADCX;
00084 Pointer SVTANODK;
00085 Pointer SVTCPPR;
00086 Pointer SVTADCR;
00087 Pointer SVTMZCLD;
00088 Pointer SVTCFGR;
00089 Pointer SVTPEDR;
00090 Pointer SVTRMSR;
00091 Pointer SVTGAINR;
00092 Pointer SVTBADR;
00093 };
00094
00095
00096
00097
00098
00099 struct classname(Bank_SVTADCD) : public Bank
00100 {
00101 char ADC[VARLENGTH];
00102 int swap();
00103 };
00104
00105
00106 struct classname(Bank_SVTADCR) : public Bank
00107 {
00108 char ADC[VARLENGTH];
00109 int swap();
00110 };
00111
00112
00113
00114
00115 struct SVTCoordinates
00116 {
00117 #if defined (sparc) || defined (__hpux)
00118 u_char barrel;
00119 u_char ladder;
00120 u_char waferID;
00121 u_char hybridID;
00122 #elif defined(__i386__) || defined(__osf__) || defined(__x86_64__)
00123 u_char hybridID;
00124 u_char waferID;
00125 u_char ladder;
00126 u_char barrel;
00127 #else
00128 #error "Unknown machine type"
00129 #endif
00130 };
00131
00132
00133 struct classname(Bank_SVTANODK) : public Bank
00134 {
00135 INT32 bpADC;
00136 INT32 bpCPP;
00137 INT32 bpPED;
00138 INT32 bpRMS;
00139 INT32 bpCFG;
00140 INT32 bpGAIN;
00141 SVTCoordinates index[6];
00142
00143 int swap();
00144 };
00145
00146 struct SVTADCX_entry
00147 {
00148 INT32 hybrid;
00149 INT32 SVTADCD_offset;
00150 INT32 SVTSEQD_offset;
00151 };
00152
00153
00154 struct classname(Bank_SVTADCX) : public Bank
00155 {
00156 SVTADCX_entry entry[VARLENGTH];
00157 };
00158
00159
00160 struct SVTCPPR_entry
00161 {
00162 INT16 start_time_bin;
00163 INT16 stop_time_bin;
00164 };
00165
00166
00167 struct classname(Bank_SVTCPPR) : public Bank
00168 {
00169 ASIC_params asic_params;
00170 SVTCPPR_entry entry[12288];
00171
00172 int swap();
00173 };
00174
00175
00176
00177 struct classname(Bank_SVTSEQD) : public Bank
00178 {
00179 INT16 sequence[VARLENGTH];
00180
00181 int swap();
00182 };
00183
00184
00185 struct classname(Bank_SVTCFGR) : public Bank
00186 {
00187 char FEE_id[6];
00188
00189 int swap();
00190 };
00191
00192 struct SVTBADR_entry
00193 {
00194 u_char hybrid;
00195 u_char anode;
00196 };
00197
00198
00199 struct classname(Bank_SVTBADR) : public Bank
00200 {
00201 SVTBADR_entry badChannel[VARLENGTH];
00202 int swap();
00203 };
00204
00205 struct classname(Bank_SVTPEDR) : public Bank
00206 {
00207 INT32 NumEvents;
00208 char pedestal[196608];
00209
00210 int swap();
00211 };
00212
00213 struct classname(Bank_SVTRMSR) : public Bank
00214 {
00215 INT32 NumEvents;
00216 char pedRMSt16[196608];
00217
00218 int swap();
00219 };
00220
00221 struct SVTGAINR_entry
00222 {
00223 INT16 t0t16;
00224 char t0_RMSt16;
00225 char rel_gaint64;
00226 };
00227
00228 struct classname(Bank_SVTGAINR) : public Bank
00229 {
00230 INT32 NumEvents;
00231 INT32 MeanGain;
00232 SVTGAINR_entry Gain[6];
00233
00234 int swap();
00235 };
00236
00237
00238 struct classname(Bank_SVTMZCLD) : public Bank
00239 {
00240 INT32 NumHybrids;
00241 INT32 stuff[10];
00242 int swap();
00243 };
00244
00245 #endif
00246
00247
00248