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 #include <assert.h>
00029
00030 #include "StDaqLib/GENERIC/swaps.hh"
00031 #include "TPCV2P0.Banks.hh"
00032
00033 using namespace OLDEVP;
00034
00035 int classname(Bank_TPCRBP)::swap()
00036 {
00037
00038 int words = header.BankLength;
00039 int iret = swap_raw(header.ByteOrder,&words,1);
00040
00041
00042 if(!iret) return(0);
00043
00044 if(iret < 0) return iret;
00045
00046
00047 iret = swap_raw(header.ByteOrder,(INT32 *)Mz,sizeof(Mz)/4);
00048 assert(iret > 0);
00049
00050
00051 iret = header.swap();
00052
00053 return iret;
00054 }
00055
00056 int classname(Bank_TPCADCD)::swap()
00057 {
00058 return header.swap();
00059 }
00060
00061 int classname(Bank_TPCADCR)::swap()
00062 {
00063 return header.swap();
00064 }
00065
00066 int classname(Bank_TPCPADK)::swap()
00067 {
00068
00069 int words = header.BankLength;
00070 int iret = swap_raw(header.ByteOrder,&words,1);
00071
00072 if(!iret) return 0;
00073 if(iret < 0) return iret;
00074
00075
00076 iret = swap_raw(header.ByteOrder,&bpADC,6);
00077 assert(iret>0);
00078
00079
00080 return header.swap();
00081 }
00082
00083 int classname(Bank_TPCCPPR)::swap()
00084 {
00085
00086 int words = header.BankLength;
00087 int iret = swap_raw(header.ByteOrder,&words,1);
00088
00089 if(!iret) return 0;
00090 if(iret<0) return iret;
00091
00092
00093 iret = swap_short(header.ByteOrder,(INT32 *)entry,12288);
00094 assert(iret>0);
00095
00096
00097 return header.swap();
00098 }
00099
00100 int classname(Bank_TPCSEQD)::swap()
00101 {
00102 int words = header.BankLength;
00103 int iret = swap_raw(header.ByteOrder,&words,1);
00104
00105 if(!iret) return 0;
00106 if(iret < 0) return iret;
00107
00108 words -= (sizeof(header)/4);
00109 swap_short(header.ByteOrder,(INT32 *)sequence,words);
00110 assert(iret>0);
00111
00112 iret = header.swap();
00113 return iret;
00114 }
00115
00116 int classname(Bank_TPCCFGR)::swap()
00117 {
00118 return header.swap();
00119 }
00120
00121 int classname(Bank_TPCBADR)::swap()
00122 {
00123 return header.swap();
00124 }
00125
00126 int classname(Bank_TPCPEDR)::swap()
00127 {
00128 int iret = swap_raw(header.ByteOrder,&NumEvents,1);
00129 if(iret <= 0) return iret;
00130
00131 return header.swap();
00132 }
00133
00134 int classname(Bank_TPCRMSR)::swap()
00135 {
00136 int iret = swap_raw(header.ByteOrder,&NumEvents,1);
00137 if(iret <= 0) return iret;
00138
00139 return header.swap();
00140 }
00141
00142 int classname(Bank_TPCGAINR)::swap()
00143 {
00144 int iret = swap_raw(header.ByteOrder,&NumEvents,2);
00145 if(iret <= 0) return iret;
00146
00147
00148
00149 if(iret != 1) return -1;
00150
00151
00152
00153
00154
00155 iret = header.swap();
00156 assert(iret == 1);
00157
00158 char *curr = (char *)Gain;
00159 for(int i = 0; i < TPC_MZPADS; i++)
00160 {
00161 char temp=curr[0];
00162 curr[0] = curr[1];
00163 curr[1] = temp;
00164 curr += 4;
00165 }
00166 return iret;
00167 }
00168
00169
00170 int classname(Bank_TPCMZCLD)::swap()
00171 {
00172 int iret = swap_raw(header.ByteOrder,&NumRows,1);
00173 if(iret <= 0) return iret;
00174
00175 int nsp = 0;
00176 int *word = &NumRows;
00177 word++;
00178 for (int i=0; i<NumRows; i++){
00179 swap_raw(header.ByteOrder,word,2);
00180 nsp = word[1];
00181 word+=2;
00182 swap_short(header.ByteOrder,word,2*nsp);
00183 word+=2*nsp;
00184 }
00185
00186 return header.swap();
00187 }
00188
00189
00190
00191