329{
330 section(
"Extra information for threholds");
331 cout << "These threshold types have extra information" << endl << " ";
332 for(
const string & tt :
l1menu.thresholdTypes()) {
333 if(
l1menu.thrExtraInfo().hasInfo(tt) ) {
335 }
336 }
337 cout << endl << "going to print details of the extra threshold information" << endl;
338 {
339 auto & exEM =
l1menu.thrExtraInfo().EM();
340 cout << " EM" << endl;
341 cout << " energy resolution (MeV) " << exEM.resolutionMeV() << endl;
342 cout << " ptMinToTopo " << exEM.ptMinToTopo() << endl;
343 for( const std::string tt : {"HAIsoForEMthr", "EMIsoForEMthr"} ) {
344 cout <<
" Isolation " <<
tt << endl;
345 for(size_t bit = 1; bit <= 5; bit++) {
346 auto & iso = exEM.isolation(tt, bit);
347 cout << " " << iso << endl;
348 }
349 }
350 }
351 {
352 auto & ex =
l1menu.thrExtraInfo().JET();
353 cout << " JET" << endl;
354 cout << " jetScale " << ex.jetScale() << endl;
355 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
356 cout << " ptMinToTopoSmallWindow " << ex.ptMinToTopoSmallWindow() << endl;
357 cout << " ptMinToTopoLargeWindow " << ex.ptMinToTopoLargeWindow() << endl;
358 cout << " ptMinToTopoSmallWindow (MeV) " << ex.ptMinToTopoSmallWindowMeV() << endl;
359 cout << " ptMinToTopoLargeWindow (MeV) " << ex.ptMinToTopoLargeWindowMeV() << endl;
360 cout << " ptMinToTopoSmallWindow (counts) " << ex.ptMinToTopoSmallWindowCounts() << endl;
361 cout << " ptMinToTopoLargeWindow (counts) " << ex.ptMinToTopoLargeWindowCounts() << endl;
362 }
363 {
364 auto & ex =
l1menu.thrExtraInfo().TAU();
365 cout << " TAU" << endl;
366 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
367 cout << " ptMinToTopo " << ex.ptMinToTopo() << endl;
368 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV() << endl;
369 cout << " ptMinToTopo (counts)" << ex.ptMinToTopoCounts() << endl;
370 cout << " Isolation EMIsoForTAUthr" << endl;
371 for(size_t bit = 1; bit <= 5; bit++) {
372 cout << " " << ex.isolation("EMIsoForTAUthr", bit) << endl;
373 }
374 }
375 {
376 auto & ex =
l1menu.thrExtraInfo().eEM();
377 cout << " eEM" << endl;
378 cout << " iso maxEt (GeV) " << ex.maxEt() << endl;
379 cout << " iso maxEt (MeV) " << ex.maxEtMeV() << endl;
380 cout << " iso maxEt (Counts) " << ex.maxEtCounts(ex.resolutionMeV()) << endl;
381 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
382 cout << " ptMinToTopo " << ex.ptMinToTopo() << endl;
383 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV() << endl;
384 cout << " ptMinToTopo (counts)" << ex.ptMinToTopoCounts() << endl;
385 cout << " working point Loose" << endl;
387 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
388 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
389 << ", isolation=" << iso.value() << endl;
390 }
391 cout << " working point Medium" << endl;
393 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
394 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
395 << ", isolation=" << iso.value() << endl;
396 }
397 cout << " working point Tight" << endl;
399 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
400 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
401 << ", isolation=" << iso.value() << endl;
402 }
403
405
406 for( int ieta : { -30, -20, -10, 0, 10, 20, 30 } ) {
408 int reta_loose_fw = iso_loose.reta_fw();
409 int rhad_loose_fw = iso_loose.rhad_fw();
410 int wstot_loose_fw = iso_loose.wstot_fw();
411 int reta_loose_d = iso_loose.reta_d();
412 int rhad_loose_d = iso_loose.rhad_d();
413 int wstot_loose_d = iso_loose.wstot_d();
414 cout << "ieta=" << ieta << " loose => reta_fw=" << reta_loose_fw << ", rhad_fw=" << rhad_loose_fw << ", wstot_fw=" << wstot_loose_fw << endl;
415 cout << "ieta=" << ieta << " loose => reta_d=" << reta_loose_d << ", rhad_d=" << rhad_loose_d << ", wstot_d=" << wstot_loose_d << endl;
416 }
417
418 }
419 {
420 auto & ex =
l1menu.thrExtraInfo().jEM();
421 cout << " jEM" << endl;
422 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
423 cout << " ptMinToTopo " << ex.ptMinToTopo("1A") << endl;
424 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV("1A") << endl;
425 cout << " ptMinToTopo (counts)" << ex.ptMinToTopoCounts("1A") << endl;
426 cout << " ptMinxTOB " << ex.ptMinxTOB("1A") << endl;
427 cout << " ptMinxTOB (MeV) " << ex.ptMinxTOBMeV("1A") << endl;
428 cout << " ptMinxTOB (counts) " << ex.ptMinxTOBCounts("1A") << endl;
429 cout << " working point Loose" << endl;
431 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
432 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
433 << ", isolation=" << iso.value() << endl;
434 }
435 cout << " working point Medium" << endl;
437 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
438 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
439 << ", isolation=" << iso.value() << endl;
440 }
441 cout << " working point Tight" << endl;
443 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
444 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
445 << ", isolation=" << iso.value() << endl;
446 }
447
449 }
450 {
451 auto & ex =
l1menu.thrExtraInfo().jJ();
452 cout << " jJ" << endl;
453 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
454 cout << " ptMinToTopo " << ex.ptMinToTopo("1A") << endl;
455 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV("1A") << endl;
456 cout << " ptMinToTopo (counts) " << ex.ptMinToTopoCounts("1A") << endl;
457 cout << " ptMinxTOB " << ex.ptMinxTOB("1A") << endl;
458 cout << " ptMinxTOB (MeV) " << ex.ptMinxTOBMeV("1A") << endl;
459 cout << " ptMinxTOB (counts) " << ex.ptMinxTOBCounts("1A") << endl;
460 }
461 {
462 auto & ex =
l1menu.thrExtraInfo().jLJ();
463 cout << " jLJ" << endl;
464 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
465 cout << " ptMinToTopo " << ex.ptMinToTopo("1A") << endl;
466 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV("1A") << endl;
467 cout << " ptMinToTopo (counts) " << ex.ptMinToTopoCounts("1A") << endl;
468 cout << " ptMinxTOB " << ex.ptMinxTOB("1A") << endl;
469 cout << " ptMinxTOB (MeV) " << ex.ptMinxTOBMeV("1A") << endl;
470 cout << " ptMinxTOB (counts) " << ex.ptMinxTOBCounts("1A") << endl;
471 }
472 {
473 auto & ex =
l1menu.thrExtraInfo().gLJ();
474 cout << " gLJ" << endl;
475 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
476 cout << " ptMinToTopo (eta range "<<std::to_string(1)<<") in GeV " << ex.ptMinToTopo(1) << endl;
477 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV(1) << endl;
478 cout << " ptMinToTopo (counts) " << ex.ptMinToTopoCounts(1) << endl;
479 cout << " seedThr(A) " << ex.seedThr('A') << endl;
480 cout << " seedThr(A) (MeV) " << ex.seedThrMeV('A') << endl;
481 cout << " rhoTowerMin(B) " << ex.rhoTowerMin('B') << endl;
482 cout << " rhoTowerMin(B) (MeV) " << ex.rhoTowerMinMeV('B') << endl;
483 cout << " rhoTowerMax(C) " << ex.rhoTowerMax('C') << endl;
484 cout << " rhoTowerMax(C) (MeV) " << ex.rhoTowerMaxMeV('C') << endl;
485 }
486 {
487 auto & ex =
l1menu.thrExtraInfo().gXE();
488 cout << " gXE" << endl;
489 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
490 cout << " seedThr(A) " << ex.seedThr('A') << endl;
491 cout << " seedThr(A) (MeV) " << ex.seedThrMeV('A') << endl;
492 cout << " XERHO_sigmaPosA " << ex.XERHO_param('A',true) << endl;
493 cout << " XERHO_sigmaNegB " << ex.XERHO_param('B',false) << endl;
494 cout << " XEJWOJ_a_C " << ex.JWOJ_param('C','a') << endl;
495 cout << " XEJWOJ_b_B " << ex.JWOJ_param('B','b') << endl;
496 cout << " XEJWOJ_c_A " << ex.JWOJ_param('A','c') << endl;
497 }
498 {
499 auto & ex =
l1menu.thrExtraInfo().eTAU();
500 cout << " eTAU" << endl;
501 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
502 cout << " ptMinToTopo " << ex.ptMinToTopo() << endl;
503 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV() << endl;
504 cout << " ptMinToTopo (counts)" << ex.ptMinToTopoCounts() << endl;
505 cout << " working point Loose" << endl;
507 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
508 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
509 << ", isolation=" << iso.value() << endl;
510 }
511 cout << " working point Medium" << endl;
513 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
514 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
515 << ", isolation=" << iso.value() << endl;
516 }
517 cout << " working point Tight" << endl;
519 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
520 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
521 << ", isolation=" << iso.value() << endl;
522 }
523 }
524 {
525 auto & ex =
l1menu.thrExtraInfo().jTAU();
526 cout << " jTAU" << endl;
527 cout << " energy resolution (MeV) " << ex.resolutionMeV() << endl;
528 cout << " ptMinToTopo " << ex.ptMinToTopo("1A") << endl;
529 cout << " ptMinToTopo (MeV) " << ex.ptMinToTopoMeV("1A") << endl;
530 cout << " ptMinToTopo (counts)" << ex.ptMinToTopoCounts("1A") << endl;
531 cout << " ptMinxTOB " << ex.ptMinxTOB("1A") << endl;
532 cout << " ptMinxTOB (MeV) " << ex.ptMinxTOBMeV("1A") << endl;
533 cout << " ptMinxTOB (counts) " << ex.ptMinxTOBCounts("1A") << endl;
534 cout << " working point Loose" << endl;
536 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
537 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
538 << ", isolation=" << iso.value() << endl;
539 }
540 cout << " working point Medium" << endl;
542 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
543 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
544 << ", isolation=" << iso.value() << endl;
545 }
546 cout << " working point Tight" << endl;
548 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
549 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
550 << ", isolation=" << iso.value() << endl;
551 }
552 }
553 {
554 auto & ex =
l1menu.thrExtraInfo().cTAU();
555 cout << " cTAU" << endl;
556 cout << " working point Loose" << endl;
558 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
559 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
560 << ", isolation=" << iso.value() << endl;
561 }
562 cout << " working point Medium" << endl;
564 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
565 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
566 << ", isolation=" << iso.value() << endl;
567 }
568 cout << " working point Tight" << endl;
570 cout << " range etaMin=" << iso.etaMin() << ", etaMax=" << iso.etaMax()
571 << ", priority=" << iso.priority() << ", symmetric=" << (iso.symmetric() ? "yes" : "no")
572 << ", isolation=" << iso.value() << endl;
573 }
574 }
575
576 auto & exMU =
l1menu.thrExtraInfo().MU();
577 cout << " MU" << endl;
578 cout << " known pt values for rpc ";
579 for(
auto pt : exMU.knownRpcPtValues()) cout <<
pt <<
" ";
580 cout << endl << " known pt values for tgc ";
581 for(
auto pt : exMU.knownTgcPtValues()) cout <<
pt <<
" ";
582 cout << endl;
583 cout << " RPC pt value for index 2: "<< exMU.ptForRpcIdx(2) << endl;
584 cout << " TGC pt value for index 2: "<< exMU.ptForTgcIdx(2) << endl;
585 cout << " TGC index for RPC index 2: "<< exMU.tgcIdxForRpcIdx(2) << endl;
586 if( const auto & list = exMU.exclusionListNames(); std::find(list.begin(), list.end(), "rpcFeet")!=list.end() ) {
587 cout << " exclusionList 'rpcFeet'" << endl;
588 for(
auto &
x : exMU.exclusionList(
"rpcFeet")) {
589 cout <<
" sector " <<
x.first <<
": ";
590 for(
auto roi :
x.second ) cout << roi <<
" ";
591 cout << endl;
592 }
593 }
594 return true;
595}