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 #include <ctype.h>
00043
00044 #ifndef RECHEADERFORMATS_HH
00045 #define RECHEADERFORMATS_HH
00046
00047 typedef int INT32;
00048 typedef short INT16;
00049
00050
00051 #define TPC_SECTORS 24
00052 #define TPC_TIMEBINS 512
00053 #define TPC_PADROWS 45
00054 #define TPC_MAXPADS 182
00055 #define TPC_MZPADS 384
00056 #define TPC_MXSEQUENCE 31
00057
00058 #define FTP_SECTORS 60
00059 #define FTP_TIMEBINS 256
00060 #define FTP_PADROWS 2
00061 #define FTP_MAXPADS 160
00062 #define FTP_MZPADS 320
00063 #define FTP_MXSEQUENCE 31
00064
00065 namespace OLDEVP {
00066 char *name2str(char *type);
00067 void dump_data(char *buffer, int size, int width = 8);
00068 }
00069
00070 struct Logical_Record_Header
00071 {
00072 char BankType[8];
00073 INT32 BankLength;
00074 INT32 RunNumber;
00075 INT32 FormatVersion;
00076 INT32 ByteOrder;
00077 INT32 reserved1;
00078 INT32 reserved2;
00079 INT32 reserved3;
00080 INT32 CRC;
00081
00082 int swap();
00083 void print();
00084 };
00085
00086 struct Logical_Record
00087 {
00088 Logical_Record_Header header;
00089 INT32 RecordLength;
00090 INT32 BlockingFactor;
00091 char RecordType[8];
00092 INT32 CRC;
00093
00094 int swap();
00095 void set_CRC();
00096
00097
00098 int test_CRC();
00099
00100
00101
00102
00103
00104
00105
00106
00107 void print(int level=0);
00108 };
00109
00110 struct Bank_Header
00111 {
00112 char BankType[8];
00113 INT32 BankLength;
00114 INT32 BankId;
00115 INT32 FormatVersion;
00116 INT32 ByteOrder;
00117 INT32 FormatNumber;
00118 INT32 Token;
00119 INT32 reserved1;
00120 INT32 CRC;
00121
00122 int swap();
00123 void print();
00124 const char *bankTypeString() const
00125 { static char buf[20];size_t i;
00126 for (i=0; (i<sizeof(BankType))&&(isprint(BankType[i]));i++) {buf[i]=BankType[i];}
00127 buf[i]=0; return buf;
00128 }
00129 };
00130
00131 struct Bank
00132 {
00133 Bank_Header header;
00134
00135 void set_CRC();
00136 int test_CRC();
00137 int swap();
00138 void print(int level=0);
00139 const char *bankTypeString() const {return header.bankTypeString();}
00140 };
00141
00142 struct Pointer
00143 {
00144 INT32 offset;
00145 INT32 length;
00146 };
00147
00148
00149 struct Bank_DATAP : public Bank
00150 {
00151 INT32 EventLength;
00152 INT32 Time;
00153 INT32 EventNumber;
00154 INT32 TriggerWord;
00155 INT32 TriggerInWord;
00156 INT32 DetectorPresence;
00157
00158
00159 Pointer TPC;
00160 Pointer SVT;
00161 Pointer TOF;
00162 Pointer EMC;
00163
00164 Pointer EXT_ID;
00165 Pointer FPD;
00166 Pointer FTPC;
00167 Pointer RICH;
00168 Pointer TRG;
00169 Pointer L3;
00170 INT32 reserved[102];
00171 };
00172
00173
00174
00175
00176
00177 struct Bank_DATAPX : public Bank
00178 {
00179 Pointer EXT_DET[22];
00180 };
00181 struct ASIC_params
00182
00183 {
00184 unsigned char thresh_lo;
00185 unsigned char thresh_hi;
00186 unsigned char n_seq_lo;
00187 unsigned char n_seq_hi;
00188 };
00189
00190
00191
00192 #endif