![]() |
![]() |
00001 #include "Geometry/ForwardGeometry/plugins/CastorHardcodeGeometryEP.h" 00002 #include "FWCore/MessageLogger/interface/MessageLogger.h" 00003 00004 00005 CastorHardcodeGeometryEP::CastorHardcodeGeometryEP(const edm::ParameterSet& iConfig) 00006 { 00007 //the following line is needed to tell the framework what 00008 // data is being produced 00009 setWhatProduced(this,"CASTOR"); 00010 loader_=0; 00011 } 00012 00013 00014 CastorHardcodeGeometryEP::~CastorHardcodeGeometryEP() 00015 { 00016 if (loader_) delete loader_; 00017 } 00018 00019 00020 // 00021 // member functions 00022 // 00023 00024 // ------------ method called to produce the data ------------ 00025 CastorHardcodeGeometryEP::ReturnType 00026 CastorHardcodeGeometryEP::produce(const IdealGeometryRecord& iRecord) 00027 { 00028 //using namespace edm::es; 00029 if (loader_==0) { 00030 edm::ESHandle<CastorTopology> topo; 00031 try { 00032 iRecord.get(topo); 00033 loader_=new CastorHardcodeGeometryLoader(*topo); 00034 } catch (...) { 00035 loader_=new CastorHardcodeGeometryLoader(); 00036 edm::LogInfo("CASTOR") << "Using default Castor topology"; 00037 } 00038 } 00039 std::auto_ptr<CaloSubdetectorGeometry> pCaloSubdetectorGeometry(loader_->load()) ; 00040 00041 return pCaloSubdetectorGeometry ; 00042 } 00043 00044