Go to the documentation of this file.00001 #ifndef _CALO_MISCALIB_MAP_HCAL
00002 #define _CALO_MISCALIB_MAP_HCAL
00003 #include "CalibCalorimetry/CaloMiscalibTools/interface/CaloMiscalibMap.h"
00004 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h"
00005 #include "Geometry/Records/interface/IdealGeometryRecord.h"
00006 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00007 #include "FWCore/Framework/interface/EDProducer.h"
00008 #include "DataFormats/HcalDetId/interface/HcalDetId.h"
00009 #include "Geometry/CaloTopology/interface/HcalTopology.h"
00010
00011 #include <iostream>
00012 #include <iomanip>
00013 #include <map>
00014 #include <vector>
00015
00016
00017
00018 class CaloMiscalibMapHcal: public CaloMiscalibMap {
00019 public:
00020 CaloMiscalibMapHcal(){
00021 }
00022
00023 void prefillMap(){
00024
00025 for (int det = 1; det < 5; det++) {
00026 for (int eta = -63; eta < 64; eta++) {
00027 for (int phi = 0; phi < 128; phi++) {
00028 for (int depth = 1; depth < 5; depth++) {
00029
00030 try {
00031 HcalDetId hcaldetid ((HcalSubdetector) det, eta, phi, depth);
00032 if (topology.valid(hcaldetid))
00033
00034 {
00035 mapHcal_[hcaldetid.rawId()]=1.0;
00036
00037 }
00038
00039 }
00040 catch (...) {
00041 }
00042 }
00043 }
00044 }
00045 }
00046 }
00047
00048
00049 virtual void addCell(const DetId &cell, float scaling_factor)
00050 {
00051
00052 mapHcal_[cell.rawId()]=scaling_factor;
00053 }
00054
00055 void print()
00056 {
00057
00058 std::map<uint32_t,float>::const_iterator it;
00059
00060
00061
00062 for(it=mapHcal_.begin();it!=mapHcal_.end();it++){
00063 }
00064
00065 }
00066
00067 const std::map<uint32_t, float> & get(){
00068 return mapHcal_;
00069 }
00070
00071 private:
00072
00073 std::map<uint32_t, float> mapHcal_;
00074 HcalTopology topology;
00075
00076
00077 };
00078
00079 #endif