CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch1/src/FastSimulation/L1CaloTriggerProducer/interface/FastL1RegionMap.h

Go to the documentation of this file.
00001 #ifndef RecoTauTag_FastL1RegionMap_h
00002 #define RecoTauTag_FastL1RegionMap_h
00003 // -*- C++ -*-
00004 //
00005 // Package:    L1CaloSim
00006 // Class:      FastL1RegionMap
00007 // 
00015 //
00016 // Original Author:  Chi Nhan Nguyen
00017 //         Created:  Mon Feb 19 13:25:24 CST 2007
00018 // $Id: FastL1RegionMap.h,v 1.3 2009/03/23 11:41:27 chinhan Exp $
00019 //
00020 
00021 #include <iostream>
00022 #include <string>
00023 #include <list> 
00024 
00025 #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h"
00026 
00027 
00028 //
00029 // This Class is used for the mapping Detector IDs to the region IDs
00030 //
00031 // Region (HF not yet considered!!!)
00032 // 22x18 (ieta x iphi) map:
00033 //
00034 // ieta: 0  1  2  3 ... 21
00035 //       ...
00036 //       ...
00037 //
00038 // iphi: 17 17 17 17 ... 17
00039 //       .  .  .  .  ... .
00040 //       .  .  .  .  ... .
00041 //       2  .  .  .  ... 2
00042 //       1  .  .  .  ... 1
00043 //       0  .  .  .  ... 0
00044 //
00045 // barrel ieta: 7-14
00046 // endcap ieta: 4-6, 15-17
00047 // HF ieta: 0-3, 18-21 // HF not considered yet!
00048 // 
00049 class FastL1RegionMap {
00050 
00051  public:
00052   FastL1RegionMap();
00053   ~FastL1RegionMap();
00054 
00055   static FastL1RegionMap* getFastL1RegionMap();
00056 
00057   std::pair<int, int> getRegionEtaPhiIndex(std::pair<int, int> iEtaPhi);
00058   std::pair<int, int> getRegionEtaPhiIndex(CaloTowerDetId towerId);
00059   std::pair<int, int> getRegionEtaPhiIndex(int regionId);
00060   int getRegionIndex(int ieta, int iphi);
00061   int getRegionIndex(CaloTowerDetId tower);
00062   int getRegionTowerIndex(std::pair<int, int> iEtaPhi);
00063   int getRegionTowerIndex(int ieta, int iphi);
00064   int getRegionTowerIndex(CaloTowerDetId towerId);
00065 
00066   std::pair<double, double> getRegionCenterEtaPhi(int iRgn);
00067 
00068   int getNTower() { return nTower; };
00069   int getNRegion() { return nRegion; };
00070 
00071   int convertFromECal_to_HCal_iphi(int iphi_ecal);
00072   int convertFromHCal_to_ECal_iphi(int iphi_hcal);
00073 
00074   void display();
00075 
00076   //CaloTowerDetId getTowerId();
00077 
00078   std::pair<int, int> GetTowerNorthEtaPhi(int ieta, int iphi); 
00079   std::pair<int, int> GetTowerSouthEtaPhi(int ieta, int iphi); 
00080   std::pair<int, int> GetTowerWestEtaPhi(int ieta, int iphi); 
00081   std::pair<int, int> GetTowerEastEtaPhi(int ieta, int iphi); 
00082   std::pair<int, int> GetTowerNWEtaPhi(int ieta, int iphi); 
00083   std::pair<int, int> GetTowerNEEtaPhi(int ieta, int iphi); 
00084   std::pair<int, int> GetTowerSWEtaPhi(int ieta, int iphi); 
00085   std::pair<int, int> GetTowerSEEtaPhi(int ieta, int iphi); 
00086 
00087  private:
00088   static FastL1RegionMap* theInstance;
00089 
00090   int nTower;
00091   int nRegion;
00092 
00093 
00094 };
00095 
00096 #endif