#include <FastL1RegionMap.h>
Public Member Functions | |
int | convertFromECal_to_HCal_iphi (int iphi_ecal) |
int | convertFromHCal_to_ECal_iphi (int iphi_hcal) |
void | display () |
FastL1RegionMap () | |
int | getNRegion () |
int | getNTower () |
std::pair< double, double > | getRegionCenterEtaPhi (int iRgn) |
std::pair< int, int > | getRegionEtaPhiIndex (CaloTowerDetId towerId) |
std::pair< int, int > | getRegionEtaPhiIndex (int regionId) |
std::pair< int, int > | getRegionEtaPhiIndex (std::pair< int, int > iEtaPhi) |
int | getRegionIndex (int ieta, int iphi) |
int | getRegionIndex (CaloTowerDetId tower) |
int | getRegionTowerIndex (std::pair< int, int > iEtaPhi) |
int | getRegionTowerIndex (int ieta, int iphi) |
int | getRegionTowerIndex (CaloTowerDetId towerId) |
std::pair< int, int > | GetTowerEastEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerNEEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerNorthEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerNWEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerSEEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerSouthEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerSWEtaPhi (int ieta, int iphi) |
std::pair< int, int > | GetTowerWestEtaPhi (int ieta, int iphi) |
~FastL1RegionMap () | |
Static Public Member Functions | |
static FastL1RegionMap * | getFastL1RegionMap () |
Private Attributes | |
int | nRegion |
int | nTower |
Static Private Attributes | |
static FastL1RegionMap * | theInstance = 0 |
Description: Mapping between DetIds, CaloTower IDs and Region IDs.
Implementation: <Notes on="" implementation>="">
Definition at line 49 of file FastL1RegionMap.h.
FastL1RegionMap::FastL1RegionMap | ( | ) |
Definition at line 23 of file FastL1RegionMap.cc.
References nRegion, and nTower.
Referenced by getFastL1RegionMap().
FastL1RegionMap::~FastL1RegionMap | ( | ) |
int FastL1RegionMap::convertFromECal_to_HCal_iphi | ( | int | iphi_ecal | ) |
Definition at line 313 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::checkMapping().
{ int iphi = 999; if (iphi_ecal>=3) iphi = iphi_ecal - 2; else if (iphi_ecal==1 || iphi_ecal==2) iphi = 70 + iphi_ecal; return iphi; }
int FastL1RegionMap::convertFromHCal_to_ECal_iphi | ( | int | iphi_hcal | ) |
Definition at line 328 of file FastL1RegionMap.cc.
{ int iphi = 999; if (iphi_hcal>=1 && iphi_hcal<=70) iphi = iphi_hcal + 2; else if (iphi_hcal==71 || iphi_hcal==72) iphi = iphi_hcal - 70; return iphi; }
void FastL1RegionMap::display | ( | ) |
Definition at line 232 of file FastL1RegionMap.cc.
References benchmark_cfg::cerr.
{ // Region IDs for (int iRgn=0; iRgn<396; iRgn++) { if (iRgn%22 == 0) std::cerr << std::endl; std::cerr << iRgn << " "; } for (int iRgn=0; iRgn<396; iRgn++) { if (iRgn%22 == 0) std::cerr << std::endl; //std::pair<int, int> pep = m_Regions[iRgn].SetEtaPhiIndex(); for (int iTwr=0; iTwr<16; iTwr++) { if (iTwr%4 == 0) std::cerr << " | "; std::cerr << iRgn << " "; } } }
FastL1RegionMap * FastL1RegionMap::getFastL1RegionMap | ( | ) | [static] |
Definition at line 33 of file FastL1RegionMap.cc.
References FastL1RegionMap(), and theInstance.
Referenced by FastL1GlobalAlgo::FastL1GlobalAlgo().
{ if(theInstance == 0) { theInstance = new FastL1RegionMap(); } return theInstance; }
int FastL1RegionMap::getNRegion | ( | ) | [inline] |
int FastL1RegionMap::getNTower | ( | ) | [inline] |
std::pair< double, double > FastL1RegionMap::getRegionCenterEtaPhi | ( | int | iRgn | ) |
Definition at line 252 of file FastL1RegionMap.cc.
References eta(), getRegionEtaPhiIndex(), and phi.
Referenced by FastL1GlobalAlgo::addJet(), FastL1GlobalAlgo::checkMapping(), FastL1GlobalAlgo::FillL1RegionsTP(), FastL1GlobalAlgo::FillMET(), FastL1GlobalAlgo::findJets(), and FastL1GlobalAlgo::isEMCand().
{ std::pair<int, int> ep = getRegionEtaPhiIndex(iRgn); // this only true for barrel + endcap! double eta = 999.; double phi = 999.; // phi if (ep.second <= 9) { //phi = ep.second * 0.349065 + 0.1745329; // 10 degrees phi = ep.second * 0.349065 ; //phi = ep.second * 0.3490658504 + 0.1745329252; // 10 degrees } else { //phi = (18-ep.second) * (-0.349065) + 0.1745329; // -10 degrees phi = (18-ep.second) * (-0.349065); } // eta if (ep.first >= 11 && ep.first <= 15 ) eta = (ep.first-11)*0.349 + 0.1745; //eta = (ep.first-11)*0.3490658504 + 0.1745329252; if (ep.first == 16 ) eta = 1.956; if (ep.first == 17 ) eta = 2.586; if (ep.first == 18 ) eta = 3.25; if (ep.first == 19 ) eta = 3.75; if (ep.first == 20 ) eta = 4.25; if (ep.first == 21 ) eta = 4.75; if (ep.first >= 6 && ep.first <= 10 ) eta = (10-ep.first)*(-0.348) - 0.174; if (ep.first == 5 ) eta = -1.956; if (ep.first == 4 ) eta = -2.586; if (ep.first == 3 ) eta = -3.25; if (ep.first == 2 ) eta = -3.75; if (ep.first == 1 ) eta = -4.25; if (ep.first == 0 ) eta = -4.75; //std::cout << "eta, phi ID: "<< ep.first << ", " << ep.second << std::endl; //std::cout << "eta, phi: "<< eta << ", " << phi << std::endl; return std::pair<double, double>(eta, phi); }
std::pair< int, int > FastL1RegionMap::getRegionEtaPhiIndex | ( | int | regionId | ) |
Definition at line 204 of file FastL1RegionMap.cc.
{ int ieta = regionId%22; int iphi = regionId/22; return std::pair<int, int>(ieta, iphi); }
std::pair< int, int > FastL1RegionMap::getRegionEtaPhiIndex | ( | std::pair< int, int > | iEtaPhi | ) |
Definition at line 62 of file FastL1RegionMap.cc.
References abs.
Referenced by FastL1GlobalAlgo::checkMapping(), FastL1GlobalAlgo::FillL1Regions(), getRegionCenterEtaPhi(), getRegionEtaPhiIndex(), getRegionIndex(), and FastL1GlobalAlgo::InitL1Regions().
{ // barrel: 2x(17x72) [eta,phi] -> 2x1224 (etaid: +/- 1-17 phiid: 1-72) // endcap: 2x(11x72) [eta,phi] -> 2x792 (etaid: +/- 18-28 phiid: 1-72) // forward: 2x(4x18) [eta,phi] -> 2x72 (etaid: +/- 29-32 phiid: 1-18) // barrel: 2x(20x72) [eta,phi] -> 2x1440 (etaid: +/- 1-20 phiid: 1-72) // endcap: 2x(18x36) [eta,phi] -> 2x648 (etaid: +/- 21-38 phiid: 1-36) // forward: 2x(3x18) [eta,phi] -> 2x54 (etaid: +/- 40-41 phiid: 1-18) // barrel: 2x(20x72) [eta,phi] -> 2x1440 (etaid: +/- 1-20 phiid: 1-72 interv: 1) // endcap: 2x(19x36) [eta,phi] -> 2x684 (etaid: +/- 21-39 phiid: 1-72 interv: 2) // forward: 2x(2x18) [eta,phi] -> 2x36 (etaid: +/- 40-41 phiid: 1-72 interv: 4) // barrel: 2x(20x72) [eta,phi] -> 2x1440 (etaid: +/- 1-20 phiid: 1-72 interv: 1) // endcap: 2x(18x36) [eta,phi] -> 2x684 (etaid: +/- 21-28 phiid: 1-72 interv: 2) // forward: 2x(2x18) [eta,phi] -> 2x36 (etaid: +/- 29-32 phiid: 1-72 interv: 4) int iTwrEta = EtaPhi.first; int iTwrPhi = EtaPhi.second; //iTwrPhi = convertFromECal_to_HCal_iphi(iTwrPhi); int iphi=999; // 0-17 int ieta=999; // 0-21 (barrel: 6-15, endcap: 4,5,16,17, HF: 0-3,18-21??) // Right now: only barrel/endcap parts work!!! if (abs(iTwrEta)<=28) { //int isub; // 0-15 4x4 region matrix iphi = ((iTwrPhi + 1) / 4) % 18; if (iTwrEta > 0) { ieta = (iTwrEta - 1) / 4 + 11; } else { ieta = (iTwrEta + 1) / 4 + 10; } } // Test HF!!! if (abs(iTwrEta)>=29 && abs(iTwrEta)<=32) { iphi = ((iTwrPhi + 1) / 4) % 18; if (iTwrEta == 29) { ieta = 18; } if (iTwrEta == 30) { ieta = 19; } if (iTwrEta == 31) { ieta = 20; } if (iTwrEta == 32) { ieta = 21; } if (iTwrEta == -29) { ieta = 3; } if (iTwrEta == -30) { ieta = 2; } if (iTwrEta == -31) { ieta = 1; } if (iTwrEta == -32) { ieta = 0; } /* if (iTwrEta >= 29 && iTwrEta <= 32) { ieta = 18; } if (iTwrEta >= 33 && iTwrEta <= 35) { ieta = 19; } if (iTwrEta >= 36 && iTwrEta <= 38) { ieta = 20; } if (iTwrEta >= 39 && iTwrEta <= 41) { ieta = 21; } if (iTwrEta <= -29 && iTwrEta >= -32) { ieta = 3; } if (iTwrEta <= -33 && iTwrEta >= -35) { ieta = 2; } if (iTwrEta <= -36 && iTwrEta >= -38) { ieta = 1; } if (iTwrEta <= -39 && iTwrEta >= -41) { ieta = 0; } */ } return std::pair<int, int>(ieta, iphi); }
std::pair< int, int > FastL1RegionMap::getRegionEtaPhiIndex | ( | CaloTowerDetId | towerId | ) |
Definition at line 44 of file FastL1RegionMap.cc.
References getRegionEtaPhiIndex(), CaloTowerDetId::ieta(), and CaloTowerDetId::iphi().
{ return FastL1RegionMap::getRegionEtaPhiIndex(std::pair<int, int>(tower.ieta(), tower.iphi())); }
int FastL1RegionMap::getRegionIndex | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 213 of file FastL1RegionMap.cc.
References getRegionEtaPhiIndex().
Referenced by FastL1GlobalAlgo::checkMapping(), FastL1GlobalAlgo::FillL1RegionsTP(), getRegionIndex(), and FastL1GlobalAlgo::isEMCand().
{ std::pair<int, int> ietaphi(ieta,iphi); std::pair<int, int> iep = getRegionEtaPhiIndex(ietaphi); int rgnid = iep.second*22 + iep.first; return rgnid; }
int FastL1RegionMap::getRegionIndex | ( | CaloTowerDetId | tower | ) |
Definition at line 225 of file FastL1RegionMap.cc.
References getRegionIndex(), CaloTowerDetId::ieta(), and CaloTowerDetId::iphi().
{ return getRegionIndex(tower.ieta(), tower.iphi()); }
int FastL1RegionMap::getRegionTowerIndex | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 198 of file FastL1RegionMap.cc.
References getRegionTowerIndex().
{ return FastL1RegionMap::getRegionTowerIndex(std::pair<int, int>(iEta,iPhi)); }
int FastL1RegionMap::getRegionTowerIndex | ( | CaloTowerDetId | towerId | ) |
Definition at line 52 of file FastL1RegionMap.cc.
References getRegionTowerIndex(), CaloTowerDetId::ieta(), and CaloTowerDetId::iphi().
{ return FastL1RegionMap::getRegionTowerIndex(std::pair<int, int>(tower.ieta(), tower.iphi())); }
int FastL1RegionMap::getRegionTowerIndex | ( | std::pair< int, int > | iEtaPhi | ) |
Definition at line 175 of file FastL1RegionMap.cc.
References abs.
Referenced by FastL1GlobalAlgo::checkMapping(), FastL1GlobalAlgo::FillL1Regions(), FastL1GlobalAlgo::FillL1RegionsTP(), getRegionTowerIndex(), and FastL1GlobalAlgo::isEMCand().
{ int iTwrEta = EtaPhi.first; int iTwrPhi = EtaPhi.second; //iTwrPhi = convertFromECal_to_HCal_iphi(iTwrPhi); // Right now: only barrel/encap part!!! int isub = 999; // 0-15 4x4 region matrix if (abs(iTwrEta)<=41) { //if (abs(iTwrEta)<=28) { if (iTwrEta > 0) { isub = 4*(3 - (iTwrPhi + 1) %4) + ((iTwrEta - 1) % 4) ; } else { isub = 4*(3 - (iTwrPhi + 1) %4) + (3 + (iTwrEta+1)%4) ; } } return isub; }
std::pair< int, int > FastL1RegionMap::GetTowerEastEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 369 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ if (ieta == -1) return std::pair<int, int>(1, iphi); if (ieta < 32) return std::pair<int, int>(ieta+1, iphi); else return std::pair<int, int>(999, iphi); }
std::pair< int, int > FastL1RegionMap::GetTowerNEEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 395 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ int iEta = ieta + 1; int iPhi = iphi + 1; if (ieta >= 32) iEta = 999; if (ieta == -1) iEta = 1; if (iphi == 72) iPhi = 1; return std::pair<int, int>(iEta, iPhi); }
std::pair< int, int > FastL1RegionMap::GetTowerNorthEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 340 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ if (iphi < 72) return std::pair<int, int>(ieta, iphi+1); else return std::pair<int, int>(ieta, 1); }
std::pair< int, int > FastL1RegionMap::GetTowerNWEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 380 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ int iEta = ieta - 1; int iPhi = iphi + 1; if (ieta <= -32) iEta = 999; if (ieta == 1) iEta = -1; if (iphi == 72) iPhi = 1; return std::pair<int, int>(iEta, iPhi); }
std::pair< int, int > FastL1RegionMap::GetTowerSEEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 427 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ int iEta = ieta + 1; int iPhi = iphi - 1; if (ieta >= 32) iEta = 999; if (ieta == -1) iEta = 1; if (iphi == 1) iPhi = 72; return std::pair<int, int>(iEta, iPhi); }
std::pair< int, int > FastL1RegionMap::GetTowerSouthEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 349 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ if (iphi > 1) return std::pair<int, int>(ieta, iphi-1); else return std::pair<int, int>(ieta, 72); }
std::pair< int, int > FastL1RegionMap::GetTowerSWEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 412 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ int iEta = ieta - 1; int iPhi = iphi - 1; if (ieta <= -32) iEta = 999; if (ieta == 1) iEta = -1; if (iphi == 1) iPhi = 72; return std::pair<int, int>(iEta, iPhi); }
std::pair< int, int > FastL1RegionMap::GetTowerWestEtaPhi | ( | int | ieta, |
int | iphi | ||
) |
Definition at line 358 of file FastL1RegionMap.cc.
Referenced by FastL1GlobalAlgo::isEMCand().
{ if (ieta == 1) return std::pair<int, int>(-1, iphi); if (ieta > -32) return std::pair<int, int>(ieta-1, iphi); else return std::pair<int, int>(999, iphi); }
int FastL1RegionMap::nRegion [private] |
Definition at line 91 of file FastL1RegionMap.h.
Referenced by FastL1RegionMap(), and getNRegion().
int FastL1RegionMap::nTower [private] |
Definition at line 90 of file FastL1RegionMap.h.
Referenced by FastL1RegionMap(), and getNTower().
FastL1RegionMap * FastL1RegionMap::theInstance = 0 [static, private] |
Definition at line 88 of file FastL1RegionMap.h.
Referenced by getFastL1RegionMap().