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 #include <assert.h>
00041 #include <Stiostream.h>
00042
00043 #include "StDaqLib/GENERIC/swaps.hh"
00044 #include "SVTV1P0.Banks.hh"
00045
00046 using namespace OLDEVP;
00047
00048 int classname(Bank_SVTRBP)::swap()
00049 {
00050
00051 int words = header.BankLength;
00052 int iret = swap_raw(header.ByteOrder,&words,1);
00053
00054
00055 if(!iret) return(0);
00056
00057 if(iret < 0) return iret;
00058
00059
00060 iret = swap_raw(header.ByteOrder,(INT32 *)Mz,sizeof(Mz)/4);
00061 assert(iret > 0);
00062
00063
00064 iret = header.swap();
00065
00066 return iret;
00067 }
00068
00069 int classname(Bank_SVTADCD)::swap()
00070 {
00071 return header.swap();
00072 }
00073
00074 int classname(Bank_SVTADCR)::swap()
00075 {
00076 return header.swap();
00077 }
00078
00079 int classname(Bank_SVTANODK)::swap()
00080 {
00081
00082 int words = header.BankLength;
00083
00084 int iret = swap_raw(header.ByteOrder,&words,1);
00085
00086
00087
00088 #if defined (sparc) || defined (__hpux)
00089 if(!iret) {
00090 return 0;
00091 }
00092 else if(iret < 0)
00093 return iret;
00094 else
00095 iret = swap_raw(header.ByteOrder,&bpADC,12);
00096 #elif defined(__i386__) || defined(__osf__) || defined(__x86_64__)
00097 if(!iret)
00098 return 0;
00099 else if(iret < 0)
00100 return iret;
00101 else
00102 iret = swap_raw(header.ByteOrder,&bpADC,12);
00103 #else
00104 #error "Unknown machine type"
00105 #endif
00106
00107
00108
00109
00110
00111 assert(iret>0);
00112
00113
00114 return header.swap();
00115 }
00116
00117 int classname(Bank_SVTCPPR)::swap()
00118 {
00119
00120 int words = header.BankLength;
00121 int iret = swap_raw(header.ByteOrder,&words,1);
00122
00123 if(!iret) return 0;
00124 if(iret<0) return iret;
00125
00126
00127 iret = swap_short(header.ByteOrder,(INT32 *)entry,12288);
00128 assert(iret>0);
00129
00130
00131 return header.swap();
00132 }
00133
00134 int classname(Bank_SVTSEQD)::swap()
00135 {
00136 int words = header.BankLength;
00137 int iret = swap_raw(header.ByteOrder,&words,1);
00138
00139 if(!iret) return 0;
00140 if(iret < 0) return iret;
00141
00142 words -= (sizeof(header)/4);
00143 swap_short(header.ByteOrder,(INT32 *)sequence,words);
00144 assert(iret>0);
00145
00146 iret = header.swap();
00147 return iret;
00148 }
00149
00150 int classname(Bank_SVTCFGR)::swap()
00151 {
00152 return header.swap();
00153 }
00154
00155 int classname(Bank_SVTBADR)::swap()
00156 {
00157 return header.swap();
00158 }
00159
00160 int classname(Bank_SVTPEDR)::swap()
00161 {
00162 int iret = swap_raw(header.ByteOrder,&NumEvents,1);
00163 if(iret <= 0) return iret;
00164
00165 return header.swap();
00166 }
00167
00168 int classname(Bank_SVTRMSR)::swap()
00169 {
00170 int iret = swap_raw(header.ByteOrder,&NumEvents,1);
00171 if(iret <= 0) return iret;
00172
00173 return header.swap();
00174 }
00175
00176 int classname(Bank_SVTGAINR)::swap()
00177 {
00178 int iret = swap_raw(header.ByteOrder,&NumEvents,2);
00179 if(iret <= 0) return iret;
00180
00181
00182
00183 if(iret != 1) return -1;
00184
00185
00186
00187
00188
00189 iret = header.swap();
00190 assert(iret == 1);
00191
00192 char *curr = (char *)Gain;
00193 for(int i = 0; i < SVT_MZANODES; i++)
00194 {
00195 char temp=curr[0];
00196 curr[0] = curr[1];
00197 curr[1] = temp;
00198 curr += 4;
00199 }
00200 return iret;
00201 }
00202
00203
00204 int classname(Bank_SVTMZCLD)::swap()
00205 {
00206 int iret = swap_raw(header.ByteOrder,&NumHybrids,1);
00207 if(iret <= 0) return iret;
00208
00209 int nsp = 0;
00210 int *word = &NumHybrids;
00211 word++;
00212 for (int i=0; i<NumHybrids; i++){
00213 swap_raw(header.ByteOrder,word,2);
00214 nsp = word[1];
00215 word+=2;
00216 swap_short(header.ByteOrder,word,2*nsp);
00217 word+=2*nsp;
00218 }
00219
00220 return header.swap();
00221 }
00222
00223
00224
00225