23 allowedModes_({3,5,9,6,10,12,7,11,13,14,15}){
28 ss << tree_dir <<
"/" << mode_inv;
77 {-999,-999,-999,-999,-999,-999},
81 {-999,-999,-999,-999,-999,-999},
87 {3,5,10,13,-999,-999},
94 static const int dPhiNLBMap_5bit_256Max[32] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 23, 25, 28, 31, 34, 39, 46, 55, 68, 91, 136};
96 static const int dPhiNLBMap_6bit_256Max[64] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 42, 43, 45, 47, 49, 51, 53, 56, 58, 61, 65, 68, 73, 78, 83, 89, 97, 106, 116, 129, 145, 166, 193, 232};
98 static const int dPhiNLBMap_7bit_256Max[128] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 88, 90, 91, 93, 94, 96, 97, 99, 101, 103, 105, 107, 109, 111, 113, 115, 118, 120, 123, 125, 128, 131, 134, 138, 141, 145, 149, 153, 157, 161, 166, 171, 176, 182, 188, 194, 201, 209, 217, 225, 235, 245};
102 static const int dPhiNLBMap_7bit_512Max[256] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, 76, 77, 79, 80, 81, 83, 84, 86, 87, 89, 91, 92, 94, 96, 98, 100, 102, 105, 107, 110, 112, 115, 118, 121, 124, 127, 131, 135, 138, 143, 147, 152, 157, 162, 168, 174, 181, 188, 196, 204, 214, 224, 235, 247, 261, 276, 294, 313, 336, 361, 391, 427, 470};
104 static const int dPhiNLBMap_8bit_512Max[256] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 164, 165, 166, 167, 168, 170, 171, 172, 174, 175, 176, 178, 179, 180, 182, 183, 185, 186, 188, 190, 191, 193, 194, 196, 198, 200, 201, 203, 205, 207, 209, 211, 213, 215, 217, 219, 221, 223, 225, 228, 230, 232, 235, 237, 240, 242, 245, 248, 250, 253, 256, 259, 262, 265, 268, 272, 275, 278, 282, 285, 289, 293, 297, 300, 305, 309, 313, 317, 322, 327, 331, 336, 341, 347, 352, 358, 363, 369, 375, 382, 388, 395, 402, 410, 417, 425, 433, 442, 450, 460, 469, 479, 490, 500};
108 { 0 , 1 , 2 , 4 , 5 , 7 , 9 , 11 , 13 , 15 , 18 , 21 , 24 , 28 , 32 , 37 , 41 , 47 , 53 , 60 , 67 , 75 , 84 , 94 , 105 , 117 , 131 , 145 , 162 , 180 , 200 , 222};
113 { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 8 , 9 , 10 , 11 , 12 , 14 , 15 , 16 , 17 , 19 , 20 , 21 , 23 , 24 , 26 , 27 , 29 , 30 , 32 , 33 , 35 , 37 , 38 , 40 , 42 , 44 , 45 , 47 , 49 , 51 , 53 , 55 , 57 , 59 , 61 , 63 , 65 , 67 , 70 , 72 , 74 , 77 , 79 , 81 , 84 , 86 , 89 , 92 , 94 , 97 , 100 , 103 , 105 , 108 , 111 , 114 , 117 , 121 , 124 , 127 , 130 , 134 , 137 , 141 , 144 , 148 , 151 , 155 , 159 , 163 , 167 , 171 , 175 , 179 , 183 , 188 , 192 , 197 , 201 , 206 , 210 , 215 , 220 , 225 , 230 , 235 , 241 , 246 , 251 , 257 , 263 , 268 , 274 , 280 , 286 , 292 , 299 , 305 , 312 , 318 , 325 , 332 , 339 , 346 , 353 , 361 , 368 , 376 , 383 , 391 , 399 , 408 , 416 , 425 , 433 , 442 , 451 , 460 , 469 , 479 , 489 };
118 { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 35 , 36 , 37 , 38 , 39 , 40 , 42 , 43 , 44 , 45 , 46 , 48 , 49 , 50 , 51 , 53 , 54 , 55 , 56 , 58 , 59 , 60 , 61 , 63 , 64 , 65 , 67 , 68 , 69 , 70 , 72 , 73 , 74 , 76 , 77 , 79 , 80 , 81 , 83 , 84 , 85 , 87 , 88 , 90 , 91 , 92 , 94 , 95 , 97 , 98 , 100 , 101 , 103 , 104 , 105 , 107 , 108 , 110 , 111 , 113 , 115 , 116 , 118 , 119 , 121 , 122 , 124 , 125 , 127 , 129 , 130 , 132 , 133 , 135 , 137 , 138 , 140 , 141 , 143 , 145 , 146 , 148 , 150 , 151 , 153 , 155 , 157 , 158 , 160 , 162 , 163 , 165 , 167 , 169 , 171 , 172 , 174 , 176 , 178 , 180 , 181 , 183 , 185 , 187 , 189 , 191 , 192 , 194 , 196 , 198 , 200 , 202 , 204 , 206 , 208 , 210 , 212 , 214 , 216 , 218 , 220 , 222 , 224 , 226 , 228 , 230 , 232 , 234 , 236 , 238 , 240 , 242 , 244 , 246 , 249 , 251 , 253 , 255 , 257 , 259 , 261 , 264 , 266 , 268 , 270 , 273 , 275 , 277 , 279 , 282 , 284 , 286 , 289 , 291 , 293 , 296 , 298 , 300 , 303 , 305 , 307 , 310 , 312 , 315 , 317 , 320 , 322 , 324 , 327 , 329 , 332 , 334 , 337 , 340 , 342 , 345 , 347 , 350 , 352 , 355 , 358 , 360 , 363 , 366 , 368 , 371 , 374 , 376 , 379 , 382 , 385 , 387 , 390 , 393 , 396 , 398 , 401 , 404 , 407 , 410 , 413 , 416 , 419 , 421 , 424 , 427 , 430 , 433 , 436 , 439 , 442 , 445 , 448 , 451 , 454 , 457 , 461 , 464 , 467 , 470 , 473 , 476 , 479 , 483 };
135 for (
int edge=0; edge<(1<<
bits)-1; edge++)
145 for (
int edge=0; edge<(1<<
bits)-1; edge++)
155 for (
int edge=0; edge<(1<<
bits)-1; edge++)
168 for (
int edge=0; edge<(1<<
bits)-1; edge++)
178 for (
int edge=0; edge<(1<<
bits)-1; edge++)
187 if (dPhi>=
max) dPhi_ =
max;
188 return (sign_ * dPhi_);
195 int dPhiBin_= (1<<
bits)-1;
208 for (
int edge=0; edge<(1<<
bits)-1; edge++)
217 for (
int edge=0; edge<(1<<
bits)-1; edge++)
226 for (
int edge=0; edge<(1<<
bits)-1; edge++)
238 for (
int edge=0; edge<(1<<
bits)-1; edge++)
247 for (
int edge=0; edge<(1<<
bits)-1; edge++)
262 int dPhi_= (1<<
bits)-1;
264 if (dPhiBin>(1<<bits)-1)
265 dPhiBin = (1<<bits)-1;
294 else if ((
int)clct==9)
296 else if ((
int)clct==8)
298 else if ((
int)clct==7)
300 else if ((
int)clct==6)
302 else if ((
int)clct==5)
304 else if ((
int)clct==4)
306 else if ((
int)clct==3)
308 else if ((
int)clct==2)
330 return (sign_ * clct_);
396 int etaInt = (fabs(eta) - 0.9)*(32.0/(1.6))-0.5;
397 etaInt = (etaInt>>
shift)<<shift;
399 eta_ = 0.9 + (etaInt + 0.5)*(1.6/32.0);
413 int etaInt = (fabs(eta) - 0.9)*(32.0/(1.6))-0.5;
414 etaInt = (etaInt>>
shift);
415 if(etaInt > 31){etaInt = 31;}
423 if (etaBin>((1<<5)-1))
430 int etaInt_ = etaBin <<
shift;
431 float eta_ = 0.9 + (etaInt_ + 0.5)*(1.6/32.0);
439 int ModeVariables[13][6];
442 for (
int i=0;
i<13;
i++) {
443 for (
int j=0;j<6;j++) {
448 int dphi[6] = {-999,-999,-999,-999,-999,-999}, deta[6] = {-999,-999,-999,-999,-999,-999};
449 int clct[4] = {-999,-999,-999,-999}, cscid[4] = {-999,-999,-999,-999};
450 int phis[4] = {-999,-999,-999,-999},
etas[4] = {-999,-999,-999,-999}, mode_inv = 0;;
451 int FR[4] = {-999,-999,-999,-999};
454 float dPhi12 = dphi[0];
455 float dPhi13 = dphi[1];
456 float dPhi14 = dphi[2];
457 float dPhi23 = dphi[3];
458 float dPhi24 = dphi[4];
459 float dPhi34 = dphi[5];
460 float dTheta12 = deta[0];
461 float dTheta13 = deta[1];
462 float dTheta14 = deta[2];
463 float dTheta23 = deta[3];
464 float dTheta24 = deta[4];
465 float dTheta34 = deta[5];
467 float CLCT1 = clct[0];
468 float CLCT2 = clct[1];
469 float CLCT3 = clct[2];
470 float CLCT4 = clct[3];
476 mode_inv = (Address >> (30-4)) & ((1<<4)-1);
481 if (verbose)
cout <<
"PtAssignment:getPt: decoding, inverted mode = " << mode_inv << endl;
486 int dPhi12_ = (Address >> (0)) & ((1<<9)-1);
487 float sign12 = (Address >> (0+9)) & ((1<<1)-1);
488 dTheta12 = (Address >> (0+9+1)) & ((1<<3)-1);
489 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
490 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
491 CLCT2 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
492 float CLCT2Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
493 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
494 FR2 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
495 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
500 if (sign12 == 0) dPhi12 = -1*dPhi12;
501 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
502 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
504 if (verbose)
cout <<
"PtAssignment:getPt: decoding, Addess = 0x" << hex << Address << endl;
505 if (verbose)
cout <<
"PtAssignment:getPt: decoding, dPhi12 = " <<
dec << dPhi12_ << endl;
512 int dPhi13_ = (Address >> (0)) & ((1<<9)-1);
513 float sign13 = (Address >> (0+9)) & ((1<<1)-1);
514 dTheta13 = (Address >> (0+9+1)) & ((1<<3)-1);
515 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
516 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
517 CLCT3 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
518 float CLCT3Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
519 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
520 FR3 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
521 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
526 if (sign13 == 0) dPhi13 = -1*dPhi13;
527 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
528 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
534 int dPhi14_ = (Address >> (0)) & ((1<<9)-1);
535 float sign14 = (Address >> (0+9)) & ((1<<1)-1);
536 dTheta14 = (Address >> (0+9+1)) & ((1<<3)-1);
537 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
538 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
539 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
540 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
541 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
542 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
543 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
548 if (sign14 == 0) dPhi14 = -1*dPhi14;
549 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
550 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
556 int dPhi23_ = (Address >> (0)) & ((1<<9)-1);
557 float sign23 = (Address >> (0+9)) & ((1<<1)-1);
558 dTheta23 = (Address >> (0+9+1)) & ((1<<3)-1);
559 CLCT2 = (Address >> (0+9+1+3)) & ((1<<2)-1);
560 float CLCT2Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
561 CLCT3 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
562 float CLCT3Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
563 FR2 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
564 FR3 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
565 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
570 if (sign23 == 0) dPhi23 = -1*dPhi23;
571 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
572 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
577 int dPhi24_ = (Address >> (0)) & ((1<<9)-1);
578 float sign24 = (Address >> (0+9)) & ((1<<1)-1);
579 dTheta24 = (Address >> (0+9+1)) & ((1<<3)-1);
580 CLCT2 = (Address >> (0+9+1+3)) & ((1<<2)-1);
581 float CLCT2Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
582 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
583 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
584 FR2 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
585 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
586 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
591 if (sign24 == 0) dPhi24 = -1*dPhi24;
592 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
593 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
598 int dPhi34_ = (Address >> (0)) & ((1<<9)-1);
599 float sign34 = (Address >> (0+9)) & ((1<<1)-1);
600 dTheta34 = (Address >> (0+9+1)) & ((1<<3)-1);
601 CLCT3 = (Address >> (0+9+1+3)) & ((1<<2)-1);
602 float CLCT3Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
603 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
604 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
605 FR3 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
606 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
607 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
612 if (sign34 == 0) dPhi34 = -1*dPhi34;
613 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
614 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
618 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
619 int dPhi23_ = (Address >> (0+7)) & ((1<<5)-1);
620 float sign12 = (Address >> (0+7+5)) & ((1<<1)-1);
621 float sign23 = (Address >> (0+7+5+1)) & ((1<<1)-1);
622 dTheta13 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
623 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
624 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
625 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
626 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
636 if (sign12 == 0) dPhi12 = -1*dPhi12;
637 if (sign23 == 0) dPhi23 = -1*dPhi23;
638 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
642 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
643 int dPhi24_ = (Address >> (0+7)) & ((1<<5)-1);
644 float sign12 = (Address >> (0+7+5)) & ((1<<1)-1);
645 float sign24 = (Address >> (0+7+5+1)) & ((1<<1)-1);
646 dTheta14 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
647 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
648 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
649 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
650 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
656 if (sign12 == 0) dPhi12 = -1*dPhi12;
657 if (sign24 == 0) dPhi24 = -1*dPhi24;
658 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
662 int dPhi13_ = (Address >> (0)) & ((1<<7)-1);
663 int dPhi34_ = (Address >> (0+7)) & ((1<<5)-1);
664 float sign13 = (Address >> (0+7+5)) & ((1<<1)-1);
665 float sign34 = (Address >> (0+7+5+1)) & ((1<<1)-1);
666 dTheta14 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
667 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
668 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
669 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
670 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
676 if (sign13 == 0) dPhi13 = -1*dPhi13;
677 if (sign34 == 0) dPhi34 = -1*dPhi34;
678 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
682 int dPhi23_ = (Address >> (0)) & ((1<<7)-1);
683 int dPhi34_ = (Address >> (0+7)) & ((1<<6)-1);
684 float sign23 = (Address >> (0+7+6)) & ((1<<1)-1);
685 float sign34 = (Address >> (0+7+6+1)) & ((1<<1)-1);
686 dTheta24 = (Address >> (0+7+6+1+1)) & ((1<<3)-1);
687 CLCT2 = (Address >> (0+7+6+1+1+3)) & ((1<<2)-1);
688 float CLCT2Sign= (Address >> (0+7+6+1+1+3+2)) & ((1<<1)-1);
689 int TrackEta_ = (Address >> (0+7+6+1+1+3+2+1)) & ((1<<5)-1);
695 if (sign23 == 0) dPhi23 = -1*dPhi23;
696 if (sign34 == 0) dPhi34 = -1*dPhi34;
697 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
701 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
702 int dPhi23_ = (Address >> (0+7)) & ((1<<5)-1);
703 int dPhi34_ = (Address >> (0+7+5)) & ((1<<6)-1);
704 int sign23 = (Address >> (0+7+5+6)) & ((1<<1)-1);
705 int sign34 = (Address >> (0+7+5+6+1)) & ((1<<1)-1);
706 FR1 = (Address >> (0+7+5+6+1+1)) & ((1<<1)-1);
707 int TrackEta_ = (Address >> (0+7+5+6+1+1+1)) & ((1<<5)-1);
714 if (sign23 == 0) dPhi23 = -1*dPhi23;
715 if (sign34 == 0) dPhi34 = -1*dPhi34;
722 bool st2_off =
false;
723 bool st3_off =
false;
724 bool st4_off =
false;
726 int dPhi13 = dPhi12 + dPhi23;
727 int dPhi14 = dPhi13 + dPhi34;
728 int dPhi24 = dPhi23 + dPhi34;
730 int sum_st1 =
abs( dPhi12 + dPhi13 + dPhi14);
731 int sum_st2 =
abs(-dPhi12 + dPhi23 + dPhi24);
732 int sum_st3 =
abs(-dPhi13 - dPhi23 + dPhi34);
733 int sum_st4 =
abs(-dPhi14 - dPhi24 - dPhi34);
735 if (sum_st2 > sum_st1 && sum_st2 > sum_st3 && sum_st2 > sum_st4) st2_off =
true;
736 if (sum_st3 > sum_st1 && sum_st3 > sum_st2 && sum_st3 > sum_st4) st3_off =
true;
737 if (sum_st4 > sum_st1 && sum_st4 > sum_st2 && sum_st4 > sum_st3) st4_off =
true;
739 if ( st2_off && (
abs(dPhi12) > 9 ||
abs(dPhi23) > 9 ||
abs(dPhi24) > 9 ) &&
740 abs(dPhi13) < 10 &&
abs(dPhi14) < 10 &&
abs(dPhi34) < 10 ) {
741 dPhi12 = ceil(dPhi13 / 2); dPhi23 = floor(dPhi13 / 2); }
742 if ( st3_off && (
abs(dPhi13) > 9 ||
abs(dPhi23) > 9 ||
abs(dPhi34) > 9 ) &&
743 abs(dPhi12) < 10 &&
abs(dPhi14) < 10 &&
abs(dPhi24) < 10 ) {
744 dPhi23 = ceil(dPhi24 / 2); dPhi34 = floor(dPhi24 / 2); }
745 if ( st4_off && (
abs(dPhi14) > 9 ||
abs(dPhi24) > 9 ||
abs(dPhi34) > 9 ) &&
746 abs(dPhi12) < 10 &&
abs(dPhi13) < 10 &&
abs(dPhi23) < 10 ) {
747 if (
abs(dPhi13) <
abs(dPhi23) ) dPhi34 = dPhi13;
748 else dPhi34 = dPhi23; }
755 cout <<
"Inverted mode 15: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi23 <<
" " << dPhi34 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
757 cout <<
"Inverted mode 14: " << hex << Address <<
" " <<
dec << dPhi23 <<
" " << dPhi34 <<
" " <<
" " <<
" " << TrackEta <<
" " <<
dec << endl;
759 cout <<
"Inverted mode 13: " << hex << Address <<
" " <<
dec << dPhi13 <<
" " << dPhi34 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
761 cout <<
"Inverted mode 11: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi24 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
763 cout <<
"Inverted mode 7: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi23 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
765 cout <<
"Inverted mode 3: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
793 for(
int f=0;
f<4;
f++){
794 cout<<
"\nphis["<<
f<<
"] = "<<phis[
f]<<
" and etas = "<<
etas[
f]<<endl;
795 cout<<
"\nclct["<<
f<<
"] = "<<clct[
f]<<
" and cscid = "<<cscid[
f]<<endl;
799 cout<<
"\ndphi["<<u<<
"] = "<<dphi[u]<<
" and deta = "<<deta[u]<<endl;
809 int size[13] = {5,0,5,5,5,0,5,5,5,5,5,4,4};
810 int Variables[24] = {dphi[0], dphi[1], dphi[2], dphi[3], dphi[4], dphi[5], deta[0], deta[1], deta[2], deta[3], deta[4], deta[5],
811 clct[0], clct[1], clct[2], clct[3], cscid[0], cscid[1], cscid[2], cscid[3], FR[0], FR[1], FR[2], FR[3]};
820 int goodMode =
false;
821 int allowedModes[11] = {3,5,9,6,10,12,7,11,13,14,15};
822 for (
int i=0;
i<11;
i++)
823 if (allowedModes[
i] == mode_inv)
830 for(
int i=3;
i<16;
i++){
835 vector<Double_t> Data;
838 for(
int y=0;y<size[mode_inv-3];y++){
839 Data.push_back(Variables[ModeVariables[mode_inv-3][y]]);
840 if(verbose)
cout<<
"Generalized Variables "<<y<<
" "<<Variables[ModeVariables[mode_inv-3][y]]<<
"\n";
844 cout<<
"Data.size() = "<<Data.size()<<
"\n";
846 cout<<
"Data["<<
i<<
"] = "<<Data[
i]<<
"\n";
853 float OpT =
event->predictedValue;
858 if (MpT<0.0) MpT = 1.0;
859 if (MpT>200.0) MpT = 200.0;
896 int dphi[6] = {-999,-999,-999,-999,-999,-999}, deta[6] = {-999,-999,-999,-999,-999,-999};
897 int clct[4] = {-999,-999,-999,-999}, cscid[4] = {-999,-999,-999,-999};
898 int phis[4] = {-999,-999,-999,-999},
etas[4] = {-999,-999,-999,-999}, mode_inv = 0;;
899 int FR[4] = {-999,-999,-999,-999};
901 float theta_angle = ((track.
theta)*0.2874016 + 8.5)*(3.14159265359/180);
902 float eta = (-1)*
log(
tan(theta_angle/2));
908 if(verbose)
cout<<
"Track eta = "<<eta<<
" and has hits in stations ";
911 for(
unsigned int s=8;
s<12;
s++){
912 if((stubs.find(
s)->second).
size() == 1){
915 if(verbose)
cout<<
"s= " <<
s <<
" " << endl;
918 if(verbose)
cout<<
"eta= " <<
etas[
s-8] <<
" " << endl;
919 phis[
s-8] = track.
phis[x];
920 if(verbose)
cout<<
"phi= " << phis[
s-8] <<
" " << endl;
921 clct[
s-8] = (stubs.find(
s)->second)[0].getPattern();
922 if(verbose)
cout<<
"clct= " << clct[
s-8] <<
" " << endl;
923 cscid[
s-8] = (stubs.find(
s)->second)[0].Id();
924 if(verbose)
cout<<
"cscid= " << cscid[
s-8] <<
" " << endl;
926 if(verbose)
cout<<
s <<
" " << (stubs.find(
s)->second)[0].detId<CSCDetId>().station()<<
" " << phis[
s-8] << endl;;
928 const CSCChamber* layer = cscGeometry->
chamber((stubs.find(
s)->second)[0].detId<CSCDetId>());
934 int coord[5] = {586,686,815,924,1013};
935 for(
int i=0;
i<5;
i++){
937 if((fabs(glc.
z()) < (coord[
i] + 7)) && (fabs(glc.
z()) > (coord[
i] - 7)))
958 if(verbose)
cout <<
"\n Mode = " << mode <<
", inverted mode = " << mode_inv << endl;
964 for(
int d=0;
d<6;
d++){
969 if(phis[0] > 0 && phis[1] > 0){
970 dphi[0] = phis[1] - phis[0];
973 if(phis[0] > 0 && phis[2] > 0){
974 dphi[1] = phis[2] - phis[0];
977 if(phis[0] > 0 && phis[3] > 0){
978 dphi[2] = phis[3] - phis[0];
981 if(phis[1] > 0 && phis[2] > 0){
982 dphi[3] = phis[2] - phis[1];
985 if(phis[1] > 0 && phis[3] > 0){
986 dphi[4] = phis[3] - phis[1];
989 if(phis[2] > 0 && phis[3] > 0){
990 dphi[5] = phis[3] - phis[2];
998 float dPhi12__ = fabs(dphi[0]);
999 float eta__ =
getEta(eta, 5);
1000 float clct1__ =
getCLCT(clct[0]);
1001 float clct2__ =
getCLCT(clct[1]);
1004 cout <<
"Inverted mode 3 Track " << endl;
1005 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1006 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1007 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1008 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1012 float dPhi13__ = fabs(dphi[1]);
1013 float eta__ =
getEta(eta, 5);
1014 float clct1__ =
getCLCT(clct[0]);
1015 float clct3__ =
getCLCT(clct[2]);
1018 cout <<
"Inverted mode 5 Track " << endl;
1019 cout << setw(10) <<
"dPhi13: " << dphi[1] << setw(10) << dPhi13__ << endl;
1020 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1021 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1022 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1026 float dPhi14__ = fabs(dphi[2]);
1027 float eta__ =
getEta(eta, 5);
1028 float clct1__ =
getCLCT(clct[0]);
1029 float clct4__ =
getCLCT(clct[3]);
1032 cout <<
"Inverted mode 9 Track " << endl;
1033 cout << setw(10) <<
"dPhi14: " << dphi[2] << setw(10) << dPhi14__ << endl;
1034 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1035 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1036 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1040 float dPhi23__ = fabs(dphi[3]);
1041 float eta__ =
getEta(eta, 5);
1042 float clct2__ =
getCLCT(clct[1]);
1043 float clct3__ =
getCLCT(clct[2]);
1046 cout <<
"Inverted mode 9 Track " << endl;
1047 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1048 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1049 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1050 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1054 float dPhi24__ = fabs(dphi[4]);
1055 float eta__ =
getEta(eta, 5);
1056 float clct2__ =
getCLCT(clct[1]);
1057 float clct4__ =
getCLCT(clct[3]);
1060 cout <<
"Inverted mode 10 Track " << endl;
1061 cout << setw(10) <<
"dPhi24: " << dphi[4] << setw(10) << dPhi24__ << endl;
1062 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1063 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1064 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1068 float dPhi34__ = fabs(dphi[5]);
1069 float eta__ =
getEta(eta, 5);
1070 float clct3__ =
getCLCT(clct[2]);
1071 float clct4__ =
getCLCT(clct[3]);
1074 cout <<
"Inverted mode 12 Track " << endl;
1075 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1076 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1077 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1078 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1085 float eta__ =
getEta(eta, 5);
1086 float clct1__ =
getCLCT(clct[0]);
1088 cout <<
"Inverted mode 7 Track " << endl;
1089 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1090 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1091 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1092 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1098 float eta__ =
getEta(eta, 5);
1099 float clct1__ =
getCLCT(clct[0]);
1101 cout <<
"Inverted mode 11 Track " << endl;
1102 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1103 cout << setw(10) <<
"dPhi24: " << dphi[4] << setw(10) << dPhi24__ << endl;
1104 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1105 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1111 float eta__ =
getEta(eta, 5);
1112 float clct1__ =
getCLCT(clct[0]);
1114 cout <<
"Inverted mode 13 Track " << endl;
1115 cout << setw(10) <<
"dPhi13: " << dphi[1] << setw(10) << dPhi13__ << endl;
1116 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1117 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1118 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1124 float eta__ =
getEta(eta, 5);
1125 float clct2__ =
getCLCT(clct[1]);
1127 cout <<
"Inverted mode 14 Track " << endl;
1128 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1129 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1130 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1131 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1138 float eta__ =
getEta(eta, 5);
1141 cout <<
"Inverted mode 15 Track " << endl;
1142 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1143 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1144 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1145 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1149 float dPhi12 = dphi[0];
1150 float dPhi13 = dphi[1];
1151 float dPhi14 = dphi[2];
1152 float dPhi23 = dphi[3];
1153 float dPhi24 = dphi[4];
1154 float dPhi34 = dphi[5];
1155 float dTheta12 = deta[0];
1156 float dTheta13 = deta[1];
1157 float dTheta14 = deta[2];
1158 float dTheta23 = deta[3];
1159 float dTheta24 = deta[4];
1160 float dTheta34 = deta[5];
1162 float CLCT1 = clct[0];
1163 float CLCT2 = clct[1];
1164 float CLCT3 = clct[2];
1165 float CLCT4 = clct[3];
1171 unsigned long Address = 0x0;
1173 if (doComp && mode_inv==3)
1177 if (dPhi12<0) dPhi12Sign = -1;
1185 int dPhi12_ = fabs(dPhi12);
1186 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1189 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1190 CLCT1_ =
abs(CLCT1_);
1192 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1193 CLCT2_ =
abs(CLCT2_);
1197 int Mode_ = mode_inv;
1199 Address += ( dPhi12_ & ((1<<9)-1)) << (0);
1200 Address += ( sign12_ & ((1<<1)-1)) << (0+9);
1201 Address += ( dTheta12_ & ((1<<3)-1)) << (0+9+1);
1202 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1203 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1204 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1205 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1206 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1207 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1208 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1209 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1212 if (doComp && mode_inv==5)
1220 if (dPhi13<0) dPhi13Sign = -1;
1225 int dPhi13_ = fabs(dPhi13);
1226 int sign13_ = dPhi13Sign > 0 ? 1 : 0;
1229 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1230 CLCT1_ =
abs(CLCT1_);
1232 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1233 CLCT3_ =
abs(CLCT3_);
1237 int Mode_ = mode_inv;
1239 Address += ( dPhi13_ & ((1<<9)-1)) << (0);
1240 Address += ( sign13_ & ((1<<1)-1)) << (0+9);
1241 Address += ( dTheta13_ & ((1<<3)-1)) << (0+9+1);
1242 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1243 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1244 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1245 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1246 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1247 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1248 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1249 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1252 if (doComp && mode_inv==9)
1261 if (dPhi14<0) dPhi14Sign = -1;
1266 int dPhi14_ = fabs(dPhi14);
1267 int sign14_ = dPhi14Sign > 0 ? 1 : 0;
1270 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1271 CLCT1_ =
abs(CLCT1_);
1273 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1274 CLCT4_ =
abs(CLCT4_);
1278 int Mode_ = mode_inv;
1280 Address += ( dPhi14_ & ((1<<9)-1)) << (0);
1281 Address += ( sign14_ & ((1<<1)-1)) << (0+9);
1282 Address += ( dTheta14_ & ((1<<3)-1)) << (0+9+1);
1283 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1284 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1285 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1286 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1287 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1288 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1289 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1290 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1292 if (doComp && mode_inv==6)
1300 if (dPhi23<0) dPhi23Sign = -1;
1305 int dPhi23_ = fabs(dPhi23);
1306 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1309 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1310 CLCT2_ =
abs(CLCT2_);
1312 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1313 CLCT3_ =
abs(CLCT3_);
1317 int Mode_ = mode_inv;
1319 Address += ( dPhi23_ & ((1<<9)-1)) << (0);
1320 Address += ( sign23_ & ((1<<1)-1)) << (0+9);
1321 Address += ( dTheta23_ & ((1<<3)-1)) << (0+9+1);
1322 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3);
1323 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1324 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1325 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1326 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1327 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1328 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1329 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1331 if (doComp && mode_inv==10)
1339 if (dPhi24<0) dPhi24Sign = -1;
1344 int dPhi24_ = fabs(dPhi24);
1345 int sign24_ = dPhi24Sign > 0 ? 1 : 0;
1348 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1349 CLCT2_ =
abs(CLCT2_);
1351 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1352 CLCT4_ =
abs(CLCT4_);
1356 int Mode_ = mode_inv;
1358 Address += ( dPhi24_ & ((1<<9)-1)) << (0);
1359 Address += ( sign24_ & ((1<<1)-1)) << (0+9);
1360 Address += ( dTheta24_ & ((1<<3)-1)) << (0+9+1);
1361 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3);
1362 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1363 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1364 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1365 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1366 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1367 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1368 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1370 if (doComp && mode_inv==12)
1377 if (dPhi34<0) dPhi34Sign = -1;
1382 int dPhi34_ = fabs(dPhi34);
1383 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1386 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1387 CLCT3_ =
abs(CLCT3_);
1389 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1390 CLCT4_ =
abs(CLCT4_);
1394 int Mode_ = mode_inv;
1396 Address += ( dPhi34_ & ((1<<9)-1)) << (0);
1397 Address += ( sign34_ & ((1<<1)-1)) << (0+9);
1398 Address += ( dTheta34_ & ((1<<3)-1)) << (0+9+1);
1399 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3);
1400 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1401 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1402 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1403 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1404 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1405 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1406 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1409 if (doComp && mode_inv==7)
1417 if (dPhi12<0) dPhi12Sign = -1;
1418 if (dPhi23<0) dPhi23Sign = -1;
1425 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1426 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1429 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1430 CLCT1_ =
abs(CLCT1_);
1433 int Mode_ = mode_inv;
1435 Address += ( dPhi12_ & ((1<<7)-1)) << (0);
1436 Address += ( dPhi23_ & ((1<<5)-1)) << (0+7);
1437 Address += ( sign12_ & ((1<<1)-1)) << (0+7+5);
1438 Address += ( sign23_ & ((1<<1)-1)) << (0+7+5+1);
1439 Address += ( dTheta13_ & ((1<<3)-1)) << (0+7+5+1+1);
1440 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1441 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1442 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1443 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1444 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1447 if (doComp && mode_inv==11)
1454 if (dPhi12<0) dPhi12Sign = -1;
1455 if (dPhi24<0) dPhi24Sign = -1;
1461 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1462 int sign24_ = dPhi24Sign > 0 ? 1 : 0;
1465 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1466 CLCT1_ =
abs(CLCT1_);
1469 int Mode_ = mode_inv;
1471 Address += ( dPhi12_ & ((1<<7)-1)) << (0);
1472 Address += ( dPhi24_ & ((1<<5)-1)) << (0+7);
1473 Address += ( sign12_ & ((1<<1)-1)) << (0+7+5);
1474 Address += ( sign24_ & ((1<<1)-1)) << (0+7+5+1);
1475 Address += ( dTheta14_ & ((1<<3)-1)) << (0+7+5+1+1);
1476 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1477 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1478 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1479 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1480 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1482 if (doComp && mode_inv==13)
1489 if (dPhi13<0) dPhi13Sign = -1;
1490 if (dPhi34<0) dPhi34Sign = -1;
1496 int sign13_ = dPhi13Sign > 0 ? 1 : 0;
1497 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1500 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1501 CLCT1_ =
abs(CLCT1_);
1504 int Mode_ = mode_inv;
1506 Address += ( dPhi13_ & ((1<<7)-1)) << (0);
1507 Address += ( dPhi34_ & ((1<<5)-1)) << (0+7);
1508 Address += ( sign13_ & ((1<<1)-1)) << (0+7+5);
1509 Address += ( sign34_ & ((1<<1)-1)) << (0+7+5+1);
1510 Address += ( dTheta14_ & ((1<<3)-1)) << (0+7+5+1+1);
1511 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1512 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1513 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1514 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1515 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1518 if (doComp && mode_inv==14)
1526 if (dPhi23<0) dPhi23Sign = -1;
1527 if (dPhi34<0) dPhi34Sign = -1;
1533 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1534 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1537 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1538 CLCT2_ =
abs(CLCT2_);
1540 int Mode_ = mode_inv;
1542 Address += ( dPhi23_ & ((1<<7)-1)) << (0);
1543 Address += ( dPhi34_ & ((1<<6)-1)) << (0+7);
1544 Address += ( sign23_ & ((1<<1)-1)) << (0+7+6);
1545 Address += ( sign34_ & ((1<<1)-1)) << (0+7+6+1);
1546 Address += ( dTheta24_ & ((1<<3)-1)) << (0+7+6+1+1);
1547 Address += ( CLCT2_ & ((1<<2)-1)) << (0+7+6+1+1+3);
1548 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+7+6+1+1+3+2);
1549 Address += ( eta_ & ((1<<5)-1)) << (0+7+6+1+1+3+2+1);
1550 Address += ( Mode_ & ((1<<4)-1)) << (0+7+6+1+1+3+2+1+5);
1553 if (doComp && mode_inv==15)
1559 if (dPhi12<0) dPhi12Sign = -1;
1560 if (dPhi23<0) dPhi23Sign = -1;
1561 if (dPhi34<0) dPhi34Sign = -1;
1563 dPhi23Sign *= dPhi12Sign;
1564 dPhi34Sign *= dPhi12Sign;
1571 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1572 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1575 int Mode_ = mode_inv;
1577 Address += ( dPhi12_ & ((1<<7)-1)) << 0;
1578 Address += ( dPhi23_ & ((1<<5)-1)) << (0+7);
1579 Address += ( dPhi34_ & ((1<<6)-1)) << (0+7+5);
1580 Address += ( sign23_ & ((1<<1)-1)) << (0+7+5+6);
1581 Address += ( sign34_ & ((1<<1)-1)) << (0+7+5+6+1);
1582 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+6+1+1);
1583 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+6+1+1+1);
1584 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+6+1+1+1+5);
std::vector< int > allowedModes_
const TriggerPrimitiveStationMap & getStubs() const
static float getdPhiFromBin(int dPhiBin, int bits, int max=512)
static int getEtaInt(float eta, int bits=5)
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision bits
static float getEta(float eta, int bits=5)
float calculatePt(unsigned long Address)
void loadL1TForestFromXML(const char *directory, unsigned int numTrees)
std::vector< int > thetas
static const int ModeVariables_Scheme3[13][6]
T x() const
Cartesian x coordinate.
double dPhi(double phi1, double phi2)
static float getCLCT(float clct)
static float getdTheta(float dTheta)
unsigned long calculateAddress(L1TMuon::InternalTrack track, const edm::EventSetup &es, int mode)
Tan< T >::type tan(const T &t)
Abs< T >::type abs(const T &t)
static float getNLBdPhi(float dPhi, int bits, int max=512)
static const int dPhiNLBMap_8bit[256]
std::vector< std::vector< int > > deltas
static const int dPhiNLBMap_7bit_256Max[128]
static const int dPhiNLBMap_8bit_512Max[256]
static const int dPhiNLBMap_7bit_512Max[256]
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
static int getNLBdPhiBin(float dPhi, int bits, int max=512)
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
static float getEtafromBin(int etaBin, int bits=5)
static const int dPhiNLBMap_5bit[32]
void predictEvent(emtf::Event *e, unsigned int trees)
static const int dPhiNLBMap_5bit_256Max[32]
EmtfPtAssignment(const char *tree_dir="L1Trigger/L1TMuon/data/emtf_luts/v_16_02_21/ModeVariables/trees")
static unsigned int const shift
static const int dPhiNLBMap_6bit_256Max[64]
std::map< unsigned, TriggerPrimitiveCollection > TriggerPrimitiveStationMap
static const int dPhiNLBMap_7bit[128]