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;
433 for (std::vector<std::pair<L1GtObject, L1GtObject>>::const_iterator cIter =
m_gtObjectPairVec.begin();
453 std::pair<L1GtObject, L1GtObject> gtObjPair;
454 gtObjPair = std::make_pair(obj0, obj1);
460 unsigned int iPair = 0;
461 for (std::vector<std::pair<L1GtObject, L1GtObject>>::const_iterator cIter =
m_gtObjectPairVec.begin();
464 if (*cIter == gtObjPair) {
482 const unsigned int positionPair,
483 const unsigned int initialIndex,
484 unsigned int &convertedIndex)
const {
486 bool conversionStatus =
false;
492 conversionStatus =
false;
495 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " << pairIndex
496 <<
": initial phi index " << initialIndex
497 <<
" >= " << ((*(
m_pairPhiConvVec.at(pairIndex))).size()) <<
" Conversion failed." 502 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " << pairIndex
503 <<
": initial phi index " << initialIndex <<
" within scale size " 509 switch (positionPair) {
515 conversionStatus =
true;
518 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 519 << pairIndex <<
": initial phi index " << initialIndex <<
" converted to " 520 << newIndex << std::endl;
524 conversionStatus =
false;
527 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 528 << pairIndex <<
": converted phi index " << newIndex <<
"is equal to badIndex " 529 <<
badIndex <<
" Conversion failed." << std::endl;
534 newIndex = initialIndex;
535 conversionStatus =
true;
538 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 539 << pairIndex <<
": initial phi index " << initialIndex
540 <<
" not requested to be converted, return index " << newIndex << std::endl;
548 newIndex = initialIndex;
549 conversionStatus =
true;
552 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 553 << pairIndex <<
": initial phi index " << initialIndex
554 <<
" not requested to be converted, return index, return index " << newIndex
561 conversionStatus =
true;
564 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 565 << pairIndex <<
": initial phi index " << initialIndex <<
" converted to " 566 << newIndex << std::endl;
570 conversionStatus =
false;
573 LogTrace(
"L1GlobalTrigger") << (positionPair ?
" Second" :
"\n First") <<
" object from pair " 574 << pairIndex <<
": converted phi index " << newIndex <<
"is equal to badIndex " 575 <<
badIndex <<
" Conversion failed." << std::endl;
585 throw cms::Exception(
"FailModule") <<
"\n Wrong position in the object pair " << positionPair
586 <<
"\n Programming error - position must be either 0 or 1..." << std::endl;
592 convertedIndex = newIndex;
593 return conversionStatus;
597 const unsigned int initialIndex,
598 unsigned int &convertedIndex)
const {
600 bool conversionStatus =
false;
608 conversionStatus =
false;
612 <<
" has initial eta index " << initialIndex
621 conversionStatus =
true;
625 <<
" initial eta index " << initialIndex <<
" (within scale size " 631 conversionStatus =
false;
635 <<
" initial eta index " << initialIndex <<
" (within scale size " 637 <<
" Conversion failed." << std::endl;
652 conversionStatus =
false;
656 <<
" has initial eta index " << initialIndex
658 <<
" scale size. Conversion failed." << std::endl;
665 conversionStatus =
true;
669 <<
" initial eta index " << initialIndex <<
" (within scale size " 675 conversionStatus =
false;
679 <<
" initial eta index " << initialIndex <<
" (within scale size " 681 <<
" Conversion failed." << std::endl;
693 conversionStatus =
false;
697 <<
" has initial eta index " << initialIndex
699 <<
" scale size. Conversion failed." << std::endl;
706 conversionStatus =
true;
710 <<
" initial eta index " << initialIndex <<
" (within scale size " 716 conversionStatus =
false;
720 <<
" initial eta index " << initialIndex <<
" (within scale size " 722 <<
" Conversion failed." << std::endl;
741 conversionStatus =
false;
746 <<
"' is not a recognized L1GtObject. " 747 <<
"\n Conversion failed. " << std::endl;
748 conversionStatus =
false;
753 convertedIndex = newIndex;
755 return conversionStatus;
798 <<
"' is not a recognized L1GtObject. " 799 <<
"\n Return 0 bins.";
806 std::pair<L1GtObject, L1GtObject> gtObjPair;
807 gtObjPair = std::make_pair(obj0, obj1);
814 for (std::vector<std::pair<L1GtObject, L1GtObject>>::const_iterator cIter =
m_gtObjectPairVec.begin();
817 if (*cIter == gtObjPair) {
833 LogTrace(
"L1GlobalTrigger") <<
"\n gtObjectNrBinsPhi for L1 GT object pair index " << pairIndex <<
" = " 843 const int ifCaloEtaNumberBits,
844 const int ifMuEtaNumberBits) {
875 for (
unsigned int phiMuInd = 0; phiMuInd <
m_nrBinsPhiMu; ++phiMuInd) {
880 double phiMuLowEdgeSmallShiftRight = phiMuLowEdge + (phiMuHighEdge - phiMuLowEdge) / 100.;
886 for (
unsigned int iBin = nrBins;; --iBin) {
890 if (phiMuLowEdgeSmallShiftRight >= phiLowEdge) {
893 LogTrace(
"L1GlobalTrigger") <<
" phiMuIndex \t" << phiMuInd <<
" [ " << phiMuLowEdge <<
" \t, " << phiMuHighEdge
894 <<
"] \t==>\t phiMuJetEG \t" <<
m_lutPhiMuToJetEg[phiMuInd] <<
" [ " << phiLowEdge
895 <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
905 for (
unsigned int iBin = nrBins;; --iBin) {
909 if (phiMuLowEdgeSmallShiftRight >= phiLowEdge) {
912 LogTrace(
"L1GlobalTrigger") <<
" phiMuIndex \t" << phiMuInd <<
" [ " << phiMuLowEdge <<
" \t, " << phiMuHighEdge
913 <<
"] \t==>\t phiMuToEtm \t" <<
m_lutPhiMuToEtm[phiMuInd] <<
" [ " << phiLowEdge
914 <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
924 for (
unsigned int iBin = nrBins;; --iBin) {
928 if (phiMuLowEdgeSmallShiftRight >= phiLowEdge) {
931 LogTrace(
"L1GlobalTrigger") <<
" phiMuIndex \t" << phiMuInd <<
" [ " << phiMuLowEdge <<
" \t, " << phiMuHighEdge
932 <<
"] \t==>\t phiMuToHtm \t" <<
m_lutPhiMuToHtm[phiMuInd] <<
" [ " << phiLowEdge
933 <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
939 LogTrace(
"L1GlobalTrigger") << std::endl;
943 LogTrace(
"L1GlobalTrigger") <<
"Mu phi conversions" << std::endl;
945 LogTrace(
"L1GlobalTrigger") <<
" Mu phiIndex \t" << iBin <<
"\t converted to index:" 949 LogTrace(
"L1GlobalTrigger") << std::endl;
962 for (
unsigned int phiEtmInd = 0; phiEtmInd <
m_nrBinsPhiEtm; ++phiEtmInd) {
967 double phiEtmLowEdgeSmallShiftRight = phiEtmLowEdge + (phiEtmHighEdge - phiEtmLowEdge) / 100.;
973 for (
unsigned int iBin = nrBins;; --iBin) {
977 if (phiEtmLowEdgeSmallShiftRight >= phiLowEdge) {
980 LogTrace(
"L1GlobalTrigger") <<
" phiEtmIndex \t" << phiEtmInd <<
" [ " << phiEtmLowEdge <<
" \t, " 982 <<
" [ " << phiLowEdge <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
992 for (
unsigned int iBin = nrBins;; --iBin) {
996 if (phiEtmLowEdgeSmallShiftRight >= phiLowEdge) {
999 LogTrace(
"L1GlobalTrigger") <<
" phiEtmIndex \t" << phiEtmInd <<
" [ " << phiEtmLowEdge <<
" \t, " 1000 << phiEtmHighEdge <<
"] \t==>\t phiEtmToHtm \t" <<
m_lutPhiEtmToHtm[phiEtmInd]
1001 <<
" [ " << phiLowEdge <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
1007 LogTrace(
"L1GlobalTrigger") << std::endl;
1017 for (
unsigned int phiHtmInd = 0; phiHtmInd <
m_nrBinsPhiHtm; ++phiHtmInd) {
1022 double phiHtmLowEdgeSmallShiftRight = phiHtmLowEdge + (phiHtmHighEdge - phiHtmLowEdge) / 100.;
1026 for (
unsigned int iBin = nrBins;; --iBin) {
1030 if (phiHtmLowEdgeSmallShiftRight >= phiLowEdge) {
1033 LogTrace(
"L1GlobalTrigger") <<
" phiHtmIndex \t" << phiHtmInd <<
" [ " << phiHtmLowEdge <<
" \t, " 1035 <<
" [ " << phiLowEdge <<
"\t, " << phiHighEdge <<
" ]" << std::endl;
1071 unsigned int nrGctTotalEtaBinsPerHalf = nrGctCentralEtaBinsPerHalf + nrGctForwardEtaBinsPerHalf;
1081 LogTrace(
"L1GlobalTrigger") <<
" \nEta conversion: CenJet/TauJet & " 1082 "IsoEG/NoIsoEG to a common calorimeter scale\n" 1088 for (
unsigned int etaInd = 0; etaInd < nrGctCentralEtaBinsPerHalf; ++etaInd) {
1093 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaInd <<
"\t [hex: " << std::hex << etaInd <<
"] " <<
std::dec 1094 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1097 unsigned int etaIndNeg = etaInd | (1 << (ifCaloEtaNumberBits - 1));
1101 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaIndNeg <<
"\t [hex: " << std::hex << etaIndNeg <<
"] " <<
std::dec 1102 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1110 LogTrace(
"L1GlobalTrigger") <<
" \nEta conversion: ForJet to a common calorimeter scale\n" << std::endl;
1115 for (
unsigned int etaInd = 0; etaInd < nrGctForwardEtaBinsPerHalf; ++etaInd) {
1120 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaInd <<
"\t [hex: " << std::hex << etaInd <<
"] " <<
std::dec 1121 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1124 unsigned int etaIndNeg = etaInd | (1 << (ifCaloEtaNumberBits - 1));
1128 LogTrace(
"L1GlobalTrigger") <<
" etaIndex " << etaIndNeg <<
"\t [hex: " << std::hex << etaIndNeg <<
"] " <<
std::dec 1129 <<
" ==> etaIndexGlobal " << globalIndex << std::endl;
1137 LogDebug(
"L1GlobalTrigger") <<
" \nEta conversion: Mu to a common calorimeter scale\n" << std::endl;
1141 LogTrace(
"L1GlobalTrigger") <<
" \nnrBinsEtaMuPerHalf = " << nrBinsEtaMuPerHalf <<
"\n" << std::endl;
1146 for (
unsigned int etaMuInd = 0; etaMuInd < nrBinsEtaMuPerHalf; ++etaMuInd) {
1151 double etaMuLowEdgeSmallShiftRight = etaMuLowEdge + (etaMuHighEdge - etaMuLowEdge) / 100.;
1157 double etaHighEdge = 0.0;
1159 etaHighEdge = etaLowEdge;
1164 if (etaMuLowEdgeSmallShiftRight >= etaLowEdge) {
1167 LogTrace(
"L1GlobalTrigger") <<
" etaMuIndex \t" << etaMuInd <<
"\t [ " << etaMuLowEdge <<
", \t" 1169 <<
"\t [ " << etaLowEdge <<
", \t" << etaHighEdge <<
" ]" << std::endl;
1176 unsigned int etaMuIndNeg = etaMuInd | (1 << (ifMuEtaNumberBits - 1));
1180 LogTrace(
"L1GlobalTrigger") <<
" etaMuIndexNeg \t" << etaMuIndNeg <<
"\t [ " << (-1.0 * etaMuLowEdge) <<
", \t" 1181 << (-1.0 * etaMuHighEdge) <<
"] ==> etaMuJetEG \t" 1185 <<
" ]" << std::endl;
1189 LogTrace(
"L1GlobalTrigger") << std::endl;
1190 LogTrace(
"L1GlobalTrigger") << std::endl;
1197 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1199 myCout <<
"\n---++Conversion tables for phi and eta variables of the trigger " 1200 "objects used in correlation conditions \n" 1209 myCout <<
"\n---+++Phi conversion for muons to jets and e-gamma common phi " 1214 myCout <<
"Size of look-up table = " << lutPhiMuToJetEgSize <<
"\n" << std::endl;
1216 myCout <<
"| *Initial Phi Hardware Index* " 1217 <<
"|| *Initial Phi Range* ||" 1218 <<
" *Converted Phi Hardware Index* " 1219 <<
"|| *Converted Phi Range* ||" 1221 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1223 for (
unsigned int indexToConv = 0; indexToConv < lutPhiMuToJetEgSize; ++indexToConv) {
1229 double convLowEdge = 0.;
1230 double convHighEdge = 0.;
1238 highEdgeToConv = 0.;
1241 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1242 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1243 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1244 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1245 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1246 <<
" ) |" << std::right << std::endl;
1252 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1254 myCout <<
"\n---+++Phi conversion for muons to ETM phi scale \n" << std::endl;
1257 myCout <<
"Size of look-up table = " << lutPhiMuToEtmSize <<
"\n" << std::endl;
1259 myCout <<
"| *Initial Phi Hardware Index* " 1260 <<
"|| *Initial Phi Range* ||" 1261 <<
" *Converted Phi Hardware Index* " 1262 <<
"|| *Converted Phi Range* ||" 1264 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1266 for (
unsigned int indexToConv = 0; indexToConv < lutPhiMuToEtmSize; ++indexToConv) {
1272 double convLowEdge = 0.;
1273 double convHighEdge = 0.;
1281 highEdgeToConv = 0.;
1284 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1285 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1286 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1287 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1288 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1289 <<
" ) |" << std::right << std::endl;
1295 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1297 myCout <<
"\n---+++Phi conversion for muons to HTM phi scale \n" << std::endl;
1300 myCout <<
"Size of look-up table = " << lutPhiMuToHtmSize <<
"\n" << std::endl;
1302 myCout <<
"| *Initial Phi Hardware Index* " 1303 <<
"|| *Initial Phi Range* ||" 1304 <<
" *Converted Phi Hardware Index* " 1305 <<
"|| *Converted Phi Range* ||" 1307 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1309 for (
unsigned int indexToConv = 0; indexToConv < lutPhiMuToHtmSize; ++indexToConv) {
1315 double convLowEdge = 0.;
1316 double convHighEdge = 0.;
1324 highEdgeToConv = 0.;
1327 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1328 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1329 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1330 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1331 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1332 <<
" ) |" << std::right << std::endl;
1338 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1340 myCout <<
"\n---+++Phi conversion for ETM to jets and e-gamma scale common " 1345 myCout <<
"Size of look-up table = " << lutPhiEtmToJetEgSize <<
"\n" << std::endl;
1347 myCout <<
"| *Initial Phi Hardware Index* " 1348 <<
"|| *Initial Phi Range* ||" 1349 <<
" *Converted Phi Hardware Index* " 1350 <<
"|| *Converted Phi Range* ||" 1352 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1354 for (
unsigned int indexToConv = 0; indexToConv < lutPhiEtmToJetEgSize; ++indexToConv) {
1360 double convLowEdge = 0.;
1361 double convHighEdge = 0.;
1369 highEdgeToConv = 0.;
1372 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1373 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1374 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1375 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1376 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1377 <<
" ) |" << std::right << std::endl;
1383 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1385 myCout <<
"\n---+++Phi conversion for ETM to HTM phi scale \n" << std::endl;
1388 myCout <<
"Size of look-up table = " << lutPhiEtmToHtmSize <<
"\n" << std::endl;
1390 myCout <<
"| *Initial Phi Hardware Index* " 1391 <<
"|| *Initial Phi Range* ||" 1392 <<
" *Converted Phi Hardware Index* " 1393 <<
"|| *Converted Phi Range* ||" 1395 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1397 for (
unsigned int indexToConv = 0; indexToConv < lutPhiEtmToHtmSize; ++indexToConv) {
1403 double convLowEdge = 0.;
1404 double convHighEdge = 0.;
1412 highEdgeToConv = 0.;
1415 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1416 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1417 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1418 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1419 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1420 <<
" ) |" << std::right << std::endl;
1426 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1428 myCout <<
"\n---+++Phi conversion for HTM to jets and e-gamma scale common " 1433 myCout <<
"Size of look-up table = " << lutPhiHtmToJetEgSize <<
"\n" << std::endl;
1435 myCout <<
"| *Initial Phi Hardware Index* " 1436 <<
"|| *Initial Phi Range* ||" 1437 <<
" *Converted Phi Hardware Index* " 1438 <<
"|| *Converted Phi Range* ||" 1440 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1442 for (
unsigned int indexToConv = 0; indexToConv < lutPhiHtmToJetEgSize; ++indexToConv) {
1448 double convLowEdge = 0.;
1449 double convHighEdge = 0.;
1457 highEdgeToConv = 0.;
1460 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1461 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << (
rad2deg(lowEdgeToConv)) <<
", |" 1462 << std::setw(10) << std::left << (
rad2deg(highEdgeToConv)) <<
" ) | 0x" << std::setw(6) << std::hex
1463 << std::left << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10)
1464 << std::left << (
rad2deg(convLowEdge)) <<
", |" << std::setw(10) << std::left << (
rad2deg(convHighEdge))
1465 <<
" ) |" << std::right << std::endl;
1476 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1478 myCout <<
"\n---+++Eta conversion for central and tau jets and e-gamma " 1479 "objects to a common central and forward calorimeter eta scale \n" 1483 myCout <<
"Size of look-up table = " << lutEtaCentralToCommonCaloSize <<
"\n" << std::endl;
1485 myCout <<
"| *Initial Eta Hardware Index* " 1486 <<
"|| *Initial Eta Range* ||" 1487 <<
" *Converted Eta Hardware Index* " 1488 <<
"|| *Converted Eta Range* ||" 1490 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1492 for (
unsigned int indexToConv = 0; indexToConv < lutEtaCentralToCommonCaloSize; ++indexToConv) {
1500 double convLowEdge = 0.;
1501 double convHighEdge = 0.;
1509 highEdgeToConv = 0.;
1512 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1513 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << lowEdgeToConv <<
", |" 1514 << std::setw(10) << std::left << highEdgeToConv <<
" ) | 0x" << std::setw(6) << std::hex << std::left
1515 << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10) << std::left
1516 << convLowEdge <<
", |" << std::setw(10) << std::left << convHighEdge <<
" ) |" << std::right << std::endl;
1522 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1524 myCout <<
"\n---+++Eta conversion for forward jets to a common central and " 1525 "forward calorimeter eta scale \n" 1529 myCout <<
"Size of look-up table = " << lutEtaForJetToCommonCaloSize <<
"\n" << std::endl;
1531 myCout <<
"| *Initial Eta Hardware Index* " 1532 <<
"|| *Initial Eta Range* ||" 1533 <<
" *Converted Eta Hardware Index* " 1534 <<
"|| *Converted Eta Range* ||" 1536 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1538 for (
unsigned int indexToConv = 0; indexToConv < lutEtaForJetToCommonCaloSize; ++indexToConv) {
1546 double convLowEdge = 0.;
1547 double convHighEdge = 0.;
1555 highEdgeToConv = 0.;
1558 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1559 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << lowEdgeToConv <<
", |" 1560 << std::setw(10) << std::left << highEdgeToConv <<
" ) | 0x" << std::setw(6) << std::hex << std::left
1561 << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10) << std::left
1562 << convLowEdge <<
", |" << std::setw(10) << std::left << convHighEdge <<
" ) |" << std::right << std::endl;
1568 myCout <<
"<p style=\"page-break-before: always\"> </p>";
1570 myCout <<
"\n---+++Eta conversion for muons to a common central and forward " 1571 "calorimeter eta scale \n" 1575 myCout <<
"Size of look-up table = " << lutEtaMuToCommonCaloSize <<
"\n" << std::endl;
1579 myCout <<
"| *Initial Eta Hardware Index* " 1580 <<
"|| *Initial Eta Range* ||" 1581 <<
" *Converted Eta Hardware Index* " 1582 <<
"|| *Converted Eta Range* ||" 1584 <<
"| *hex* | *dec* | ^|^| *hex* | *dec* |^|^|" << std::endl;
1586 for (
unsigned int indexToConv = 0; indexToConv < lutEtaMuToCommonCaloSize; ++indexToConv) {
1588 unsigned int iBinOffset = 0;
1589 double etaSign = 1.;
1591 if (indexToConv > nrBinsEtaMuPerHalf) {
1592 iBinOffset = nrBinsEtaMuPerHalf + 1;
1601 double convLowEdge = 0.;
1602 double convHighEdge = 0.;
1610 highEdgeToConv = 0.;
1613 myCout <<
"| 0x" << std::setw(3) << std::hex << std::left << indexToConv <<
" | " <<
std::dec << std::setw(3)
1614 << std::left << indexToConv <<
" |[ " << std::setw(10) << std::left << lowEdgeToConv <<
", |" 1615 << std::setw(10) << std::left << highEdgeToConv <<
" ) | 0x" << std::setw(6) << std::hex << std::left
1616 << convIndex <<
" | " <<
std::dec << std::setw(6) << convIndex <<
" |[ " << std::setw(10) << std::left
1617 << convLowEdge <<
", |" << std::setw(10) << std::left << convHighEdge <<
" ) |" << std::right << std::endl;
const L1CaloGeometry * m_l1CaloGeometry
pointer to calorimetry scales - updated in convertl1Scales method
double globalEtaBinLowEdge(unsigned int globalEtaIndex) const
unsigned int numberGctForwardEtaBinsPerHalf() const
const double rad2deg(const double &) const
convert phi from rad (-pi, pi] to deg (0, 360)
unsigned int m_nrBinsEtaCommon
number of eta bins for common scale
unsigned int m_nrBinsPhiMu
number of phi bins for muons
std::vector< unsigned int > m_lutEtaCentralToCommonCalo
unsigned int numberGctHtSumPhiBins() const
double htSumPhiBinLowEdge(unsigned int phiIndex) const
std::vector< bool > m_pairConvertPhiFirstGtObject
unsigned int numberGctEtSumPhiBins() const
L1GtEtaPhiConversions()
constructor
unsigned int m_nrBinsPhiEtm
number of phi bins for ETM
unsigned int numberGctEmJetPhiBins() const
std::vector< const std::vector< unsigned int > * > m_pairPhiConvVec
std::vector< unsigned int > m_lutPhiMuToHtm
phi conversion for Mu to HTM
double etaBinCenter(unsigned int etaIndex, bool central=true) const
unsigned int numberGctCentralEtaBinsPerHalf() const
std::string l1GtObjectEnumToString(const L1GtObject &)
const unsigned int gtObjectPairIndex(const L1GtObject &, const L1GtObject &) const
virtual ~L1GtEtaPhiConversions()
destructor
virtual float getHighEdge(unsigned packed) const =0
get the upper edge of bin represented by packed
std::vector< unsigned int > m_lutEtaForJetToCommonCalo
void convertL1Scales(const L1CaloGeometry *, const L1MuTriggerScales *, const int, const int)
perform all scale conversions
const L1MuScale * getPhiScale() const
get the phi scale
std::vector< unsigned int > m_lutPhiMuToEtm
phi conversion for Mu to ETM
const unsigned int gtObjectNrBinsPhi(const L1GtObject &) const
return the number of phi bins for a GT object
static const unsigned int badIndex
virtual unsigned getNBins() const =0
get number of bins
int m_verbosity
verbosity level
std::vector< std::pair< L1GtObject, L1GtObject > > m_gtObjectPairVec
vector of all L1GtObject pairs
std::vector< const unsigned int * > m_pairNrPhiBinsVec
unsigned int m_nrBinsPhiJetEg
number of phi bins for calorimeter objects (*Jet, *EG)
const bool convertEtaIndex(const L1GtObject &, const unsigned int initialIndex, unsigned int &convertedIndex) const
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
bool m_isDebugEnabled
cached edm::isDebugEnabled()
const L1MuTriggerScales * m_l1MuTriggerScales
pointer to muon scales - updated in convertl1Scales method
double etSumPhiBinLowEdge(unsigned int phiIndex) const
std::vector< unsigned int > m_lutPhiEtmToHtm
phi conversion for ETM to HTM
const bool convertPhiIndex(const unsigned int pairIndex, const unsigned int positionPair, const unsigned int initialIndex, unsigned int &convertedIndex) const
virtual float getLowEdge(unsigned packed) const =0
get the low edge of bin represented by packed
virtual void print(std::ostream &myCout) const
print all the performed conversions
const L1MuScale * getGMTEtaScale() const
get the GMT eta scale
double emJetPhiBinLowEdge(unsigned int phiIndex) const
double htSumPhiBinHighEdge(unsigned int phiIndex) const
std::vector< unsigned int > m_lutPhiJetEgToJetEg
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
unsigned int globalEtaIndex(const double &etaValue) const
std::vector< unsigned int > m_lutPhiEtmToJetEg
phi conversion for ETM to (*Jet, EG)
virtual float getValue(unsigned i) const =0
get value of the underlying vector for bin i
double emJetPhiBinHighEdge(unsigned int phiIndex) const
double etSumPhiBinHighEdge(unsigned int phiIndex) const