00001 #ifndef GEOMETRY_HCALEVENTSETUP_HCALHARDCODEGEOMETRYEP_H 00002 #define GEOMETRY_HCALEVENTSETUP_HCALHARDCODEGEOMETRYEP_H 1 00003 00004 00005 // system include files 00006 #include <memory> 00007 #include "boost/shared_ptr.hpp" 00008 00009 // user include files 00010 #include "FWCore/Framework/interface/ModuleFactory.h" 00011 #include "FWCore/Framework/interface/ESProducer.h" 00012 00013 #include "FWCore/Framework/interface/ESHandle.h" 00014 #include "Geometry/Records/interface/IdealGeometryRecord.h" 00015 #include "Geometry/Records/interface/HcalGeometryRecord.h" 00016 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00017 #include "Geometry/HcalTowerAlgo/interface/HcalHardcodeGeometryLoader.h" 00018 00019 // 00020 // class decleration 00021 // 00022 00023 class HcalHardcodeGeometryEP : public edm::ESProducer 00024 { 00025 public: 00026 HcalHardcodeGeometryEP(const edm::ParameterSet&); 00027 virtual ~HcalHardcodeGeometryEP(); 00028 00029 typedef boost::shared_ptr<CaloSubdetectorGeometry> ReturnType; 00030 00031 ReturnType produceIdeal( const IdealGeometryRecord&); 00032 ReturnType produceAligned( const HcalGeometryRecord& ); 00033 00034 void idealRecordCallBack( const IdealGeometryRecord& ); 00035 00036 private: 00037 // ----------member data --------------------------- 00038 00039 HcalHardcodeGeometryLoader* m_loader ; 00040 00041 bool m_applyAlignment ; 00042 }; 00043 00044 00045 00046 #endif