CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/Calibration/IsolatedParticles/src/FindEtaPhi.cc

Go to the documentation of this file.
00001 #include "Calibration/IsolatedParticles/interface/FindEtaPhi.h"
00002 #include <iostream>
00003 
00004 namespace spr{
00005 
00006   spr::EtaPhi getEtaPhi(int ieta, int iphi, bool debug) {
00007 
00008     int ietal = (ieta-1)/2;
00009     int ietar = ieta - ietal - 1;
00010     int iphil = (iphi-1)/2;
00011     int iphir = iphi - iphil - 1;
00012     spr::EtaPhi etaphi;
00013     etaphi.ietaE[0] = ietal; etaphi.ietaW[0] = ietar;
00014     etaphi.iphiN[0] = iphil; etaphi.iphiS[0] = iphir;
00015     if (ietal == ietar && iphil == iphir) {
00016       etaphi.ntrys = 1;
00017     } else if (ietal == ietar || iphil == iphir) {
00018       etaphi.ntrys = 2;
00019       etaphi.ietaE[1] = ietar; etaphi.ietaW[1] = ietal;
00020       etaphi.iphiN[1] = iphir; etaphi.iphiS[1] = iphil;
00021     } else {
00022       etaphi.ntrys = 4;
00023       etaphi.ietaE[1] = ietar; etaphi.ietaW[1] = ietal;
00024       etaphi.iphiN[1] = iphil; etaphi.iphiS[1] = iphir;
00025       etaphi.ietaE[2] = ietal; etaphi.ietaW[1] = ietar;
00026       etaphi.iphiN[2] = iphir; etaphi.iphiS[1] = iphil;
00027       etaphi.ietaE[3] = ietar; etaphi.ietaW[1] = ietal;
00028       etaphi.iphiN[3] = iphir; etaphi.iphiS[1] = iphil;
00029     }
00030 
00031     if (debug) {
00032       std::cout << "getEtaPhi:: Has " <<  etaphi.ntrys << " possibilites for "
00033                 << ieta << "X" << iphi << " matrix" << std::endl;
00034       for (int itry=0; itry<etaphi.ntrys; itry++) {
00035         std::cout << "Trial " << itry <<" with etaE|etaW " <<etaphi.ietaE[itry]
00036                   <<"|" << etaphi.ietaW[itry] << " and phiN|PhiS " 
00037                   << etaphi.iphiN[itry] <<"|" <<etaphi.iphiS[itry] <<std::endl;
00038       }
00039     }
00040     return etaphi;
00041   }
00042 }