File indexing completed on 2023-03-17 10:43:41
0001 #include "Calibration/IsolatedParticles/interface/FindEtaPhi.h"
0002 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0003
0004 namespace spr {
0005
0006 spr::EtaPhi getEtaPhi(int ieta, int iphi, bool debug) {
0007 int ietal = (ieta - 1) / 2;
0008 int ietar = ieta - ietal - 1;
0009 int iphil = (iphi - 1) / 2;
0010 int iphir = iphi - iphil - 1;
0011 spr::EtaPhi etaphi;
0012 etaphi.ietaE[0] = ietal;
0013 etaphi.ietaW[0] = ietar;
0014 etaphi.iphiN[0] = iphil;
0015 etaphi.iphiS[0] = iphir;
0016 if (ietal == ietar && iphil == iphir) {
0017 etaphi.ntrys = 1;
0018 } else if (ietal == ietar || iphil == iphir) {
0019 etaphi.ntrys = 2;
0020 etaphi.ietaE[1] = ietar;
0021 etaphi.ietaW[1] = ietal;
0022 etaphi.iphiN[1] = iphir;
0023 etaphi.iphiS[1] = iphil;
0024 } else {
0025 etaphi.ntrys = 4;
0026 etaphi.ietaE[1] = ietar;
0027 etaphi.ietaW[1] = ietal;
0028 etaphi.iphiN[1] = iphil;
0029 etaphi.iphiS[1] = iphir;
0030 etaphi.ietaE[2] = ietal;
0031 etaphi.ietaW[1] = ietar;
0032 etaphi.iphiN[2] = iphir;
0033 etaphi.iphiS[1] = iphil;
0034 etaphi.ietaE[3] = ietar;
0035 etaphi.ietaW[1] = ietal;
0036 etaphi.iphiN[3] = iphir;
0037 etaphi.iphiS[1] = iphil;
0038 }
0039
0040 if (debug) {
0041 edm::LogVerbatim("IsoTrack") << "getEtaPhi:: Has " << etaphi.ntrys << " possibilites for " << ieta << "X" << iphi
0042 << " matrix";
0043 for (int itry = 0; itry < etaphi.ntrys; itry++) {
0044 edm::LogVerbatim("IsoTrack") << "Trial " << itry << " with etaE|etaW " << etaphi.ietaE[itry] << "|"
0045 << etaphi.ietaW[itry] << " and phiN|PhiS " << etaphi.iphiN[itry] << "|"
0046 << etaphi.iphiS[itry];
0047 }
0048 }
0049 return etaphi;
0050 }
0051 }