19 using namespace L1TMuon;
22 allowedModes_({3,5,9,6,10,12,7,11,13,14,15}){
24 for (
unsigned i=0;
i<allowedModes_.size();
i++){
25 int mode_inv = allowedModes_[
i];
27 ss << tree_dir <<
"/" << mode_inv;
28 forest_[mode_inv].loadL1TForestFromXML(ss.str().c_str(),64);
73 static const int ModeVariables_Scheme3[13][6] =
76 {-999,-999,-999,-999,-999,-999},
80 {-999,-999,-999,-999,-999,-999},
86 {3,5,10,13,-999,-999},
93 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};
95 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};
97 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};
101 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};
103 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};
107 { 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};
112 { 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 };
117 { 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 };
134 for (
int edge=0; edge<(1<<
bits)-1; edge++)
144 for (
int edge=0; edge<(1<<
bits)-1; edge++)
154 for (
int edge=0; edge<(1<<
bits)-1; edge++)
167 for (
int edge=0; edge<(1<<
bits)-1; edge++)
177 for (
int edge=0; edge<(1<<
bits)-1; edge++)
186 if (dPhi>=
max) dPhi_ =
max;
187 return (sign_ * dPhi_);
194 int dPhiBin_= (1<<
bits)-1;
207 for (
int edge=0; edge<(1<<
bits)-1; edge++)
216 for (
int edge=0; edge<(1<<
bits)-1; edge++)
225 for (
int edge=0; edge<(1<<
bits)-1; edge++)
237 for (
int edge=0; edge<(1<<
bits)-1; edge++)
246 for (
int edge=0; edge<(1<<
bits)-1; edge++)
261 int dPhi_= (1<<
bits)-1;
263 if (dPhiBin>(1<<bits)-1)
264 dPhiBin = (1<<bits)-1;
293 else if ((
int)clct==9)
295 else if ((
int)clct==8)
297 else if ((
int)clct==7)
299 else if ((
int)clct==6)
301 else if ((
int)clct==5)
303 else if ((
int)clct==4)
305 else if ((
int)clct==3)
307 else if ((
int)clct==2)
329 return (sign_ * clct_);
395 int etaInt = (fabs(eta) - 0.9)*(32.0/(1.6))-0.5;
396 etaInt = (etaInt>>
shift)<<shift;
398 eta_ = 0.9 + (etaInt + 0.5)*(1.6/32.0);
412 int etaInt = (fabs(eta) - 0.9)*(32.0/(1.6))-0.5;
413 etaInt = (etaInt>>
shift);
414 if(etaInt > 31){etaInt = 31;}
422 if (etaBin>((1<<5)-1))
429 int etaInt_ = etaBin <<
shift;
430 float eta_ = 0.9 + (etaInt_ + 0.5)*(1.6/32.0);
438 int ModeVariables[13][6];
441 for (
int i=0;
i<13;
i++) {
442 for (
int j=0;
j<6;
j++) {
443 ModeVariables[
i][
j] = ModeVariables_Scheme3[
i][
j];
447 int dphi[6] = {-999,-999,-999,-999,-999,-999}, deta[6] = {-999,-999,-999,-999,-999,-999};
448 int clct[4] = {-999,-999,-999,-999}, cscid[4] = {-999,-999,-999,-999};
449 int phis[4] = {-999,-999,-999,-999},
etas[4] = {-999,-999,-999,-999}, mode_inv = 0;;
450 int FR[4] = {-999,-999,-999,-999};
453 float dPhi12 = dphi[0];
454 float dPhi13 = dphi[1];
455 float dPhi14 = dphi[2];
456 float dPhi23 = dphi[3];
457 float dPhi24 = dphi[4];
458 float dPhi34 = dphi[5];
459 float dTheta12 = deta[0];
460 float dTheta13 = deta[1];
461 float dTheta14 = deta[2];
462 float dTheta23 = deta[3];
463 float dTheta24 = deta[4];
464 float dTheta34 = deta[5];
466 float CLCT1 = clct[0];
467 float CLCT2 = clct[1];
468 float CLCT3 = clct[2];
469 float CLCT4 = clct[3];
475 mode_inv = (Address >> (30-4)) & ((1<<4)-1);
480 if (verbose)
cout <<
"PtAssignment:getPt: decoding, inverted mode = " << mode_inv << endl;
485 int dPhi12_ = (Address >> (0)) & ((1<<9)-1);
486 float sign12 = (Address >> (0+9)) & ((1<<1)-1);
487 dTheta12 = (Address >> (0+9+1)) & ((1<<3)-1);
488 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
489 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
490 CLCT2 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
491 float CLCT2Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
492 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
493 FR2 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
494 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
499 if (sign12 == 0) dPhi12 = -1*dPhi12;
500 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
501 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
503 if (verbose)
cout <<
"PtAssignment:getPt: decoding, Addess = 0x" << hex << Address << endl;
504 if (verbose)
cout <<
"PtAssignment:getPt: decoding, dPhi12 = " <<
dec << dPhi12_ << endl;
511 int dPhi13_ = (Address >> (0)) & ((1<<9)-1);
512 float sign13 = (Address >> (0+9)) & ((1<<1)-1);
513 dTheta13 = (Address >> (0+9+1)) & ((1<<3)-1);
514 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
515 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
516 CLCT3 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
517 float CLCT3Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
518 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
519 FR3 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
520 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
525 if (sign13 == 0) dPhi13 = -1*dPhi13;
526 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
527 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
533 int dPhi14_ = (Address >> (0)) & ((1<<9)-1);
534 float sign14 = (Address >> (0+9)) & ((1<<1)-1);
535 dTheta14 = (Address >> (0+9+1)) & ((1<<3)-1);
536 CLCT1 = (Address >> (0+9+1+3)) & ((1<<2)-1);
537 float CLCT1Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
538 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
539 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
540 FR1 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
541 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
542 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
547 if (sign14 == 0) dPhi14 = -1*dPhi14;
548 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
549 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
555 int dPhi23_ = (Address >> (0)) & ((1<<9)-1);
556 float sign23 = (Address >> (0+9)) & ((1<<1)-1);
557 dTheta23 = (Address >> (0+9+1)) & ((1<<3)-1);
558 CLCT2 = (Address >> (0+9+1+3)) & ((1<<2)-1);
559 float CLCT2Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
560 CLCT3 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
561 float CLCT3Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
562 FR2 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
563 FR3 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
564 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
569 if (sign23 == 0) dPhi23 = -1*dPhi23;
570 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
571 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
576 int dPhi24_ = (Address >> (0)) & ((1<<9)-1);
577 float sign24 = (Address >> (0+9)) & ((1<<1)-1);
578 dTheta24 = (Address >> (0+9+1)) & ((1<<3)-1);
579 CLCT2 = (Address >> (0+9+1+3)) & ((1<<2)-1);
580 float CLCT2Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
581 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
582 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
583 FR2 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
584 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
585 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
590 if (sign24 == 0) dPhi24 = -1*dPhi24;
591 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
592 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
597 int dPhi34_ = (Address >> (0)) & ((1<<9)-1);
598 float sign34 = (Address >> (0+9)) & ((1<<1)-1);
599 dTheta34 = (Address >> (0+9+1)) & ((1<<3)-1);
600 CLCT3 = (Address >> (0+9+1+3)) & ((1<<2)-1);
601 float CLCT3Sign= (Address >> (0+9+1+3+2)) & ((1<<1)-1);
602 CLCT4 = (Address >> (0+9+1+3+2+1)) & ((1<<2)-1);
603 float CLCT4Sign= (Address >> (0+9+1+3+2+1+2)) & ((1<<1)-1);
604 FR3 = (Address >> (0+9+1+3+2+1+2+1)) & ((1<<1)-1);
605 FR4 = (Address >> (0+9+1+3+2+1+2+1+1)) & ((1<<1)-1);
606 int TrackEta_ = (Address >> (0+9+1+3+2+1+2+1+1+1)) & ((1<<5)-1);
611 if (sign34 == 0) dPhi34 = -1*dPhi34;
612 if (CLCT3Sign == 0) CLCT3 = -1*CLCT3;
613 if (CLCT4Sign == 0) CLCT4 = -1*CLCT4;
617 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
618 int dPhi23_ = (Address >> (0+7)) & ((1<<5)-1);
619 float sign12 = (Address >> (0+7+5)) & ((1<<1)-1);
620 float sign23 = (Address >> (0+7+5+1)) & ((1<<1)-1);
621 dTheta13 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
622 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
623 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
624 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
625 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
635 if (sign12 == 0) dPhi12 = -1*dPhi12;
636 if (sign23 == 0) dPhi23 = -1*dPhi23;
637 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
641 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
642 int dPhi24_ = (Address >> (0+7)) & ((1<<5)-1);
643 float sign12 = (Address >> (0+7+5)) & ((1<<1)-1);
644 float sign24 = (Address >> (0+7+5+1)) & ((1<<1)-1);
645 dTheta14 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
646 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
647 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
648 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
649 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
655 if (sign12 == 0) dPhi12 = -1*dPhi12;
656 if (sign24 == 0) dPhi24 = -1*dPhi24;
657 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
661 int dPhi13_ = (Address >> (0)) & ((1<<7)-1);
662 int dPhi34_ = (Address >> (0+7)) & ((1<<5)-1);
663 float sign13 = (Address >> (0+7+5)) & ((1<<1)-1);
664 float sign34 = (Address >> (0+7+5+1)) & ((1<<1)-1);
665 dTheta14 = (Address >> (0+7+5+1+1)) & ((1<<3)-1);
666 CLCT1 = (Address >> (0+7+5+1+1+3)) & ((1<<2)-1);
667 float CLCT1Sign= (Address >> (0+7+5+1+1+3+2)) & ((1<<1)-1);
668 FR1 = (Address >> (0+7+5+1+1+3+2+1)) & ((1<<1)-1);
669 int TrackEta_ = (Address >> (0+7+5+1+1+3+2+1+1)) & ((1<<5)-1);
675 if (sign13 == 0) dPhi13 = -1*dPhi13;
676 if (sign34 == 0) dPhi34 = -1*dPhi34;
677 if (CLCT1Sign == 0) CLCT1 = -1*CLCT1;
681 int dPhi23_ = (Address >> (0)) & ((1<<7)-1);
682 int dPhi34_ = (Address >> (0+7)) & ((1<<6)-1);
683 float sign23 = (Address >> (0+7+6)) & ((1<<1)-1);
684 float sign34 = (Address >> (0+7+6+1)) & ((1<<1)-1);
685 dTheta24 = (Address >> (0+7+6+1+1)) & ((1<<3)-1);
686 CLCT2 = (Address >> (0+7+6+1+1+3)) & ((1<<2)-1);
687 float CLCT2Sign= (Address >> (0+7+6+1+1+3+2)) & ((1<<1)-1);
688 int TrackEta_ = (Address >> (0+7+6+1+1+3+2+1)) & ((1<<5)-1);
694 if (sign23 == 0) dPhi23 = -1*dPhi23;
695 if (sign34 == 0) dPhi34 = -1*dPhi34;
696 if (CLCT2Sign == 0) CLCT2 = -1*CLCT2;
700 int dPhi12_ = (Address >> (0)) & ((1<<7)-1);
701 int dPhi23_ = (Address >> (0+7)) & ((1<<5)-1);
702 int dPhi34_ = (Address >> (0+7+5)) & ((1<<6)-1);
703 int sign23 = (Address >> (0+7+5+6)) & ((1<<1)-1);
704 int sign34 = (Address >> (0+7+5+6+1)) & ((1<<1)-1);
705 FR1 = (Address >> (0+7+5+6+1+1)) & ((1<<1)-1);
706 int TrackEta_ = (Address >> (0+7+5+6+1+1+1)) & ((1<<5)-1);
713 if (sign23 == 0) dPhi23 = -1*dPhi23;
714 if (sign34 == 0) dPhi34 = -1*dPhi34;
721 bool st2_off =
false;
722 bool st3_off =
false;
723 bool st4_off =
false;
725 int dPhi13 = dPhi12 + dPhi23;
726 int dPhi14 = dPhi13 + dPhi34;
727 int dPhi24 = dPhi23 + dPhi34;
729 int sum_st1 =
abs( dPhi12 + dPhi13 + dPhi14);
730 int sum_st2 =
abs(-dPhi12 + dPhi23 + dPhi24);
731 int sum_st3 =
abs(-dPhi13 - dPhi23 + dPhi34);
732 int sum_st4 =
abs(-dPhi14 - dPhi24 - dPhi34);
734 if (sum_st2 > sum_st1 && sum_st2 > sum_st3 && sum_st2 > sum_st4) st2_off =
true;
735 if (sum_st3 > sum_st1 && sum_st3 > sum_st2 && sum_st3 > sum_st4) st3_off =
true;
736 if (sum_st4 > sum_st1 && sum_st4 > sum_st2 && sum_st4 > sum_st3) st4_off =
true;
738 if ( st2_off && (
abs(dPhi12) > 9 ||
abs(dPhi23) > 9 ||
abs(dPhi24) > 9 ) &&
739 abs(dPhi13) < 10 &&
abs(dPhi14) < 10 &&
abs(dPhi34) < 10 ) {
740 dPhi12 = ceil(dPhi13 / 2); dPhi23 = floor(dPhi13 / 2); }
741 if ( st3_off && (
abs(dPhi13) > 9 ||
abs(dPhi23) > 9 ||
abs(dPhi34) > 9 ) &&
742 abs(dPhi12) < 10 &&
abs(dPhi14) < 10 &&
abs(dPhi24) < 10 ) {
743 dPhi23 = ceil(dPhi24 / 2); dPhi34 = floor(dPhi24 / 2); }
744 if ( st4_off && (
abs(dPhi14) > 9 ||
abs(dPhi24) > 9 ||
abs(dPhi34) > 9 ) &&
745 abs(dPhi12) < 10 &&
abs(dPhi13) < 10 &&
abs(dPhi23) < 10 ) {
746 if (
abs(dPhi13) <
abs(dPhi23) ) dPhi34 = dPhi13;
747 else dPhi34 = dPhi23; }
754 cout <<
"Inverted mode 15: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi23 <<
" " << dPhi34 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
756 cout <<
"Inverted mode 14: " << hex << Address <<
" " <<
dec << dPhi23 <<
" " << dPhi34 <<
" " <<
" " <<
" " << TrackEta <<
" " <<
dec << endl;
758 cout <<
"Inverted mode 13: " << hex << Address <<
" " <<
dec << dPhi13 <<
" " << dPhi34 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
760 cout <<
"Inverted mode 11: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi24 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
762 cout <<
"Inverted mode 7: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " << dPhi23 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
764 cout <<
"Inverted mode 3: " << hex << Address <<
" " <<
dec << dPhi12 <<
" " <<
" " << FR1 <<
" " << TrackEta <<
" " <<
dec << endl;
792 for(
int f=0;
f<4;
f++){
793 cout<<
"\nphis["<<
f<<
"] = "<<phis[
f]<<
" and etas = "<<
etas[
f]<<endl;
794 cout<<
"\nclct["<<
f<<
"] = "<<clct[
f]<<
" and cscid = "<<cscid[
f]<<endl;
798 cout<<
"\ndphi["<<u<<
"] = "<<dphi[u]<<
" and deta = "<<deta[u]<<endl;
808 int size[13] = {5,0,5,5,5,0,5,5,5,5,5,4,4};
809 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],
810 clct[0], clct[1], clct[2], clct[3], cscid[0], cscid[1], cscid[2], cscid[3], FR[0], FR[1], FR[2], FR[3]};
819 int goodMode =
false;
820 int allowedModes[11] = {3,5,9,6,10,12,7,11,13,14,15};
821 for (
int i=0;
i<11;
i++)
822 if (allowedModes[
i] == mode_inv)
829 for(
int i=3;
i<16;
i++){
834 vector<Double_t> Data;
837 for(
int y=0;y<size[mode_inv-3];y++){
838 Data.push_back(Variables[ModeVariables[mode_inv-3][y]]);
839 if(verbose)
cout<<
"Generalized Variables "<<y<<
" "<<Variables[ModeVariables[mode_inv-3][y]]<<
"\n";
843 cout<<
"Data.size() = "<<Data.size()<<
"\n";
845 cout<<
"Data["<<
i<<
"] = "<<Data[
i]<<
"\n";
848 Event *
event =
new Event();
852 float OpT =
event->predictedValue;
857 if (MpT<0.0) MpT = 1.0;
858 if (MpT>200.0) MpT = 200.0;
895 int dphi[6] = {-999,-999,-999,-999,-999,-999}, deta[6] = {-999,-999,-999,-999,-999,-999};
896 int clct[4] = {-999,-999,-999,-999}, cscid[4] = {-999,-999,-999,-999};
897 int phis[4] = {-999,-999,-999,-999},
etas[4] = {-999,-999,-999,-999}, mode_inv = 0;;
898 int FR[4] = {-999,-999,-999,-999};
900 float theta_angle = ((track.
theta)*0.2874016 + 8.5)*(3.14159265359/180);
901 float eta = (-1)*
log(
tan(theta_angle/2));
907 if(verbose)
cout<<
"Track eta = "<<eta<<
" and has hits in stations ";
910 for(
unsigned int s=8;
s<12;
s++){
911 if((stubs.find(
s)->second).
size() == 1){
914 if(verbose)
cout<<
"s= " <<
s <<
" " << endl;
917 if(verbose)
cout<<
"eta= " <<
etas[
s-8] <<
" " << endl;
918 phis[
s-8] = track.
phis[x];
919 if(verbose)
cout<<
"phi= " << phis[
s-8] <<
" " << endl;
920 clct[
s-8] = (stubs.find(
s)->second)[0].getPattern();
921 if(verbose)
cout<<
"clct= " << clct[
s-8] <<
" " << endl;
922 cscid[
s-8] = (stubs.find(
s)->second)[0].Id();
923 if(verbose)
cout<<
"cscid= " << cscid[
s-8] <<
" " << endl;
925 if(verbose)
cout<<
s <<
" " << (stubs.find(
s)->second)[0].detId<CSCDetId>().station()<<
" " << phis[
s-8] << endl;;
927 const CSCChamber* layer = cscGeometry->chamber((stubs.find(
s)->second)[0].detId<CSCDetId>());
933 int coord[5] = {586,686,815,924,1013};
934 for(
int i=0;
i<5;
i++){
936 if((fabs(glc.
z()) < (coord[
i] + 7)) && (fabs(glc.
z()) > (coord[
i] - 7)))
957 if(verbose)
cout <<
"\n Mode = " << mode <<
", inverted mode = " << mode_inv << endl;
963 for(
int d=0;
d<6;
d++){
968 if(phis[0] > 0 && phis[1] > 0){
969 dphi[0] = phis[1] - phis[0];
972 if(phis[0] > 0 && phis[2] > 0){
973 dphi[1] = phis[2] - phis[0];
976 if(phis[0] > 0 && phis[3] > 0){
977 dphi[2] = phis[3] - phis[0];
980 if(phis[1] > 0 && phis[2] > 0){
981 dphi[3] = phis[2] - phis[1];
984 if(phis[1] > 0 && phis[3] > 0){
985 dphi[4] = phis[3] - phis[1];
988 if(phis[2] > 0 && phis[3] > 0){
989 dphi[5] = phis[3] - phis[2];
997 float dPhi12__ = fabs(dphi[0]);
998 float eta__ =
getEta(eta, 5);
999 float clct1__ =
getCLCT(clct[0]);
1000 float clct2__ =
getCLCT(clct[1]);
1003 cout <<
"Inverted mode 3 Track " << endl;
1004 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1005 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1006 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1007 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1011 float dPhi13__ = fabs(dphi[1]);
1012 float eta__ =
getEta(eta, 5);
1013 float clct1__ =
getCLCT(clct[0]);
1014 float clct3__ =
getCLCT(clct[2]);
1017 cout <<
"Inverted mode 5 Track " << endl;
1018 cout << setw(10) <<
"dPhi13: " << dphi[1] << setw(10) << dPhi13__ << endl;
1019 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1020 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1021 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1025 float dPhi14__ = fabs(dphi[2]);
1026 float eta__ =
getEta(eta, 5);
1027 float clct1__ =
getCLCT(clct[0]);
1028 float clct4__ =
getCLCT(clct[3]);
1031 cout <<
"Inverted mode 9 Track " << endl;
1032 cout << setw(10) <<
"dPhi14: " << dphi[2] << setw(10) << dPhi14__ << endl;
1033 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1034 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1035 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1039 float dPhi23__ = fabs(dphi[3]);
1040 float eta__ =
getEta(eta, 5);
1041 float clct2__ =
getCLCT(clct[1]);
1042 float clct3__ =
getCLCT(clct[2]);
1045 cout <<
"Inverted mode 9 Track " << endl;
1046 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1047 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1048 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1049 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1053 float dPhi24__ = fabs(dphi[4]);
1054 float eta__ =
getEta(eta, 5);
1055 float clct2__ =
getCLCT(clct[1]);
1056 float clct4__ =
getCLCT(clct[3]);
1059 cout <<
"Inverted mode 10 Track " << endl;
1060 cout << setw(10) <<
"dPhi24: " << dphi[4] << setw(10) << dPhi24__ << endl;
1061 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1062 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1063 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1067 float dPhi34__ = fabs(dphi[5]);
1068 float eta__ =
getEta(eta, 5);
1069 float clct3__ =
getCLCT(clct[2]);
1070 float clct4__ =
getCLCT(clct[3]);
1073 cout <<
"Inverted mode 12 Track " << endl;
1074 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1075 cout << setw(10) <<
"CLCT3: " << clct[2] << setw(10) << clct3__ << endl;
1076 cout << setw(10) <<
"CLCT4: " << clct[3] << setw(10) << clct4__ << endl;
1077 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1084 float eta__ =
getEta(eta, 5);
1085 float clct1__ =
getCLCT(clct[0]);
1087 cout <<
"Inverted mode 7 Track " << endl;
1088 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1089 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1090 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1091 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1097 float eta__ =
getEta(eta, 5);
1098 float clct1__ =
getCLCT(clct[0]);
1100 cout <<
"Inverted mode 11 Track " << endl;
1101 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1102 cout << setw(10) <<
"dPhi24: " << dphi[4] << setw(10) << dPhi24__ << endl;
1103 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1104 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1110 float eta__ =
getEta(eta, 5);
1111 float clct1__ =
getCLCT(clct[0]);
1113 cout <<
"Inverted mode 13 Track " << endl;
1114 cout << setw(10) <<
"dPhi13: " << dphi[1] << setw(10) << dPhi13__ << endl;
1115 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1116 cout << setw(10) <<
"CLCT1: " << clct[0] << setw(10) << clct1__ << endl;
1117 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1123 float eta__ =
getEta(eta, 5);
1124 float clct2__ =
getCLCT(clct[1]);
1126 cout <<
"Inverted mode 14 Track " << endl;
1127 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1128 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1129 cout << setw(10) <<
"CLCT2: " << clct[1] << setw(10) << clct2__ << endl;
1130 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1137 float eta__ =
getEta(eta, 5);
1140 cout <<
"Inverted mode 15 Track " << endl;
1141 cout << setw(10) <<
"dPhi12: " << dphi[0] << setw(10) << dPhi12__ << endl;
1142 cout << setw(10) <<
"dPhi23: " << dphi[3] << setw(10) << dPhi23__ << endl;
1143 cout << setw(10) <<
"dPhi34: " << dphi[5] << setw(10) << dPhi34__ << endl;
1144 cout << setw(10) <<
"eta : " << eta << setw(10) << eta__ << endl;
1148 float dPhi12 = dphi[0];
1149 float dPhi13 = dphi[1];
1150 float dPhi14 = dphi[2];
1151 float dPhi23 = dphi[3];
1152 float dPhi24 = dphi[4];
1153 float dPhi34 = dphi[5];
1154 float dTheta12 = deta[0];
1155 float dTheta13 = deta[1];
1156 float dTheta14 = deta[2];
1157 float dTheta23 = deta[3];
1158 float dTheta24 = deta[4];
1159 float dTheta34 = deta[5];
1161 float CLCT1 = clct[0];
1162 float CLCT2 = clct[1];
1163 float CLCT3 = clct[2];
1164 float CLCT4 = clct[3];
1170 unsigned long Address = 0x0;
1172 if (doComp && mode_inv==3)
1176 if (dPhi12<0) dPhi12Sign = -1;
1184 int dPhi12_ = fabs(dPhi12);
1185 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1188 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1189 CLCT1_ =
abs(CLCT1_);
1191 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1192 CLCT2_ =
abs(CLCT2_);
1196 int Mode_ = mode_inv;
1198 Address += ( dPhi12_ & ((1<<9)-1)) << (0);
1199 Address += ( sign12_ & ((1<<1)-1)) << (0+9);
1200 Address += ( dTheta12_ & ((1<<3)-1)) << (0+9+1);
1201 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1202 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1203 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1204 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1205 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1206 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1207 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1208 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1211 if (doComp && mode_inv==5)
1219 if (dPhi13<0) dPhi13Sign = -1;
1224 int dPhi13_ = fabs(dPhi13);
1225 int sign13_ = dPhi13Sign > 0 ? 1 : 0;
1228 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1229 CLCT1_ =
abs(CLCT1_);
1231 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1232 CLCT3_ =
abs(CLCT3_);
1236 int Mode_ = mode_inv;
1238 Address += ( dPhi13_ & ((1<<9)-1)) << (0);
1239 Address += ( sign13_ & ((1<<1)-1)) << (0+9);
1240 Address += ( dTheta13_ & ((1<<3)-1)) << (0+9+1);
1241 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1242 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1243 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1244 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1245 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1246 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1247 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1248 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1251 if (doComp && mode_inv==9)
1260 if (dPhi14<0) dPhi14Sign = -1;
1265 int dPhi14_ = fabs(dPhi14);
1266 int sign14_ = dPhi14Sign > 0 ? 1 : 0;
1269 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1270 CLCT1_ =
abs(CLCT1_);
1272 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1273 CLCT4_ =
abs(CLCT4_);
1277 int Mode_ = mode_inv;
1279 Address += ( dPhi14_ & ((1<<9)-1)) << (0);
1280 Address += ( sign14_ & ((1<<1)-1)) << (0+9);
1281 Address += ( dTheta14_ & ((1<<3)-1)) << (0+9+1);
1282 Address += ( CLCT1_ & ((1<<2)-1)) << (0+9+1+3);
1283 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1284 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1285 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1286 Address += ( FR1_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1287 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1288 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1289 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1291 if (doComp && mode_inv==6)
1299 if (dPhi23<0) dPhi23Sign = -1;
1304 int dPhi23_ = fabs(dPhi23);
1305 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1308 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1309 CLCT2_ =
abs(CLCT2_);
1311 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1312 CLCT3_ =
abs(CLCT3_);
1316 int Mode_ = mode_inv;
1318 Address += ( dPhi23_ & ((1<<9)-1)) << (0);
1319 Address += ( sign23_ & ((1<<1)-1)) << (0+9);
1320 Address += ( dTheta23_ & ((1<<3)-1)) << (0+9+1);
1321 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3);
1322 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1323 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1324 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1325 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1326 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1327 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1328 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1330 if (doComp && mode_inv==10)
1338 if (dPhi24<0) dPhi24Sign = -1;
1343 int dPhi24_ = fabs(dPhi24);
1344 int sign24_ = dPhi24Sign > 0 ? 1 : 0;
1347 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1348 CLCT2_ =
abs(CLCT2_);
1350 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1351 CLCT4_ =
abs(CLCT4_);
1355 int Mode_ = mode_inv;
1357 Address += ( dPhi24_ & ((1<<9)-1)) << (0);
1358 Address += ( sign24_ & ((1<<1)-1)) << (0+9);
1359 Address += ( dTheta24_ & ((1<<3)-1)) << (0+9+1);
1360 Address += ( CLCT2_ & ((1<<2)-1)) << (0+9+1+3);
1361 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1362 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1363 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1364 Address += ( FR2_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1365 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1366 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1367 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1369 if (doComp && mode_inv==12)
1376 if (dPhi34<0) dPhi34Sign = -1;
1381 int dPhi34_ = fabs(dPhi34);
1382 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1385 int CLCT3Sign_ = CLCT3_ > 0 ? 1 : 0;
1386 CLCT3_ =
abs(CLCT3_);
1388 int CLCT4Sign_ = CLCT4_ > 0 ? 1 : 0;
1389 CLCT4_ =
abs(CLCT4_);
1393 int Mode_ = mode_inv;
1395 Address += ( dPhi34_ & ((1<<9)-1)) << (0);
1396 Address += ( sign34_ & ((1<<1)-1)) << (0+9);
1397 Address += ( dTheta34_ & ((1<<3)-1)) << (0+9+1);
1398 Address += ( CLCT3_ & ((1<<2)-1)) << (0+9+1+3);
1399 Address += ( CLCT3Sign_ & ((1<<1)-1)) << (0+9+1+3+2);
1400 Address += ( CLCT4_ & ((1<<2)-1)) << (0+9+1+3+2+1);
1401 Address += ( CLCT4Sign_ & ((1<<1)-1)) << (0+9+1+3+2+1+2);
1402 Address += ( FR3_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1);
1403 Address += ( FR4_ & ((1<<1)-1)) << (0+9+1+3+2+1+2+1+1);
1404 Address += ( eta_ & ((1<<5)-1)) << (0+9+1+3+2+1+2+1+1+1);
1405 Address += ( Mode_ & ((1<<4)-1)) << (0+9+1+3+2+1+2+1+1+1+5);
1408 if (doComp && mode_inv==7)
1416 if (dPhi12<0) dPhi12Sign = -1;
1417 if (dPhi23<0) dPhi23Sign = -1;
1424 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1425 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1428 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1429 CLCT1_ =
abs(CLCT1_);
1432 int Mode_ = mode_inv;
1434 Address += ( dPhi12_ & ((1<<7)-1)) << (0);
1435 Address += ( dPhi23_ & ((1<<5)-1)) << (0+7);
1436 Address += ( sign12_ & ((1<<1)-1)) << (0+7+5);
1437 Address += ( sign23_ & ((1<<1)-1)) << (0+7+5+1);
1438 Address += ( dTheta13_ & ((1<<3)-1)) << (0+7+5+1+1);
1439 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1440 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1441 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1442 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1443 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1446 if (doComp && mode_inv==11)
1453 if (dPhi12<0) dPhi12Sign = -1;
1454 if (dPhi24<0) dPhi24Sign = -1;
1460 int sign12_ = dPhi12Sign > 0 ? 1 : 0;
1461 int sign24_ = dPhi24Sign > 0 ? 1 : 0;
1464 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1465 CLCT1_ =
abs(CLCT1_);
1468 int Mode_ = mode_inv;
1470 Address += ( dPhi12_ & ((1<<7)-1)) << (0);
1471 Address += ( dPhi24_ & ((1<<5)-1)) << (0+7);
1472 Address += ( sign12_ & ((1<<1)-1)) << (0+7+5);
1473 Address += ( sign24_ & ((1<<1)-1)) << (0+7+5+1);
1474 Address += ( dTheta14_ & ((1<<3)-1)) << (0+7+5+1+1);
1475 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1476 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1477 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1478 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1479 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1481 if (doComp && mode_inv==13)
1488 if (dPhi13<0) dPhi13Sign = -1;
1489 if (dPhi34<0) dPhi34Sign = -1;
1495 int sign13_ = dPhi13Sign > 0 ? 1 : 0;
1496 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1499 int CLCT1Sign_ = CLCT1_ > 0 ? 1 : 0;
1500 CLCT1_ =
abs(CLCT1_);
1503 int Mode_ = mode_inv;
1505 Address += ( dPhi13_ & ((1<<7)-1)) << (0);
1506 Address += ( dPhi34_ & ((1<<5)-1)) << (0+7);
1507 Address += ( sign13_ & ((1<<1)-1)) << (0+7+5);
1508 Address += ( sign34_ & ((1<<1)-1)) << (0+7+5+1);
1509 Address += ( dTheta14_ & ((1<<3)-1)) << (0+7+5+1+1);
1510 Address += ( CLCT1_ & ((1<<2)-1)) << (0+7+5+1+1+3);
1511 Address += ( CLCT1Sign_ & ((1<<1)-1)) << (0+7+5+1+1+3+2);
1512 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+1+1+3+2+1);
1513 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+1+1+3+2+1+1);
1514 Address += ( Mode_ & ((1<<4)-1)) << (0+7+5+1+1+3+2+1+1+5);
1517 if (doComp && mode_inv==14)
1525 if (dPhi23<0) dPhi23Sign = -1;
1526 if (dPhi34<0) dPhi34Sign = -1;
1532 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1533 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1536 int CLCT2Sign_ = CLCT2_ > 0 ? 1 : 0;
1537 CLCT2_ =
abs(CLCT2_);
1539 int Mode_ = mode_inv;
1541 Address += ( dPhi23_ & ((1<<7)-1)) << (0);
1542 Address += ( dPhi34_ & ((1<<6)-1)) << (0+7);
1543 Address += ( sign23_ & ((1<<1)-1)) << (0+7+6);
1544 Address += ( sign34_ & ((1<<1)-1)) << (0+7+6+1);
1545 Address += ( dTheta24_ & ((1<<3)-1)) << (0+7+6+1+1);
1546 Address += ( CLCT2_ & ((1<<2)-1)) << (0+7+6+1+1+3);
1547 Address += ( CLCT2Sign_ & ((1<<1)-1)) << (0+7+6+1+1+3+2);
1548 Address += ( eta_ & ((1<<5)-1)) << (0+7+6+1+1+3+2+1);
1549 Address += ( Mode_ & ((1<<4)-1)) << (0+7+6+1+1+3+2+1+5);
1552 if (doComp && mode_inv==15)
1558 if (dPhi12<0) dPhi12Sign = -1;
1559 if (dPhi23<0) dPhi23Sign = -1;
1560 if (dPhi34<0) dPhi34Sign = -1;
1562 dPhi23Sign *= dPhi12Sign;
1563 dPhi34Sign *= dPhi12Sign;
1570 int sign23_ = dPhi23Sign > 0 ? 1 : 0;
1571 int sign34_ = dPhi34Sign > 0 ? 1 : 0;
1574 int Mode_ = mode_inv;
1576 Address += ( dPhi12_ & ((1<<7)-1)) << 0;
1577 Address += ( dPhi23_ & ((1<<5)-1)) << (0+7);
1578 Address += ( dPhi34_ & ((1<<6)-1)) << (0+7+5);
1579 Address += ( sign23_ & ((1<<1)-1)) << (0+7+5+6);
1580 Address += ( sign34_ & ((1<<1)-1)) << (0+7+5+6+1);
1581 Address += ( FR1_ & ((1<<1)-1)) << (0+7+5+6+1+1);
1582 Address += ( eta_ & ((1<<5)-1)) << (0+7+5+6+1+1+1);
1583 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)
void predictEvent(Event *e, unsigned int trees)
static const int dPhiNLBMap_5bit[32]
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.