00001 #ifndef _RTS_SYSTEMS_H_
00002 #define _RTS_SYSTEMS_H_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #define TRG_TPC_BIT 0
00022
00023 #define TRG_SVT_BIT 1
00024
00025 #define TRG_BSMD_BIT 2
00026 #define TRG_SMD_BIT TRG_BSMD_BIT // use "BSMD"
00027
00028 #define TRG_FTPC_BIT 3
00029
00030 #define TRG_TOF_BIT 4
00031
00032 #define TRG_SSD_BIT 5 // used to be RICH
00033
00034 #define TRG_BTOW_BIT 6
00035 #define TRG_EMC_BIT TRG_BTOW_BIT // use "BTOW"
00036
00037 #define TRG_FPD_BIT 7
00038 #define TRG_FP2_BIT TRG_FPD_BIT // same bit as for older FPD
00039
00040 #define TRG_ETOW_BIT 8
00041 #define TRG_ESMD_BIT 9
00042 #define TRG_EEC_BIT TRG_ETOW_BIT // use "ETOW"
00043
00044 #define TRG_PMD_BIT 10
00045
00046 #define TRG_CTB_BIT 14 // does not have a LIVE bit
00047
00048 #define TRG_BBC_BIT 15 // does not have a LIVE bit
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090 #define LOCALHOST_NODE 0
00091 #define MY_NODE 0
00092 #define ERROR_NODE 0xFFFF
00093
00094
00095
00096
00097
00098
00099
00100 #define TPC_SYSTEM 0
00101 #define TPC_ID TPC_SYSTEM
00102
00103 #define SVT_SYSTEM 1
00104 #define SVT_ID SVT_SYSTEM
00105
00106 #define TOF_SYSTEM 2
00107 #define TOF_ID TOF_SYSTEM
00108
00109
00110 #define EMC_SYSTEM 3
00111 #define EMC_ID EMC_SYSTEM
00112 #define BEMC_SYSTEM EMC_SYSTEM
00113 #define BEMC_ID EMC_SYSTEM
00114
00115
00116 #define FPD_SYSTEM 4
00117 #define FPD_ID FPD_SYSTEM
00118
00119 #define FTP_SYSTEM 5
00120 #define FTP_ID FTP_SYSTEM
00121
00122
00123 #define EXT_SYSTEM 6
00124 #define EXT_ID EXT_SYSTEM
00125
00126
00127 #define RIC_SYSTEM 7
00128 #define RIC_ID RIC_SYSTEM
00129
00130 #define TRG_SYSTEM 8
00131 #define TRG_ID TRG_SYSTEM
00132
00133 #define L3_SYSTEM 9
00134 #define L3_ID L3_SYSTEM
00135
00136 #define SC_SYSTEM 10
00137 #define SC_ID SC_SYSTEM
00138
00139
00140 #define EXT2_SYSTEM 11
00141 #define EXT2_ID EXT2_SYSTEM
00142
00143 #define PMD_SYSTEM 12
00144 #define PMD_ID PMD_SYSTEM
00145
00146 #define SSD_SYSTEM 13
00147 #define SSD_ID SSD_SYSTEM
00148
00149
00150 #define EEC_SYSTEM 14
00151 #define EEC_ID EEC_SYSTEM
00152
00153
00154 #define DAQ_SYSTEM 15
00155 #define DAQ_ID DAQ_SYSTEM
00156 #define RTS_SYSTEM DAQ_SYSTEM
00157
00158
00159 #define FP2_SYSTEM 16
00160 #define FP2_ID FP2_SYSTEM
00161
00162 #define PP_SYSTEM 17
00163 #define PP_ID PP_SYSTEM
00164
00165 #define RTS_NUM_SYSTEMS 18
00166
00167 #define PP_SEQE_INSTANCE 1
00168 #define PP_SEQW_INSTANCE 2
00169 #define PP_TRG_INSTANCE 3
00170 #define PP_TEST_INSTANCE 4
00171
00172
00173
00174
00175
00176 #define TRG_L1_SUBSYS 1
00177 #define TRG_L2_SUBSYS 2
00178
00179 #define GL3_SUBSYS 1
00180 #define SL3_SUBSYS 2
00181
00182
00183
00184
00185
00186
00187 #ifndef RTS_PROJECT_PP
00188 #define DAQMAN_INSTANCE 1
00189 #endif
00190
00191 #define BB_INSTANCE 2
00192
00193 #ifndef RTS_PROJECT_PP
00194 #define EVP_INSTANCE 3
00195 #endif
00196
00197
00198 #define BDB_INSTANCE 4 // we'll keep the BDB controller's node_id the same...
00199
00200 #define BB2_INSTANCE 5
00201
00202 #define EVB_INSTANCE BB_INSTANCE
00203 #define EVB02_INSTANCE BB2_INSTANCE
00204 #define CLIENT_INSTANCE 15
00205
00206 #ifdef RTS_PROJECT_PP
00207 #define DAQMAN_INSTANCE BB_INSTANCE
00208 #define EVP_INSTANCE BB_INSTANCE
00209 #endif
00210
00211 #define TRG_INSTANCE 1
00212 #define TRG_L1_INSTANCE 2
00213 #define TRG_L2_INSTANCE 3
00214 #define TRG_TCD_INSTANCE 4
00215 #define TRG_RCC_INSTANCE 5
00216 #define TRG_CTB_INSTANCE 6
00217
00218 #define TRG_MWC_INSTANCE 8
00219 #define TRG_BC1_INSTANCE 9
00220 #define TRG_BCE_INSTANCE 10
00221 #define TRG_BCW_INSTANCE 11
00222 #define TRG_SCALER_INSTANCE 12
00223 #define TRG_BBC_INSTANCE 13
00224 #define TRG_FPE_INSTANCE 14
00225 #define TRG_FPW_INSTANCE 15
00226 #define TRG_L0_INSTANCE 16 // Tonko. Feb25,03
00227 #define TRG_TDI_INSTANCE 18
00228
00229 #define L3EVP_INSTANCE 1
00230 #define L3DISP_INSTANCE 2
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244 #define EVB_SUBSYS 1
00245 #define GB_SUBSYS 2
00246 #define EVB_NODES(x) ((DAQ_SYSTEM<<12) | (EVB_SUBSYS<<8) | (x))
00247 #define GB_NODES(x) ((DAQ_SYSTEM<<12) | (GB_SUBSYS<<8 ) | (x))
00248 #define GB_NODE GB_NODES(1)
00249
00250
00251 #define BB_NODE ((DAQ_SYSTEM<<12) | BB_INSTANCE)
00252
00253 #ifdef RTS_PROJECT_PP
00254
00255 #define DAQMAN_NODE BB_NODE
00256 #define EVP_NODE BB_NODE
00257
00258 #define BB2_NODE BB_NODE
00259
00260 #else
00261
00262 #define DAQMAN_NODE ((DAQ_SYSTEM<<12) | DAQMAN_INSTANCE)
00263 #define EVP_NODE ((DAQ_SYSTEM<<12) | EVP_INSTANCE)
00264
00265 #define BB2_NODE ((DAQ_SYSTEM<<12) | BB2_INSTANCE)
00266
00267 #define BDB_NODE ((DAQ_SYSTEM<<12) | BDB_INSTANCE) // old GB...
00268
00269 #endif
00270
00271
00272 #define RC_NODE DAQMAN_NODE
00273 #define LOG_NODE DAQMAN_NODE
00274 #define MON_NODE DAQMAN_NODE
00275
00276
00277
00278 #define CLIENT_NODE ((DAQ_SYSTEM<<12) | CLIENT_INSTANCE)
00279 #define EVB01_NODE BB_NODE
00280 #define EVB02_NODE BB2_NODE
00281 #define EVB_NODE EVB01_NODE
00282
00283
00284
00285 #define RIC01_NODE ((RIC_SYSTEM<<12) | 1)
00286 #define RIC02_NODE ((RIC_SYSTEM<<12) | 2)
00287 #define RIC_NODE RIC01_NODE
00288
00289 #define TOF01_NODE ((TOF_SYSTEM<<12) | 1)
00290 #define TOF02_NODE ((TOF_SYSTEM<<12) | 2)
00291 #define TOF_NODE TOF01_NODE
00292
00293
00294 #define FPD01_NODE ((FPD_SYSTEM<<12) | 1)
00295 #define FPD02_NODE ((FPD_SYSTEM<<12) | 2)
00296 #define FPD_NODE FPD01_NODE
00297
00298
00299 #define TPC_NODES(x) ((TPC_SYSTEM<<12) | (x))
00300
00301 #define FTP_NODES(x) ((FTP_SYSTEM<<12) | (x))
00302
00303 #define SVT_NODES(x) ((SVT_SYSTEM<<12) | (x))
00304
00305
00306
00307 #define BTOW_INSTANCE 1
00308 #define BSMD_INSTANCE 2
00309 #define BPRE_INSTANCE 3
00310
00311 #define EMC_NODES(x) ((EMC_SYSTEM<<12) | (x))
00312
00313 #define BTOW_NODE EMC_NODES(BTOW_INSTANCE)
00314 #define BSMD_NODE EMC_NODES(BSMD_INSTANCE)
00315 #define BPRE_NODE EMC_NODES(BPRE_INSTANCE)
00316
00317
00318 #define PMD01_NODE ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | 1)
00319 #define PMD02_NODE ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | 2)
00320 #define PMD03_NODE ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | 3)
00321 #define PMD_NODES(x) ((EXT_SYSTEM<<12)|(PMD_SYSTEM<<4) | (x))
00322
00323 #define PMD_NODE PMD03_NODE
00324
00325 #define SSD01_NODE ((EXT_SYSTEM<<12)|(SSD_SYSTEM<<4) | 1)
00326 #define SSD_NODE SSD01_NODE
00327
00328
00329 #define FP201_NODE ((EXT_SYSTEM<<12)|(FP2_SYSTEM<<4) | 1)
00330 #define FP2_NODE FP201_NODE
00331
00332
00333 #define ETOW_INSTANCE 1
00334 #define ESMD_INSTANCE 2
00335
00336 #define EEC_NODES(x) ((EXT_SYSTEM<<12)|(EEC_SYSTEM<<4) | (x))
00337
00338 #define ETOW_NODE EEC_NODES(ETOW_INSTANCE) // for _all_ Endcap
00339 #define EEC_NODE ETOW_NODE // Endcap EMC shortcut if only one...
00340
00341 #define ESMD_NODE EEC_NODES(ESMD_INSTANCE)
00342
00343
00344
00345
00346 #define L3_NODES(x) ((L3_SYSTEM<<12) | (SL3_SUBSYS<<8) | (x))
00347 #define SL3_NODES(x) ((L3_SYSTEM<<12) | (SL3_SUBSYS<<8) | (x))
00348 #define GL3_NODES(x) ((L3_SYSTEM<<12) | (GL3_SUBSYS<<8) | (x))
00349 #define L3EVP_NODE ((L3_SYSTEM<<12) | 1)
00350 #define L3DISP_NODE ((L3_SYSTEM<<12) | 2)
00351 #define GL3_NODE GL3_NODES(1)
00352
00353
00354 #define TRG_NODE ((TRG_SYSTEM<<12) | TRG_INSTANCE)
00355 #define TRG_L1_NODE ((TRG_SYSTEM<<12) | TRG_L1_INSTANCE)
00356
00357 #define TRG_L2_NODE ((TRG_SYSTEM<<12) | (TRG_L2_SUBSYS<<8) | (1))
00358 #define TRG_TCD_NODE ((TRG_SYSTEM<<12) | TRG_TCD_INSTANCE)
00359 #define TRG_RCC_NODE ((TRG_SYSTEM<<12) | TRG_RCC_INSTANCE)
00360 #define TRG_CTB_NODE ((TRG_SYSTEM<<12) | TRG_CTB_INSTANCE)
00361 #define TRG_L1_NODES(x) ((TRG_SYSTEM<<12) | (TRG_L1_SUBSYS<<8) | (x))
00362 #define TRG_L2_NODES(x) ((TRG_SYSTEM<<12) | (TRG_L2_SUBSYS<<8) | (x))
00363 #define TRG_MWC_NODE ((TRG_SYSTEM<<12) | TRG_MWC_INSTANCE)
00364 #define TRG_BC1_NODE ((TRG_SYSTEM<<12) | TRG_BC1_INSTANCE)
00365 #define TRG_BCE_NODE ((TRG_SYSTEM<<12) | TRG_BCE_INSTANCE)
00366 #define TRG_BCW_NODE ((TRG_SYSTEM<<12) | TRG_BCW_INSTANCE)
00367 #define TRG_SCALER_NODE ((TRG_SYSTEM<<12) | TRG_SCALER_INSTANCE)
00368 #define TRG_BBC_NODE ((TRG_SYSTEM<<12) | TRG_BBC_INSTANCE)
00369 #define TRG_FPE_NODE ((TRG_SYSTEM<<12) | TRG_FPE_INSTANCE)
00370 #define TRG_FPW_NODE ((TRG_SYSTEM<<12) | TRG_FPW_INSTANCE)
00371 #define TRG_L0_NODE ((TRG_SYSTEM<<12) | TRG_L0_INSTANCE) // Tonko, Feb25,03
00372
00373
00374 #define TDI_NODE ((TRG_SYSTEM<<12) | TRG_TDI_INSTANCE)
00375
00376 #define L201_NODE TRG_L2_NODES(1)
00377
00378
00379 #define SC_NODE ((SC_SYSTEM<<12) | 1)
00380
00381
00382 #define PP_SEQE_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_SEQE_INSTANCE)
00383
00384
00385 #define PP_SEQ1_NODE PP_SEQE_NODE
00386
00387 #define PP_SEQW_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_SEQW_INSTANCE)
00388
00389 #define PP_SEQ2_NODE PP_SEQW_NODE
00390
00391 #define PP_TRG_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_TRG_INSTANCE)
00392 #define PP_TEST_NODE ((EXT_SYSTEM<<12) | ((PP_SYSTEM)<<4) | PP_TEST_INSTANCE)
00393
00394
00395
00396
00397
00398
00399 extern inline int GET_NODE(int sys, int subsys, int inst)
00400 {
00401 int node ;
00402
00403 if((sys <= 10) || (sys==15)) {
00404 node = ((sys<<12) | (subsys<<8) | (inst)) ;
00405 }
00406 else {
00407
00408 node = 0x6000 | (sys<<4) | (inst);
00409 }
00410
00411 return node ;
00412 } ;
00413
00414 extern inline int GET_SYSTEM(unsigned short node)
00415 {
00416 int ret ;
00417
00418 if((node & 0xF000) != (EXT_SYSTEM<<12)) {
00419 ret = ((node)>>12) & 0xF ;
00420 }
00421 else {
00422 ret = ((node)&0x03F0) >> 4 ;
00423 }
00424
00425 return ret ;
00426 }
00427
00428 extern inline int GET_INSTANCE(unsigned short node)
00429 {
00430 int ret ;
00431
00432 if((node & 0xF000) != (EXT_SYSTEM << 12)) {
00433 ret = (node) & 0xFF ;
00434 }
00435 else {
00436 ret = (node) & 0xF ;
00437 }
00438
00439 return ret ;
00440 }
00441
00442 extern inline int GET_SUBSYSTEM(unsigned short node)
00443 {
00444 int ret ;
00445
00446 if((node & 0xF000) != (EXT_SYSTEM<<12)) {
00447 ret = (((node) >> 8) & 0x3) ;
00448 }
00449 else {
00450 ret = 0 ;
00451 }
00452
00453 return ret ;
00454
00455 }
00456
00457 #define GET_NODE_PRE_APR2002(sys,subsys,inst) ((sys<<12) | (subsys<<8) | (inst))
00458 #define GET_SYSTEM_PRE_APR2002(x) (((x) >> 12) & 0xf)
00459 #define GET_INSTANCE_PRE_APR2002(x) ((x) & 0xff)
00460 #define GET_SUBSYSTEM_PRE_APR2002(x) (((x) >> 8) & 0x3)
00461
00462 #define GET_ROUTE(x) (((x) >> 10) & 0x3)
00463
00464 #endif
00465
00466
00467