19 using namespace L1TMuon;
24 allowedModes_({3,5,9,6,10,12,7,11,13,14,15}){
26 for (
unsigned i=0;
i<allowedModes_.size();
i++){
27 int mode_inv = allowedModes_[
i];
29 ss << tree_dir <<
"/" << mode_inv;
30 forest_[mode_inv].loadL1TForestFromXML(ss.str().c_str(),64);
75 static const int ModeVariables_Scheme3[13][6] =
78 {-999,-999,-999,-999,-999,-999},
82 {-999,-999,-999,-999,-999,-999},
88 {3,5,10,13,-999,-999},
95 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};
97 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};
99 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};
103 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};
105 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};
109 { 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};
114 { 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 };
119 { 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 };
136 for (
int edge=0; edge<(1<<
bits)-1; edge++)
146 for (
int edge=0; edge<(1<<
bits)-1; edge++)
156 for (
int edge=0; edge<(1<<
bits)-1; edge++)
169 for (
int edge=0; edge<(1<<
bits)-1; edge++)
179 for (
int edge=0; edge<(1<<
bits)-1; edge++)
188 if (dPhi>=
max) dPhi_ =
max;
189 return (sign_ * dPhi_);
196 int dPhiBin_= (1<<
bits)-1;
209 for (
int edge=0; edge<(1<<
bits)-1; edge++)
218 for (
int edge=0; edge<(1<<
bits)-1; edge++)
227 for (
int edge=0; edge<(1<<
bits)-1; edge++)
239 for (
int edge=0; edge<(1<<
bits)-1; edge++)
248 for (
int edge=0; edge<(1<<
bits)-1; edge++)
263 int dPhi_= (1<<
bits)-1;
265 if (dPhiBin>(1<<bits)-1)
266 dPhiBin = (1<<bits)-1;
295 else if ((
int)clct==9)
297 else if ((
int)clct==8)
299 else if ((
int)clct==7)
301 else if ((
int)clct==6)
303 else if ((
int)clct==5)
305 else if ((
int)clct==4)
307 else if ((
int)clct==3)
309 else if ((
int)clct==2)
331 return (sign_ * clct_);
397 int etaInt = (fabs(eta) - 0.9)*(32.0/(1.6))-0.5;
398 etaInt = (etaInt>>
shift)<<shift;
400 eta_ = 0.9 + (etaInt + 0.5)*(1.6/32.0);
414 int etaInt = (fabs(eta) - 0.9)*(32.0/(1.6))-0.5;
415 etaInt = (etaInt>>
shift);
416 if(etaInt > 31){etaInt = 31;}
424 if (etaBin>((1<<5)-1))
431 int etaInt_ = etaBin <<
shift;
432 float eta_ = 0.9 + (etaInt_ + 0.5)*(1.6/32.0);
440 int ModeVariables[13][6];
443 for (
int i=0;
i<13;
i++) {
444 for (
int j=0;
j<6;
j++) {
445 ModeVariables[
i][
j] = ModeVariables_Scheme3[
i][
j];
449 int dphi[6] = {-999,-999,-999,-999,-999,-999}, deta[6] = {-999,-999,-999,-999,-999,-999};
450 int clct[4] = {-999,-999,-999,-999}, cscid[4] = {-999,-999,-999,-999};
451 int phis[4] = {-999,-999,-999,-999},
etas[4] = {-999,-999,-999,-999}, mode_inv = 0;;
452 int FR[4] = {-999,-999,-999,-999};
455 float dPhi12 = dphi[0];
456 float dPhi13 = dphi[1];
457 float dPhi14 = dphi[2];
458 float dPhi23 = dphi[3];
459 float dPhi24 = dphi[4];
460 float dPhi34 = dphi[5];
461 float dTheta12 = deta[0];
462 float dTheta13 = deta[1];
463 float dTheta14 = deta[2];
464 float dTheta23 = deta[3];
465 float dTheta24 = deta[4];
466 float dTheta34 = deta[5];
468 float CLCT1 = clct[0];
469 float CLCT2 = clct[1];
470 float CLCT3 = clct[2];
471 float CLCT4 = clct[3];
477 mode_inv = (Address >> (30-4)) & ((1<<4)-1);
482 if (verbose)
cout <<
"PtAssignment:getPt: decoding, inverted mode = " << mode_inv << endl;
487 int dPhi12_ = (Address >> (0)) & ((1<<9)-1);
488 float sign12 = (Address >> (0+9)) & ((1<<1)-1);
489 dTheta12 = (Address >> (0+9+1)) & ((1<<3)-1);
490 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
491 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
492 CLCT2 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
493 float CLCT2Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
494 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
495 FR2 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
496 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
501 if (sign12 == 0) dPhi12 = -1*dPhi12;
502 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
503 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
505 if (verbose)
cout <<
"PtAssignment:getPt: decoding, Addess = 0x" << hex << Address << endl;
506 if (verbose)
cout <<
"PtAssignment:getPt: decoding, dPhi12 = " <<
dec << dPhi12_ << endl;
513 int dPhi13_ = (Address >> (0)) & ((1<<9)-1);
514 float sign13 = (Address >> (0+9)) & ((1<<1)-1);
515 dTheta13 = (Address >> (0+9+1)) & ((1<<3)-1);
516 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
517 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
518 CLCT3 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
519 float CLCT3Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
520 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
521 FR3 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
522 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
527 if (sign13 == 0) dPhi13 = -1*dPhi13;
528 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
529 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
535 int dPhi14_ = (Address >> (0)) & ((1<<9)-1);
536 float sign14 = (Address >> (0+9)) & ((1<<1)-1);
537 dTheta14 = (Address >> (0+9+1)) & ((1<<3)-1);
538 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
539 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
540 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
541 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
542 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
543 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
544 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
549 if (sign14 == 0) dPhi14 = -1*dPhi14;
550 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
551 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
557 int dPhi23_ = (Address >> (0)) & ((1<<9)-1);
558 float sign23 = (Address >> (0+9)) & ((1<<1)-1);
559 dTheta23 = (Address >> (0+9+1)) & ((1<<3)-1);
560 CLCT2 = (Address >> (0+9+1+3)) & ((1<<2)-1);
561 float CLCT2Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
562 CLCT3 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
563 float CLCT3Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
564 FR2 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
565 FR3 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
566 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
571 if (sign23 == 0) dPhi23 = -1*dPhi23;
572 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
573 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
578 int dPhi24_ = (Address >> (0)) & ((1<<9)-1);
579 float sign24 = (Address >> (0+9)) & ((1<<1)-1);
580 dTheta24 = (Address >> (0+9+1)) & ((1<<3)-1);
581 CLCT2 = (Address >> (0+9+1+3)) & ((1<<2)-1);
582 float CLCT2Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
583 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
584 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
585 FR2 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
586 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
587 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
592 if (sign24 == 0) dPhi24 = -1*dPhi24;
593 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
594 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
599 int dPhi34_ = (Address >> (0)) & ((1<<9)-1);
600 float sign34 = (Address >> (0+9)) & ((1<<1)-1);
601 dTheta34 = (Address >> (0+9+1)) & ((1<<3)-1);
602 CLCT3 = (Address >> (0+9+1+3)) & ((1<<2)-1);
603 float CLCT3Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
604 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
605 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
606 FR3 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
607 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
608 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
613 if (sign34 == 0) dPhi34 = -1*dPhi34;
614 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
615 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
619 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
620 int dPhi23_ = (Address >> (0+7)) & ((1<<5)-1);
621 float sign12 = (Address >> (0+7+5)) & ((1<<1)-1);
622 float sign23 = (Address >> (0+7+5+1)) & ((1<<1)-1);
623 dTheta13 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
624 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
625 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
626 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
627 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
637 if (sign12 == 0) dPhi12 = -1*dPhi12;
638 if (sign23 == 0) dPhi23 = -1*dPhi23;
639 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
643 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
644 int dPhi24_ = (Address >> (0+7)) & ((1<<5)-1);
645 float sign12 = (Address >> (0+7+5)) & ((1<<1)-1);
646 float sign24 = (Address >> (0+7+5+1)) & ((1<<1)-1);
647 dTheta14 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
648 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
649 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
650 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
651 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
657 if (sign12 == 0) dPhi12 = -1*dPhi12;
658 if (sign24 == 0) dPhi24 = -1*dPhi24;
659 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
663 int dPhi13_ = (Address >> (0)) & ((1<<7)-1);
664 int dPhi34_ = (Address >> (0+7)) & ((1<<5)-1);
665 float sign13 = (Address >> (0+7+5)) & ((1<<1)-1);
666 float sign34 = (Address >> (0+7+5+1)) & ((1<<1)-1);
667 dTheta14 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
668 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
669 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
670 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
671 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
677 if (sign13 == 0) dPhi13 = -1*dPhi13;
678 if (sign34 == 0) dPhi34 = -1*dPhi34;
679 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
683 int dPhi23_ = (Address >> (0)) & ((1<<7)-1);
684 int dPhi34_ = (Address >> (0+7)) & ((1<<6)-1);
685 float sign23 = (Address >> (0+7+6)) & ((1<<1)-1);
686 float sign34 = (Address >> (0+7+6+1)) & ((1<<1)-1);
687 dTheta24 = (Address >> (0+7+6+1+1)) & ((1<<3)-1);
688 CLCT2 = (Address >> (0+7+6+1+1+3)) & ((1<<2)-1);
689 float CLCT2Sign= (Address >> (0+7+6+1+1+3+2)) & ((1<<1)-1);
690 int TrackEta_ = (Address >> (0+7+6+1+1+3+2+1)) & ((1<<5)-1);
696 if (sign23 == 0) dPhi23 = -1*dPhi23;
697 if (sign34 == 0) dPhi34 = -1*dPhi34;
698 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
702 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
703 int dPhi23_ = (Address >> (0+7)) & ((1<<5)-1);
704 int dPhi34_ = (Address >> (0+7+5)) & ((1<<6)-1);
705 int sign23 = (Address >> (0+7+5+6)) & ((1<<1)-1);
706 int sign34 = (Address >> (0+7+5+6+1)) & ((1<<1)-1);
707 FR1 = (Address >> (0+7+5+6+1+1)) & ((1<<1)-1);
708 int TrackEta_ = (Address >> (0+7+5+6+1+1+1)) & ((1<<5)-1);
715 if (sign23 == 0) dPhi23 = -1*dPhi23;
716 if (sign34 == 0) dPhi34 = -1*dPhi34;
723 bool st2_off =
false;
724 bool st3_off =
false;
725 bool st4_off =
false;
727 int dPhi13 = dPhi12 + dPhi23;
728 int dPhi14 = dPhi13 + dPhi34;
729 int dPhi24 = dPhi23 + dPhi34;
731 int sum_st1 =
abs( dPhi12 + dPhi13 + dPhi14);
732 int sum_st2 =
abs(-dPhi12 + dPhi23 + dPhi24);
733 int sum_st3 =
abs(-dPhi13 - dPhi23 + dPhi34);
734 int sum_st4 =
abs(-dPhi14 - dPhi24 - dPhi34);
736 if (sum_st2 > sum_st1 && sum_st2 > sum_st3 && sum_st2 > sum_st4) st2_off =
true;
737 if (sum_st3 > sum_st1 && sum_st3 > sum_st2 && sum_st3 > sum_st4) st3_off =
true;
738 if (sum_st4 > sum_st1 && sum_st4 > sum_st2 && sum_st4 > sum_st3) st4_off =
true;
740 if ( st2_off && (
abs(dPhi12) > 9 ||
abs(dPhi23) > 9 ||
abs(dPhi24) > 9 ) &&
741 abs(dPhi13) < 10 &&
abs(dPhi14) < 10 &&
abs(dPhi34) < 10 ) {
742 dPhi12 = ceil(dPhi13 / 2); dPhi23 = floor(dPhi13 / 2); }
743 if ( st3_off && (
abs(dPhi13) > 9 ||
abs(dPhi23) > 9 ||
abs(dPhi34) > 9 ) &&
744 abs(dPhi12) < 10 &&
abs(dPhi14) < 10 &&
abs(dPhi24) < 10 ) {
745 dPhi23 = ceil(dPhi24 / 2); dPhi34 = floor(dPhi24 / 2); }
746 if ( st4_off && (
abs(dPhi14) > 9 ||
abs(dPhi24) > 9 ||
abs(dPhi34) > 9 ) &&
747 abs(dPhi12) < 10 &&
abs(dPhi13) < 10 &&
abs(dPhi23) < 10 ) {
748 if (
abs(dPhi13) <
abs(dPhi23) ) dPhi34 = dPhi13;
749 else dPhi34 = dPhi23; }
756 cout <<
"Inverted mode 15: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi23 <<
" " << dPhi34 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
758 cout <<
"Inverted mode 14: " << hex << Address <<
" " <<
dec << dPhi23 <<
" " << dPhi34 <<
" " <<
" " <<
" " << TrackEta <<
" " <<
dec << endl;
760 cout <<
"Inverted mode 13: " << hex << Address <<
" " <<
dec << dPhi13 <<
" " << dPhi34 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
762 cout <<
"Inverted mode 11: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi24 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
764 cout <<
"Inverted mode 7: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi23 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
766 cout <<
"Inverted mode 3: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
794 for(
int f=0;
f<4;
f++){
795 cout<<
"\nphis["<<
f<<
"] = "<<phis[
f]<<
" and etas = "<<
etas[
f]<<endl;
796 cout<<
"\nclct["<<
f<<
"] = "<<clct[
f]<<
" and cscid = "<<cscid[
f]<<endl;
800 cout<<
"\ndphi["<<u<<
"] = "<<dphi[u]<<
" and deta = "<<deta[u]<<endl;
810 int size[13] = {5,0,5,5,5,0,5,5,5,5,5,4,4};
811 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],
812 clct[0], clct[1], clct[2], clct[3], cscid[0], cscid[1], cscid[2], cscid[3], FR[0], FR[1], FR[2], FR[3]};
821 int goodMode =
false;
822 int allowedModes[11] = {3,5,9,6,10,12,7,11,13,14,15};
823 for (
int i=0;
i<11;
i++)
824 if (allowedModes[
i] == mode_inv)
831 for(
int i=3;
i<16;
i++){
836 vector<Double_t> Data;
839 for(
int y=0;y<size[mode_inv-3];y++){
840 Data.push_back(Variables[ModeVariables[mode_inv-3][y]]);
841 if(verbose)
cout<<
"Generalized Variables "<<y<<
" "<<Variables[ModeVariables[mode_inv-3][y]]<<
"\n";
845 cout<<
"Data.size() = "<<Data.size()<<
"\n";
847 cout<<
"Data["<<
i<<
"] = "<<Data[
i]<<
"\n";
854 float OpT =
event->predictedValue;
859 if (MpT<0.0) MpT = 1.0;
860 if (MpT>200.0) MpT = 200.0;
897 int dphi[6] = {-999,-999,-999,-999,-999,-999}, deta[6] = {-999,-999,-999,-999,-999,-999};
898 int clct[4] = {-999,-999,-999,-999}, cscid[4] = {-999,-999,-999,-999};
899 int phis[4] = {-999,-999,-999,-999},
etas[4] = {-999,-999,-999,-999}, mode_inv = 0;;
900 int FR[4] = {-999,-999,-999,-999};
902 float theta_angle = ((track.
theta)*0.2874016 + 8.5)*(3.14159265359/180);
903 float eta = (-1)*
log(
tan(theta_angle/2));
909 if(verbose)
cout<<
"Track eta = "<<eta<<
" and has hits in stations ";
912 for(
unsigned int s=8;
s<12;
s++){
913 if((stubs.find(
s)->second).
size() == 1){
916 if(verbose)
cout<<
"s= " <<
s <<
" " << endl;
919 if(verbose)
cout<<
"eta= " <<
etas[
s-8] <<
" " << endl;
920 phis[
s-8] = track.
phis[x];
921 if(verbose)
cout<<
"phi= " << phis[
s-8] <<
" " << endl;
922 clct[
s-8] = (stubs.find(
s)->second)[0].getPattern();
923 if(verbose)
cout<<
"clct= " << clct[
s-8] <<
" " << endl;
924 cscid[
s-8] = (stubs.find(
s)->second)[0].Id();
925 if(verbose)
cout<<
"cscid= " << cscid[
s-8] <<
" " << endl;
927 if(verbose)
cout<<
s <<
" " << (stubs.find(
s)->second)[0].detId<CSCDetId>().station()<<
" " << phis[
s-8] << endl;;
929 const CSCChamber* layer = cscGeometry->chamber((stubs.find(
s)->second)[0].detId<CSCDetId>());
935 int coord[5] = {586,686,815,924,1013};
936 for(
int i=0;
i<5;
i++){
938 if((fabs(glc.
z()) < (coord[
i] + 7)) && (fabs(glc.
z()) > (coord[
i] - 7)))
959 if(verbose)
cout <<
"\n Mode = " << mode <<
", inverted mode = " << mode_inv << endl;
965 for(
int d=0;
d<6;
d++){
970 if(phis[0] > 0 && phis[1] > 0){
971 dphi[0] = phis[1] - phis[0];
974 if(phis[0] > 0 && phis[2] > 0){
975 dphi[1] = phis[2] - phis[0];
978 if(phis[0] > 0 && phis[3] > 0){
979 dphi[2] = phis[3] - phis[0];
982 if(phis[1] > 0 && phis[2] > 0){
983 dphi[3] = phis[2] - phis[1];
986 if(phis[1] > 0 && phis[3] > 0){
987 dphi[4] = phis[3] - phis[1];
990 if(phis[2] > 0 && phis[3] > 0){
991 dphi[5] = phis[3] - phis[2];
999 float dPhi12__ = fabs(dphi[0]);
1000 float eta__ =
getEta(eta, 5);
1001 float clct1__ =
getCLCT(clct[0]);
1002 float clct2__ =
getCLCT(clct[1]);
1005 cout <<
"Inverted mode 3 Track " << endl;
1006 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1007 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1008 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1009 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1013 float dPhi13__ = fabs(dphi[1]);
1014 float eta__ =
getEta(eta, 5);
1015 float clct1__ =
getCLCT(clct[0]);
1016 float clct3__ =
getCLCT(clct[2]);
1019 cout <<
"Inverted mode 5 Track " << endl;
1020 cout << setw(10) <<
"dPhi13: " << dphi[1] << setw(10) << dPhi13__ << endl;
1021 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1022 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1023 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1027 float dPhi14__ = fabs(dphi[2]);
1028 float eta__ =
getEta(eta, 5);
1029 float clct1__ =
getCLCT(clct[0]);
1030 float clct4__ =
getCLCT(clct[3]);
1033 cout <<
"Inverted mode 9 Track " << endl;
1034 cout << setw(10) <<
"dPhi14: " << dphi[2] << setw(10) << dPhi14__ << endl;
1035 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1036 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1037 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1041 float dPhi23__ = fabs(dphi[3]);
1042 float eta__ =
getEta(eta, 5);
1043 float clct2__ =
getCLCT(clct[1]);
1044 float clct3__ =
getCLCT(clct[2]);
1047 cout <<
"Inverted mode 9 Track " << endl;
1048 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1049 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1050 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1051 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1055 float dPhi24__ = fabs(dphi[4]);
1056 float eta__ =
getEta(eta, 5);
1057 float clct2__ =
getCLCT(clct[1]);
1058 float clct4__ =
getCLCT(clct[3]);
1061 cout <<
"Inverted mode 10 Track " << endl;
1062 cout << setw(10) <<
"dPhi24: " << dphi[4] << setw(10) << dPhi24__ << endl;
1063 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1064 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1065 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1069 float dPhi34__ = fabs(dphi[5]);
1070 float eta__ =
getEta(eta, 5);
1071 float clct3__ =
getCLCT(clct[2]);
1072 float clct4__ =
getCLCT(clct[3]);
1075 cout <<
"Inverted mode 12 Track " << endl;
1076 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1077 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1078 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1079 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1086 float eta__ =
getEta(eta, 5);
1087 float clct1__ =
getCLCT(clct[0]);
1089 cout <<
"Inverted mode 7 Track " << endl;
1090 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1091 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1092 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1093 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1099 float eta__ =
getEta(eta, 5);
1100 float clct1__ =
getCLCT(clct[0]);
1102 cout <<
"Inverted mode 11 Track " << endl;
1103 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1104 cout << setw(10) <<
"dPhi24: " << dphi[4] << setw(10) << dPhi24__ << endl;
1105 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1106 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1112 float eta__ =
getEta(eta, 5);
1113 float clct1__ =
getCLCT(clct[0]);
1115 cout <<
"Inverted mode 13 Track " << endl;
1116 cout << setw(10) <<
"dPhi13: " << dphi[1] << setw(10) << dPhi13__ << endl;
1117 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1118 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1119 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1125 float eta__ =
getEta(eta, 5);
1126 float clct2__ =
getCLCT(clct[1]);
1128 cout <<
"Inverted mode 14 Track " << endl;
1129 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1130 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1131 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1132 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1139 float eta__ =
getEta(eta, 5);
1142 cout <<
"Inverted mode 15 Track " << endl;
1143 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1144 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1145 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1146 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1150 float dPhi12 = dphi[0];
1151 float dPhi13 = dphi[1];
1152 float dPhi14 = dphi[2];
1153 float dPhi23 = dphi[3];
1154 float dPhi24 = dphi[4];
1155 float dPhi34 = dphi[5];
1156 float dTheta12 = deta[0];
1157 float dTheta13 = deta[1];
1158 float dTheta14 = deta[2];
1159 float dTheta23 = deta[3];
1160 float dTheta24 = deta[4];
1161 float dTheta34 = deta[5];
1163 float CLCT1 = clct[0];
1164 float CLCT2 = clct[1];
1165 float CLCT3 = clct[2];
1166 float CLCT4 = clct[3];
1172 unsigned long Address = 0x0;
1174 if (doComp && mode_inv==3)
1178 if (dPhi12<0) dPhi12Sign = -1;
1186 int dPhi12_ = fabs(dPhi12);
1187 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1190 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1191 CLCT1_ =
abs(CLCT1_);
1193 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1194 CLCT2_ =
abs(CLCT2_);
1198 int Mode_ = mode_inv;
1200 Address += ( dPhi12_ & ((1<<9)-1)) << (0);
1201 Address += ( sign12_ & ((1<<1)-1)) << (0+9);
1202 Address += ( dTheta12_ & ((1<<3)-1)) << (0+9+1);
1203 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1204 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1205 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1206 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1207 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1208 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1209 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1210 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1213 if (doComp && mode_inv==5)
1221 if (dPhi13<0) dPhi13Sign = -1;
1226 int dPhi13_ = fabs(dPhi13);
1227 int sign13_ = dPhi13Sign > 0 ? 1 : 0;
1230 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1231 CLCT1_ =
abs(CLCT1_);
1233 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1234 CLCT3_ =
abs(CLCT3_);
1238 int Mode_ = mode_inv;
1240 Address += ( dPhi13_ & ((1<<9)-1)) << (0);
1241 Address += ( sign13_ & ((1<<1)-1)) << (0+9);
1242 Address += ( dTheta13_ & ((1<<3)-1)) << (0+9+1);
1243 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1244 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1245 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1246 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1247 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1248 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1249 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1250 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1253 if (doComp && mode_inv==9)
1262 if (dPhi14<0) dPhi14Sign = -1;
1267 int dPhi14_ = fabs(dPhi14);
1268 int sign14_ = dPhi14Sign > 0 ? 1 : 0;
1271 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1272 CLCT1_ =
abs(CLCT1_);
1274 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1275 CLCT4_ =
abs(CLCT4_);
1279 int Mode_ = mode_inv;
1281 Address += ( dPhi14_ & ((1<<9)-1)) << (0);
1282 Address += ( sign14_ & ((1<<1)-1)) << (0+9);
1283 Address += ( dTheta14_ & ((1<<3)-1)) << (0+9+1);
1284 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1285 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1286 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1287 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1288 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1289 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1290 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1291 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1293 if (doComp && mode_inv==6)
1301 if (dPhi23<0) dPhi23Sign = -1;
1306 int dPhi23_ = fabs(dPhi23);
1307 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1310 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1311 CLCT2_ =
abs(CLCT2_);
1313 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1314 CLCT3_ =
abs(CLCT3_);
1318 int Mode_ = mode_inv;
1320 Address += ( dPhi23_ & ((1<<9)-1)) << (0);
1321 Address += ( sign23_ & ((1<<1)-1)) << (0+9);
1322 Address += ( dTheta23_ & ((1<<3)-1)) << (0+9+1);
1323 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3);
1324 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1325 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1326 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1327 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1328 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1329 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1330 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1332 if (doComp && mode_inv==10)
1340 if (dPhi24<0) dPhi24Sign = -1;
1345 int dPhi24_ = fabs(dPhi24);
1346 int sign24_ = dPhi24Sign > 0 ? 1 : 0;
1349 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1350 CLCT2_ =
abs(CLCT2_);
1352 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1353 CLCT4_ =
abs(CLCT4_);
1357 int Mode_ = mode_inv;
1359 Address += ( dPhi24_ & ((1<<9)-1)) << (0);
1360 Address += ( sign24_ & ((1<<1)-1)) << (0+9);
1361 Address += ( dTheta24_ & ((1<<3)-1)) << (0+9+1);
1362 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3);
1363 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1364 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1365 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1366 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1367 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1368 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1369 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1371 if (doComp && mode_inv==12)
1378 if (dPhi34<0) dPhi34Sign = -1;
1383 int dPhi34_ = fabs(dPhi34);
1384 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1387 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1388 CLCT3_ =
abs(CLCT3_);
1390 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1391 CLCT4_ =
abs(CLCT4_);
1395 int Mode_ = mode_inv;
1397 Address += ( dPhi34_ & ((1<<9)-1)) << (0);
1398 Address += ( sign34_ & ((1<<1)-1)) << (0+9);
1399 Address += ( dTheta34_ & ((1<<3)-1)) << (0+9+1);
1400 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3);
1401 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1402 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1403 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1404 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1405 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1406 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1407 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1410 if (doComp && mode_inv==7)
1418 if (dPhi12<0) dPhi12Sign = -1;
1419 if (dPhi23<0) dPhi23Sign = -1;
1426 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1427 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1430 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1431 CLCT1_ =
abs(CLCT1_);
1434 int Mode_ = mode_inv;
1436 Address += ( dPhi12_ & ((1<<7)-1)) << (0);
1437 Address += ( dPhi23_ & ((1<<5)-1)) << (0+7);
1438 Address += ( sign12_ & ((1<<1)-1)) << (0+7+5);
1439 Address += ( sign23_ & ((1<<1)-1)) << (0+7+5+1);
1440 Address += ( dTheta13_ & ((1<<3)-1)) << (0+7+5+1+1);
1441 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1442 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1443 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1444 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1445 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1448 if (doComp && mode_inv==11)
1455 if (dPhi12<0) dPhi12Sign = -1;
1456 if (dPhi24<0) dPhi24Sign = -1;
1462 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1463 int sign24_ = dPhi24Sign > 0 ? 1 : 0;
1466 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1467 CLCT1_ =
abs(CLCT1_);
1470 int Mode_ = mode_inv;
1472 Address += ( dPhi12_ & ((1<<7)-1)) << (0);
1473 Address += ( dPhi24_ & ((1<<5)-1)) << (0+7);
1474 Address += ( sign12_ & ((1<<1)-1)) << (0+7+5);
1475 Address += ( sign24_ & ((1<<1)-1)) << (0+7+5+1);
1476 Address += ( dTheta14_ & ((1<<3)-1)) << (0+7+5+1+1);
1477 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1478 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1479 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1480 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1481 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1483 if (doComp && mode_inv==13)
1490 if (dPhi13<0) dPhi13Sign = -1;
1491 if (dPhi34<0) dPhi34Sign = -1;
1497 int sign13_ = dPhi13Sign > 0 ? 1 : 0;
1498 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1501 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1502 CLCT1_ =
abs(CLCT1_);
1505 int Mode_ = mode_inv;
1507 Address += ( dPhi13_ & ((1<<7)-1)) << (0);
1508 Address += ( dPhi34_ & ((1<<5)-1)) << (0+7);
1509 Address += ( sign13_ & ((1<<1)-1)) << (0+7+5);
1510 Address += ( sign34_ & ((1<<1)-1)) << (0+7+5+1);
1511 Address += ( dTheta14_ & ((1<<3)-1)) << (0+7+5+1+1);
1512 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1513 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1514 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1515 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1516 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1519 if (doComp && mode_inv==14)
1527 if (dPhi23<0) dPhi23Sign = -1;
1528 if (dPhi34<0) dPhi34Sign = -1;
1534 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1535 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1538 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1539 CLCT2_ =
abs(CLCT2_);
1541 int Mode_ = mode_inv;
1543 Address += ( dPhi23_ & ((1<<7)-1)) << (0);
1544 Address += ( dPhi34_ & ((1<<6)-1)) << (0+7);
1545 Address += ( sign23_ & ((1<<1)-1)) << (0+7+6);
1546 Address += ( sign34_ & ((1<<1)-1)) << (0+7+6+1);
1547 Address += ( dTheta24_ & ((1<<3)-1)) << (0+7+6+1+1);
1548 Address += ( CLCT2_ & ((1<<2)-1)) << (0+7+6+1+1+3);
1549 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+7+6+1+1+3+2);
1550 Address += ( eta_ & ((1<<5)-1)) << (0+7+6+1+1+3+2+1);
1551 Address += ( Mode_ & ((1<<4)-1)) << (0+7+6+1+1+3+2+1+5);
1554 if (doComp && mode_inv==15)
1560 if (dPhi12<0) dPhi12Sign = -1;
1561 if (dPhi23<0) dPhi23Sign = -1;
1562 if (dPhi34<0) dPhi34Sign = -1;
1564 dPhi23Sign *= dPhi12Sign;
1565 dPhi34Sign *= dPhi12Sign;
1572 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1573 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1576 int Mode_ = mode_inv;
1578 Address += ( dPhi12_ & ((1<<7)-1)) << 0;
1579 Address += ( dPhi23_ & ((1<<5)-1)) << (0+7);
1580 Address += ( dPhi34_ & ((1<<6)-1)) << (0+7+5);
1581 Address += ( sign23_ & ((1<<1)-1)) << (0+7+5+6);
1582 Address += ( sign34_ & ((1<<1)-1)) << (0+7+5+6+1);
1583 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+6+1+1);
1584 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+6+1+1+1);
1585 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+6+1+1+1+5);
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)
std::vector< int > thetas
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)
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]
tuple size
Write out results.