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) ) {
 
  337    cout << endl << 
"going to print details of the extra threshold information" << endl;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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;
 
  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 << 
" ";
 
  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;
 
  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 << 
" ";