1474 int tmp_drawer[512] = {
1476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,PB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0,
1479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0,
1480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+1, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+1, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+1, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC, 0, 0, 0,+1, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,+1, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,NC, 0, 0, 0, 0, 0,
1493 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0
1502 int tmp_channel[512] = {
1504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1506 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,PB, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0,
1507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0,
1508 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,
SH, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
SH, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
SH, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
SH, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC, 0, 0, 0,
SH, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1519 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
SH, 0, 0, 0,NC,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,NC, 0, 0, 0, 0, 0,
1521 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,NC,NC, 0, 0,NC, 0, 0, 0, 0, 0, 0, 0, 0, 0
1525 for (
int i = 0; i < 512; i++) {
1526 if (tmp_drawer[i] != NC) {
1530 case 0:
case 1: channel_number = i%4 + 12;
break;
1531 default: channel_number = i%4 - 2;
1563 for (
int side = 0; side < 2; side++) {
1564 for (
int module_count = 0; module_count < 64; module_count++ ) {
1565 for (
int tower_count = 0; tower_count < 4; tower_count++) {
1566 int drawer_number =
m_drawer_table[(side<<8)|(module_count<<2)|(tower_count)];
1567 int channel_number =
m_channel_table[(side<<8)|(module_count<<2)|(tower_count)];
1570 if ((channel_number == 12)||(channel_number == 13)||(channel_number == 0)||(channel_number == 1)){
1572 switch (tower_count) {
1573 case 2: tower_number = 13;
break;
1574 case 3: tower_number = 15;
break;
1575 default: tower_number = tower_count + 10;
1578 switch (channel_number) {
1579 case 12:
case 13: channel_count = channel_number - 12;
break;
1580 default: channel_count = channel_number + 2;
1583 int index = (side<<8)|(drawer_number<<2)|(channel_count);
2234 -1, -1, -1, -1, -1, -1, -1, 0,
2235 -1, -1, -1, -1, -1, -1, -1, -1,
2236 -1, -1, -1, -1, -1, -1, -1, 2,
2237 -1, -1, -1, -1, -1, -1, -1, -1,
2238 -1, -1, -1, -1, -1, -1, 2, 3,
2239 4, 5, 4, -1, -1, -1, -1, -1,
2240 -1, -1, -1, -1, -1, 6, 6, 7,
2241 0, 1, -1, -1, -1, -1, -1, -1
2245 -1, -1, 0, -1, -1, -1, -1, 1,
2246 -1, -1, -1, -1, -1, -1, -1, -1,
2247 -1, -1, -1, 2, -1, -1, -1, 3,
2248 -1, -1, -1, -1, -1, -1, -1, -1,
2249 -1, -1, -1, -1, -1, -1, 2, 3,
2250 4, 5, 4, -1, -1, 5, -1, -1,
2251 -1, -1, -1, -1, -1, 6, 6, 7,
2252 0, 1, 7, -1, -1, -1, -1, -1
2256 -1, -1, 0, -1, -1, -1, -1, 1,
2257 -1, -1, -1, -1, -1, -1, -1, -1,
2258 -1, -1, 2, -1, -1, -1, -1, 3,
2259 -1, -1, -1, -1, -1, -1, -1, -1,
2260 -1, -1, -1, -1, -1, -1, 2, 3,
2261 4, 5, 4, -1, -1, 5, -1, -1,
2262 -1, -1, -1, -1, -1, 6, 6, 7,
2263 0, 1, 7, -1, -1, -1, -1, -1
2268 return (ros<4)?phiA[drawer]:phiC[drawer];
2278 -1, -1, -1, -1, -1, -1, -1, 1,
2279 -1, -1, -1, -1, -1, -1, -1, -1,
2280 -1, -1, -1, -1, -1, -1, -1, 1,
2281 -1, -1, -1, -1, -1, -1, -1, -1,
2282 -1, -1, -1, -1, -1, -1, 0, 0,
2283 0, 0, 1, -1, -1, -1, -1, -1,
2284 -1, -1, -1, -1, -1, 1, 0, 0,
2285 0, 0, -1, -1, -1, -1, -1, -1
2289 -1, -1, 1, -1, -1, -1, -1, 1,
2290 -1, -1, -1, -1, -1, -1, -1, -1,
2291 -1, -1, -1, 1, -1, -1, -1, 1,
2292 -1, -1, -1, -1, -1, -1, -1, -1,
2293 -1, -1, -1, -1, -1, -1, 0, 0,
2294 0, 0, 1, -1, -1, 1, -1, -1,
2295 -1, -1, -1, -1, -1, 1, 0, 0,
2296 0, 0, 1, -1, -1, -1, -1, -1
2300 -1, -1, 1, -1, -1, -1, -1, 1,
2301 -1, -1, -1, -1, -1, -1, -1, -1,
2302 -1, -1, 1, -1, -1, -1, -1, 1,
2303 -1, -1, -1, -1, -1, -1, -1, -1,
2304 -1, -1, -1, -1, -1, -1, 0, 0,
2305 0, 0, 1, -1, -1, 1, -1, -1,
2306 -1, -1, -1, -1, -1, 1, 0, 0,
2307 0, 0, 1, -1, -1, -1, -1, -1
2312 return (ros<4)?etaA[drawer]:etaC[drawer];