51 std::pair<L1GtObject, L1GtObject> gtObjPair;
59 gtObjPair = std::make_pair(
Mu,
CenJet);
65 gtObjPair = std::make_pair(
CenJet,
Mu);
72 gtObjPair = std::make_pair(
Mu,
ForJet);
78 gtObjPair = std::make_pair(
ForJet,
Mu);
85 gtObjPair = std::make_pair(
Mu,
TauJet);
91 gtObjPair = std::make_pair(
TauJet,
Mu);
111 gtObjPair = std::make_pair(
Mu,
IsoEG);
117 gtObjPair = std::make_pair(
IsoEG,
Mu);
124 gtObjPair = std::make_pair(
Mu,
ETM);
130 gtObjPair = std::make_pair(
ETM,
Mu);
137 gtObjPair = std::make_pair(
Mu,
HTM);
143 gtObjPair = std::make_pair(
HTM,
Mu);
203 gtObjPair = std::make_pair(
ETM,
IsoEG);
209 gtObjPair = std::make_pair(
IsoEG,
ETM);
269 gtObjPair = std::make_pair(
HTM,
IsoEG);
275 gtObjPair = std::make_pair(
IsoEG,
HTM);
283 gtObjPair = std::make_pair(
ETM,
HTM);
289 gtObjPair = std::make_pair(
HTM,
ETM);
431 unsigned int iPair = 0;
453 std::pair<L1GtObject, L1GtObject> gtObjPair;
454 gtObjPair = std::make_pair(obj0, obj1);
460 unsigned int iPair = 0;
464 if (*cIter == gtObjPair) {
482 const unsigned int positionPair,
483 const unsigned int initialIndex,
484 unsigned int &convertedIndex)
const {
486 bool conversionStatus =
false;
493 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " << pairIndex
494 <<
": initial phi index " << initialIndex
495 <<
" >= " << ((*(
m_pairPhiConvVec.at(pairIndex))).size()) <<
" Conversion failed." 500 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " << pairIndex
501 <<
": initial phi index " << initialIndex <<
" within scale size " 507 switch (positionPair) {
513 conversionStatus =
true;
516 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 517 << pairIndex <<
": initial phi index " << initialIndex <<
" converted to " 518 << newIndex << std::endl;
522 conversionStatus =
false;
525 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 526 << pairIndex <<
": converted phi index " << newIndex <<
"is equal to badIndex " 527 <<
badIndex <<
" Conversion failed." << std::endl;
532 newIndex = initialIndex;
533 conversionStatus =
true;
536 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 537 << pairIndex <<
": initial phi index " << initialIndex
538 <<
" not requested to be converted, return index " << newIndex << std::endl;
546 newIndex = initialIndex;
547 conversionStatus =
true;
550 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 551 << pairIndex <<
": initial phi index " << initialIndex
552 <<
" not requested to be converted, return index, return index " << newIndex
559 conversionStatus =
true;
562 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 563 << pairIndex <<
": initial phi index " << initialIndex <<
" converted to " 564 << newIndex << std::endl;
568 conversionStatus =
false;
571 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 572 << pairIndex <<
": converted phi index " << newIndex <<
"is equal to badIndex " 573 <<
badIndex <<
" Conversion failed." << std::endl;
583 throw cms::Exception(
"FailModule") <<
"\n Wrong position in the object pair " << positionPair
584 <<
"\n Programming error - position must be either 0 or 1..." << std::endl;
590 convertedIndex = newIndex;
591 return conversionStatus;
595 const unsigned int initialIndex,
596 unsigned int &convertedIndex)
const {
598 bool conversionStatus =
false;
606 conversionStatus =
false;
610 <<
" has initial eta index " << initialIndex
619 conversionStatus =
true;
623 <<
" initial eta index " << initialIndex <<
" (within scale size " 629 conversionStatus =
false;
633 <<
" initial eta index " << initialIndex <<
" (within scale size " 635 <<
" Conversion failed." << std::endl;
650 conversionStatus =
false;
654 <<
" has initial eta index " << initialIndex
656 <<
" scale size. Conversion failed." << std::endl;
663 conversionStatus =
true;
667 <<
" initial eta index " << initialIndex <<
" (within scale size " 673 conversionStatus =
false;
677 <<
" initial eta index " << initialIndex <<
" (within scale size " 679 <<
" Conversion failed." << std::endl;
691 conversionStatus =
false;
695 <<
" has initial eta index " << initialIndex
697 <<
" scale size. Conversion failed." << std::endl;
704 conversionStatus =
true;
708 <<
" initial eta index " << initialIndex <<
" (within scale size " 714 conversionStatus =
false;
718 <<
" initial eta index " << initialIndex <<
" (within scale size " 720 <<
" Conversion failed." << std::endl;
739 conversionStatus =
false;
744 <<
"' is not a recognized L1GtObject. " 745 <<
"\n Conversion failed. " << std::endl;
746 conversionStatus =
false;
751 convertedIndex = newIndex;
753 return conversionStatus;
796 <<
"' is not a recognized L1GtObject. " 797 <<
"\n Return 0 bins.";
804 std::pair<L1GtObject, L1GtObject> gtObjPair;
805 gtObjPair = std::make_pair(obj0, obj1);
815 if (*cIter == gtObjPair) {
831 LogTrace(
"L1GlobalTrigger") <<
"\n gtObjectNrBinsPhi for L1 GT object pair index " << pairIndex <<
" = " 841 const int ifCaloEtaNumberBits,
842 const int ifMuEtaNumberBits) {
873 for (
unsigned int phiMuInd = 0; phiMuInd <
m_nrBinsPhiMu; ++phiMuInd) {
878 double phiMuLowEdgeSmallShiftRight = phiMuLowEdge + (phiMuHighEdge - phiMuLowEdge) / 100.;
884 for (
unsigned int iBin = nrBins;; --iBin) {
888 if (phiMuLowEdgeSmallShiftRight >= phiLowEdge) {
891 LogTrace(
"L1GlobalTrigger") <<
" phiMuIndex \t" << phiMuInd <<
" [ " << phiMuLowEdge <<
" \t, " << phiMuHighEdge
892 <<
"] \t==>\t phiMuJetEG \t" <<
m_lutPhiMuToJetEg[phiMuInd] <<
" [ " << phiLowEdge
893 <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
903 for (
unsigned int iBin = nrBins;; --iBin) {
907 if (phiMuLowEdgeSmallShiftRight >= phiLowEdge) {
910 LogTrace(
"L1GlobalTrigger") <<
" phiMuIndex \t" << phiMuInd <<
" [ " << phiMuLowEdge <<
" \t, " << phiMuHighEdge
911 <<
"] \t==>\t phiMuToEtm \t" <<
m_lutPhiMuToEtm[phiMuInd] <<
" [ " << phiLowEdge
912 <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
922 for (
unsigned int iBin = nrBins;; --iBin) {
926 if (phiMuLowEdgeSmallShiftRight >= phiLowEdge) {
929 LogTrace(
"L1GlobalTrigger") <<
" phiMuIndex \t" << phiMuInd <<
" [ " << phiMuLowEdge <<
" \t, " << phiMuHighEdge
930 <<
"] \t==>\t phiMuToHtm \t" <<
m_lutPhiMuToHtm[phiMuInd] <<
" [ " << phiLowEdge
931 <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
937 LogTrace(
"L1GlobalTrigger") << std::endl;
941 LogTrace(
"L1GlobalTrigger") <<
"Mu phi conversions" << std::endl;
943 LogTrace(
"L1GlobalTrigger") <<
" Mu phiIndex \t" << iBin <<
"\t converted to index:" 947 LogTrace(
"L1GlobalTrigger") << std::endl;
960 for (
unsigned int phiEtmInd = 0; phiEtmInd <
m_nrBinsPhiEtm; ++phiEtmInd) {
965 double phiEtmLowEdgeSmallShiftRight = phiEtmLowEdge + (phiEtmHighEdge - phiEtmLowEdge) / 100.;
971 for (
unsigned int iBin = nrBins;; --iBin) {
975 if (phiEtmLowEdgeSmallShiftRight >= phiLowEdge) {
978 LogTrace(
"L1GlobalTrigger") <<
" phiEtmIndex \t" << phiEtmInd <<
" [ " << phiEtmLowEdge <<
" \t, " 980 <<
" [ " << phiLowEdge <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
990 for (
unsigned int iBin = nrBins;; --iBin) {
994 if (phiEtmLowEdgeSmallShiftRight >= phiLowEdge) {
997 LogTrace(
"L1GlobalTrigger") <<
" phiEtmIndex \t" << phiEtmInd <<
" [ " << phiEtmLowEdge <<
" \t, " 998 << phiEtmHighEdge <<
"] \t==>\t phiEtmToHtm \t" <<
m_lutPhiEtmToHtm[phiEtmInd]
999 <<
" [ " << phiLowEdge <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
1005 LogTrace(
"L1GlobalTrigger") << std::endl;
1015 for (
unsigned int phiHtmInd = 0; phiHtmInd <
m_nrBinsPhiHtm; ++phiHtmInd) {
1020 double phiHtmLowEdgeSmallShiftRight = phiHtmLowEdge + (phiHtmHighEdge - phiHtmLowEdge) / 100.;
1024 for (
unsigned int iBin = nrBins;; --iBin) {
1028 if (phiHtmLowEdgeSmallShiftRight >= phiLowEdge) {
1031 LogTrace(
"L1GlobalTrigger") <<
" phiHtmIndex \t" << phiHtmInd <<
" [ " << phiHtmLowEdge <<
" \t, " 1033 <<
" [ " << phiLowEdge <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
1069 unsigned int nrGctTotalEtaBinsPerHalf = nrGctCentralEtaBinsPerHalf + nrGctForwardEtaBinsPerHalf;
1079 LogTrace(
"L1GlobalTrigger") <<
" \nEta conversion: CenJet/TauJet & " 1080 "IsoEG/NoIsoEG to a common calorimeter scale\n" 1086 for (
unsigned int etaInd = 0; etaInd < nrGctCentralEtaBinsPerHalf; ++etaInd) {
1091 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaInd <<
"\t [hex: " << std::hex << etaInd <<
"] " <<
std::dec 1092 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1095 unsigned int etaIndNeg = etaInd | (1 << (ifCaloEtaNumberBits - 1));
1099 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaIndNeg <<
"\t [hex: " << std::hex << etaIndNeg <<
"] " <<
std::dec 1100 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1108 LogTrace(
"L1GlobalTrigger") <<
" \nEta conversion: ForJet to a common calorimeter scale\n" << std::endl;
1113 for (
unsigned int etaInd = 0; etaInd < nrGctForwardEtaBinsPerHalf; ++etaInd) {
1118 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaInd <<
"\t [hex: " << std::hex << etaInd <<
"] " <<
std::dec 1119 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1122 unsigned int etaIndNeg = etaInd | (1 << (ifCaloEtaNumberBits - 1));
1126 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaIndNeg <<
"\t [hex: " << std::hex << etaIndNeg <<
"] " <<
std::dec 1127 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1135 LogDebug(
"L1GlobalTrigger") <<
" \nEta conversion: Mu to a common calorimeter scale\n" << std::endl;
1139 LogTrace(
"L1GlobalTrigger") <<
" \nnrBinsEtaMuPerHalf = " << nrBinsEtaMuPerHalf <<
"\n" << std::endl;
1144 for (
unsigned int etaMuInd = 0; etaMuInd < nrBinsEtaMuPerHalf; ++etaMuInd) {
1149 double etaMuLowEdgeSmallShiftRight = etaMuLowEdge + (etaMuHighEdge - etaMuLowEdge) / 100.;
1155 double etaHighEdge = 0.0;
1157 etaHighEdge = etaLowEdge;
1162 if (etaMuLowEdgeSmallShiftRight >= etaLowEdge) {
1165 LogTrace(
"L1GlobalTrigger") <<
" etaMuIndex \t" << etaMuInd <<
"\t [ " << etaMuLowEdge <<
", \t" 1167 <<
"\t [ " << etaLowEdge <<
", \t" << etaHighEdge <<
" ]" << std::endl;
1174 unsigned int etaMuIndNeg = etaMuInd | (1 << (ifMuEtaNumberBits - 1));
1178 LogTrace(
"L1GlobalTrigger") <<
" etaMuIndexNeg \t" << etaMuIndNeg <<
"\t [ " << (-1.0 * etaMuLowEdge) <<
", \t" 1179 << (-1.0 * etaMuHighEdge) <<
"] ==> etaMuJetEG \t" 1183 <<
" ]" << std::endl;
1187 LogTrace(
"L1GlobalTrigger") << std::endl;
1188 LogTrace(
"L1GlobalTrigger") << std::endl;
1195 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1197 myCout <<
"\n---++Conversion tables for phi and eta variables of the trigger " 1198 "objects used in correlation conditions \n" 1207 myCout <<
"\n---+++Phi conversion for muons to jets and e-gamma common phi " 1212 myCout <<
"Size of look-up table = " << lutPhiMuToJetEgSize <<
"\n" << std::endl;
1214 myCout <<
"| *Initial Phi Hardware Index* " 1215 <<
"|| *Initial Phi Range* ||" 1216 <<
" *Converted Phi Hardware Index* " 1217 <<
"|| *Converted Phi Range* ||" 1219 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1221 for (
unsigned int indexToConv = 0; indexToConv < lutPhiMuToJetEgSize; ++indexToConv) {
1227 double convLowEdge = 0.;
1228 double convHighEdge = 0.;
1236 highEdgeToConv = 0.;
1239 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1240 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1241 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1242 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1243 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1244 <<
" ) |" << std::right << std::endl;
1250 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1252 myCout <<
"\n---+++Phi conversion for muons to ETM phi scale \n" << std::endl;
1255 myCout <<
"Size of look-up table = " << lutPhiMuToEtmSize <<
"\n" << std::endl;
1257 myCout <<
"| *Initial Phi Hardware Index* " 1258 <<
"|| *Initial Phi Range* ||" 1259 <<
" *Converted Phi Hardware Index* " 1260 <<
"|| *Converted Phi Range* ||" 1262 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1264 for (
unsigned int indexToConv = 0; indexToConv < lutPhiMuToEtmSize; ++indexToConv) {
1270 double convLowEdge = 0.;
1271 double convHighEdge = 0.;
1279 highEdgeToConv = 0.;
1282 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1283 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1284 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1285 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1286 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1287 <<
" ) |" << std::right << std::endl;
1293 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1295 myCout <<
"\n---+++Phi conversion for muons to HTM phi scale \n" << std::endl;
1298 myCout <<
"Size of look-up table = " << lutPhiMuToHtmSize <<
"\n" << std::endl;
1300 myCout <<
"| *Initial Phi Hardware Index* " 1301 <<
"|| *Initial Phi Range* ||" 1302 <<
" *Converted Phi Hardware Index* " 1303 <<
"|| *Converted Phi Range* ||" 1305 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1307 for (
unsigned int indexToConv = 0; indexToConv < lutPhiMuToHtmSize; ++indexToConv) {
1313 double convLowEdge = 0.;
1314 double convHighEdge = 0.;
1322 highEdgeToConv = 0.;
1325 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1326 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1327 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1328 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1329 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1330 <<
" ) |" << std::right << std::endl;
1336 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1338 myCout <<
"\n---+++Phi conversion for ETM to jets and e-gamma scale common " 1343 myCout <<
"Size of look-up table = " << lutPhiEtmToJetEgSize <<
"\n" << std::endl;
1345 myCout <<
"| *Initial Phi Hardware Index* " 1346 <<
"|| *Initial Phi Range* ||" 1347 <<
" *Converted Phi Hardware Index* " 1348 <<
"|| *Converted Phi Range* ||" 1350 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1352 for (
unsigned int indexToConv = 0; indexToConv < lutPhiEtmToJetEgSize; ++indexToConv) {
1358 double convLowEdge = 0.;
1359 double convHighEdge = 0.;
1367 highEdgeToConv = 0.;
1370 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1371 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1372 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1373 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1374 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1375 <<
" ) |" << std::right << std::endl;
1381 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1383 myCout <<
"\n---+++Phi conversion for ETM to HTM phi scale \n" << std::endl;
1386 myCout <<
"Size of look-up table = " << lutPhiEtmToHtmSize <<
"\n" << std::endl;
1388 myCout <<
"| *Initial Phi Hardware Index* " 1389 <<
"|| *Initial Phi Range* ||" 1390 <<
" *Converted Phi Hardware Index* " 1391 <<
"|| *Converted Phi Range* ||" 1393 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1395 for (
unsigned int indexToConv = 0; indexToConv < lutPhiEtmToHtmSize; ++indexToConv) {
1401 double convLowEdge = 0.;
1402 double convHighEdge = 0.;
1410 highEdgeToConv = 0.;
1413 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1414 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1415 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1416 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1417 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1418 <<
" ) |" << std::right << std::endl;
1424 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1426 myCout <<
"\n---+++Phi conversion for HTM to jets and e-gamma scale common " 1431 myCout <<
"Size of look-up table = " << lutPhiHtmToJetEgSize <<
"\n" << std::endl;
1433 myCout <<
"| *Initial Phi Hardware Index* " 1434 <<
"|| *Initial Phi Range* ||" 1435 <<
" *Converted Phi Hardware Index* " 1436 <<
"|| *Converted Phi Range* ||" 1438 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1440 for (
unsigned int indexToConv = 0; indexToConv < lutPhiHtmToJetEgSize; ++indexToConv) {
1446 double convLowEdge = 0.;
1447 double convHighEdge = 0.;
1455 highEdgeToConv = 0.;
1458 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1459 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1460 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1461 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1462 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1463 <<
" ) |" << std::right << std::endl;
1474 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1476 myCout <<
"\n---+++Eta conversion for central and tau jets and e-gamma " 1477 "objects to a common central and forward calorimeter eta scale \n" 1481 myCout <<
"Size of look-up table = " << lutEtaCentralToCommonCaloSize <<
"\n" << std::endl;
1483 myCout <<
"| *Initial Eta Hardware Index* " 1484 <<
"|| *Initial Eta Range* ||" 1485 <<
" *Converted Eta Hardware Index* " 1486 <<
"|| *Converted Eta Range* ||" 1488 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1490 for (
unsigned int indexToConv = 0; indexToConv < lutEtaCentralToCommonCaloSize; ++indexToConv) {
1498 double convLowEdge = 0.;
1499 double convHighEdge = 0.;
1507 highEdgeToConv = 0.;
1510 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1511 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << lowEdgeToConv <<
", |" 1512 << std::setw(10) << std::left << highEdgeToConv <<
" ) | 0x" << std::setw(6) << std::hex << std::left
1513 << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10) << std::left
1514 << convLowEdge <<
", |" << std::setw(10) << std::left << convHighEdge <<
" ) |" << std::right << std::endl;
1520 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1522 myCout <<
"\n---+++Eta conversion for forward jets to a common central and " 1523 "forward calorimeter eta scale \n" 1527 myCout <<
"Size of look-up table = " << lutEtaForJetToCommonCaloSize <<
"\n" << std::endl;
1529 myCout <<
"| *Initial Eta Hardware Index* " 1530 <<
"|| *Initial Eta Range* ||" 1531 <<
" *Converted Eta Hardware Index* " 1532 <<
"|| *Converted Eta Range* ||" 1534 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1536 for (
unsigned int indexToConv = 0; indexToConv < lutEtaForJetToCommonCaloSize; ++indexToConv) {
1544 double convLowEdge = 0.;
1545 double convHighEdge = 0.;
1553 highEdgeToConv = 0.;
1556 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1557 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << lowEdgeToConv <<
", |" 1558 << std::setw(10) << std::left << highEdgeToConv <<
" ) | 0x" << std::setw(6) << std::hex << std::left
1559 << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10) << std::left
1560 << convLowEdge <<
", |" << std::setw(10) << std::left << convHighEdge <<
" ) |" << std::right << std::endl;
1566 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1568 myCout <<
"\n---+++Eta conversion for muons to a common central and forward " 1569 "calorimeter eta scale \n" 1573 myCout <<
"Size of look-up table = " << lutEtaMuToCommonCaloSize <<
"\n" << std::endl;
1577 myCout <<
"| *Initial Eta Hardware Index* " 1578 <<
"|| *Initial Eta Range* ||" 1579 <<
" *Converted Eta Hardware Index* " 1580 <<
"|| *Converted Eta Range* ||" 1582 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1584 for (
unsigned int indexToConv = 0; indexToConv < lutEtaMuToCommonCaloSize; ++indexToConv) {
1586 unsigned int iBinOffset = 0;
1587 double etaSign = 1.;
1589 if (indexToConv > nrBinsEtaMuPerHalf) {
1590 iBinOffset = nrBinsEtaMuPerHalf + 1;
1599 double convLowEdge = 0.;
1600 double convHighEdge = 0.;
1608 highEdgeToConv = 0.;
1611 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1612 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << lowEdgeToConv <<
", |" 1613 << std::setw(10) << std::left << highEdgeToConv <<
" ) | 0x" << std::setw(6) << std::hex << std::left
1614 << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10) << std::left
1615 << convLowEdge <<
", |" << std::setw(10) << std::left << convHighEdge <<
" ) |" << std::right << std::endl;
const L1CaloGeometry * m_l1CaloGeometry
pointer to calorimetry scales - updated in convertl1Scales method
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
unsigned int m_nrBinsEtaCommon
number of eta bins for common scale
unsigned int m_nrBinsPhiMu
number of phi bins for muons
double emJetPhiBinHighEdge(unsigned int phiIndex) const
std::vector< unsigned int > m_lutEtaCentralToCommonCalo
std::vector< bool > m_pairConvertPhiFirstGtObject
L1GtEtaPhiConversions()
constructor
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
unsigned int m_nrBinsPhiEtm
number of phi bins for ETM
std::vector< const std::vector< unsigned int > * > m_pairPhiConvVec
const L1MuScale * getPhiScale() const
get the phi scale
std::vector< unsigned int > m_lutPhiMuToHtm
phi conversion for Mu to HTM
const double rad2deg(const double &) const
convert phi from rad (-pi, pi] to deg (0, 360)
std::string l1GtObjectEnumToString(const L1GtObject &)
virtual ~L1GtEtaPhiConversions()
destructor
const bool convertPhiIndex(const unsigned int pairIndex, const unsigned int positionPair, const unsigned int initialIndex, unsigned int &convertedIndex) const
const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const
return the number of phi bins for a GT object
const bool convertEtaIndex(const L1GtObject &, const unsigned int initialIndex, unsigned int &convertedIndex) const
unsigned int numberGctEtSumPhiBins() const
std::vector< unsigned int > m_lutEtaForJetToCommonCalo
void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *, const int, const int)
perform all scale conversions
virtual float getHighEdge(unsigned packed) const =0
get the upper edge of bin represented by packed
virtual void print(std::ostream &myCout) const
print all the performed conversions
std::vector< unsigned int > m_lutPhiMuToEtm
phi conversion for Mu to ETM
virtual float getValue(unsigned i) const =0
get value of the underlying vector for bin i
unsigned int numberGctEmJetPhiBins() const
double etSumPhiBinLowEdge(unsigned int phiIndex) const
static const unsigned int badIndex
int m_verbosity
verbosity level
unsigned int globalEtaIndex(const double &etaValue) const
std::vector< std::pair< L1GtObject, L1GtObject > > m_gtObjectPairVec
vector of all L1GtObject pairs
std::vector< const unsigned int * > m_pairNrPhiBinsVec
double globalEtaBinLowEdge(unsigned int globalEtaIndex) const
unsigned int m_nrBinsPhiJetEg
number of phi bins for calorimeter objects (*Jet, *EG)
Log< level::Info, false > LogInfo
static const double PiConversion
std::vector< unsigned int > m_lutPhiMuToJetEg
phi conversion for Mu to (*Jet, EG)
unsigned int m_nrBinsPhiHtm
number of phi bins for HTM
unsigned int numberGctForwardEtaBinsPerHalf() const
bool m_isDebugEnabled
cached edm::isDebugEnabled()
const L1MuTriggerScales * m_l1MuTriggerScales
pointer to muon scales - updated in convertl1Scales method
virtual unsigned getNBins() const =0
get number of bins
double htSumPhiBinLowEdge(unsigned int phiIndex) const
const unsigned int gtObjectPairIndex(const L1GtObject &, const L1GtObject &) const
std::vector< unsigned int > m_lutPhiEtmToHtm
phi conversion for ETM to HTM
unsigned int numberGctHtSumPhiBins() const
double etaBinCenter(unsigned int etaIndex, bool central=true) const
std::vector< unsigned int > m_lutPhiJetEgToJetEg
unsigned int numberGctCentralEtaBinsPerHalf() const
std::vector< unsigned int > m_lutPhiHtmToJetEg
phi conversion for HTM to (*Jet, EG)
std::vector< unsigned int > m_lutEtaMuToCommonCalo
eta conversion of Mu to the common calorimeter eta scale defined before
double etSumPhiBinHighEdge(unsigned int phiIndex) const
double htSumPhiBinHighEdge(unsigned int phiIndex) const
std::vector< unsigned int > m_lutPhiEtmToJetEg
phi conversion for ETM to (*Jet, EG)
double emJetPhiBinLowEdge(unsigned int phiIndex) const