00001 00010 #ifndef __CINT__ 00011 #ifndef InvRingCalib_H 00012 #define InvRingCalib_H 00013 #include "Calibration/EcalCalibAlgos/interface/VEcalCalibBlock.h" 00014 #include "FWCore/Framework/interface/EDLooper.h" 00015 #include "FWCore/Framework/interface/Event.h" 00016 #include "DataFormats/GeometryVector/interface/GlobalPoint.h" 00017 #include "DataFormats/DetId/interface/DetId.h" 00018 #include "FWCore/Framework/interface/EventSetup.h" 00019 #include "CondFormats/EcalObjects/interface/EcalIntercalibConstants.h" 00020 00021 #include <string> 00022 #include <vector> 00023 //#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" 00024 #include "DataFormats/CaloRecHit/interface/CaloRecHit.h" 00025 00026 #include "Calibration/EcalCalibAlgos/interface/VFillMap.h" 00027 00028 00029 class InvRingCalib : public edm::EDLooper { 00030 public: 00031 00033 explicit InvRingCalib(const edm::ParameterSet&); 00035 ~InvRingCalib(); 00036 void beginOfJob() ; 00037 void endOfJob(); 00038 void startingNewLoop(unsigned int) ; 00039 Status duringLoop(const edm::Event&, const edm::EventSetup&) ; 00040 Status endOfLoop(const edm::EventSetup&,unsigned int iCounter) ; 00041 00042 //end 00043 00044 private: 00045 00047 inline int EERegionNum () const ; 00049 int EBRegionNum () const ; 00051 void EBRegionDef () ; 00053 void EERingDef (const edm::EventSetup&); 00055 void EERegionDef (); 00057 void RegPrepare (); 00059 int EBRegId(const int) ; 00061 int EERegId ( int) ; 00062 00064 VFillMap * m_MapFiller; 00065 00066 private: 00068 edm::InputTag m_barrelAlCa ; 00070 edm::InputTag m_endcapAlCa ; 00072 edm::InputTag m_ElectronLabel ; 00074 int m_recoWindowSidex ; 00075 int m_recoWindowSidey ; 00077 double m_minEnergyPerCrystal ; 00079 double m_maxEnergyPerCrystal ; 00081 int m_etaStart ; 00083 int m_etaEnd ; 00085 int m_etaWidth ; 00086 // std::map<int,float> m_eta; 00088 int m_maxSelectedNumPerRing ; 00090 std::map<int,int> m_RingNumOfHits; 00092 std::vector<VEcalCalibBlock *> m_IMACalibBlocks ; 00094 double m_minCoeff ; 00096 double m_maxCoeff ; 00098 int m_usingBlockSolver ; 00100 std::map<int,GlobalPoint> m_cellPos; 00101 std::map<int,int> m_cellPhi; 00104 EcalIntercalibConstantMap m_barrelMap; 00105 EcalIntercalibConstantMap m_endcapMap; 00107 unsigned int m_loops ; 00109 int m_startRing; 00110 int m_endRing; 00112 std::map<int,int> m_xtalRing; 00114 std::map<int,int> m_xtalRegionId; 00116 std::map<int,int> m_RinginRegion; 00117 00119 std::vector<DetId> m_barrelCells; 00120 std::vector<DetId> m_endcapCells; 00122 std::string m_EBcoeffFile; 00123 std::string m_EEcoeffFile; 00125 int m_EEZone; 00127 std::map<int,int> m_Reg; 00128 std::string m_mapFillerType; 00129 bool isfirstcall_; 00130 }; 00131 #endif 00132 #endif