#include <GeometryReaders/XMLIdealGeometryESSource/interface/XMLIdealGeometryESSource.h>
Public Member Functions | |
std::auto_ptr< DDCompactView > | produce () |
std::auto_ptr< DDCompactView > | produceGeom (const IdealGeometryRecord &) |
std::auto_ptr< DDCompactView > | produceMagField (const IdealMagneticFieldRecord &) |
XMLIdealGeometryESSource (const edm::ParameterSet &p) | |
virtual | ~XMLIdealGeometryESSource () |
Protected Member Functions | |
virtual void | setIntervalFor (const edm::eventsetup::EventSetupRecordKey &, const edm::IOVSyncValue &, edm::ValidityInterval &) |
Private Member Functions | |
const XMLIdealGeometryESSource & | operator= (const XMLIdealGeometryESSource &) |
XMLIdealGeometryESSource (const XMLIdealGeometryESSource &) | |
Private Attributes | |
std::string | rootNodeName_ |
Definition at line 15 of file XMLIdealGeometryESSource.h.
XMLIdealGeometryESSource::XMLIdealGeometryESSource | ( | const edm::ParameterSet & | p | ) |
Definition at line 15 of file XMLIdealGeometryESSource.cc.
References edm::ParameterSet::getParameter(), DDLParser::instance(), DDI::Singleton< I >::instance(), DDLParser::parse(), indexGen::parser, produceGeom(), produceMagField(), rootNodeName_, and edm::ESProducer::setWhatProduced().
00015 : rootNodeName_(p.getParameter<std::string>("rootNodeName")) 00016 { 00017 DDLParser * parser = DDLParser::instance(); 00018 GeometryConfiguration cf(p); 00019 if ( rootNodeName_ == "" || rootNodeName_ == "\\" ) { 00020 throw DDException ("XMLIdealGeometryESSource must have a root node name."); 00021 } 00022 00023 DDRootDef::instance().set(DDName(rootNodeName_)); 00024 00025 int result2 = parser->parse(cf); 00026 00027 if (result2 != 0) throw DDException("DDD-Parser: parsing failed!"); 00028 00029 if ( !bool(DDLogicalPart( DDName(rootNodeName_) )) ) { 00030 throw DDException ("XMLIdealGeometryESSource was given a non-existent node name for the root. " + rootNodeName_ ); 00031 } 00032 if ( rootNodeName_ == "MagneticFieldVolumes:MAGF" || rootNodeName_ == "cmsMagneticField:MAGF") { 00033 setWhatProduced(this, &XMLIdealGeometryESSource::produceMagField, 00034 edm::es::Label(p.getParameter<std::string>("@module_label"))); 00035 findingRecord<IdealMagneticFieldRecord>(); 00036 } else { 00037 setWhatProduced(this, &XMLIdealGeometryESSource::produceGeom); 00038 findingRecord<IdealGeometryRecord>(); 00039 } 00040 //use the label specified in the configuration file as the 00041 // label client code must use to get the DDCompactView 00042 // if(""==p.getParameter<std::string>("@module_label")){ 00043 // setWhatProduced(this); 00044 // }else { 00045 // setWhatProduced(this,p.getParameter<std::string>("@module_label")); 00046 // } 00047 // findingRecord<IdealGeometryRecord>(); 00048 }
XMLIdealGeometryESSource::~XMLIdealGeometryESSource | ( | ) | [virtual] |
Definition at line 50 of file XMLIdealGeometryESSource.cc.
References DDCompactView::clear().
00050 { 00051 DDCompactView cpv; 00052 cpv.clear(); 00053 }
XMLIdealGeometryESSource::XMLIdealGeometryESSource | ( | const XMLIdealGeometryESSource & | ) | [private] |
const XMLIdealGeometryESSource& XMLIdealGeometryESSource::operator= | ( | const XMLIdealGeometryESSource & | ) | [private] |
std::auto_ptr< DDCompactView > XMLIdealGeometryESSource::produce | ( | ) |
Definition at line 69 of file XMLIdealGeometryESSource.cc.
References Exception, DDCompactView::graph(), DDBase< N, C >::isValid(), and rootNodeName_.
Referenced by produceGeom(), and produceMagField().
00069 { 00070 //std::cout <<"got in produce"<<std::endl; 00071 DDName ddName(rootNodeName_); 00072 //std::cout <<"ddName \""<<ddName<<"\""<<std::endl; 00073 DDLogicalPart rootNode(ddName); 00074 //std::cout <<"made the DDLogicalPart"<<std::endl; 00075 if(! rootNode.isValid()){ 00076 throw cms::Exception("Geometry")<<"There is no valid node named \"" 00077 <<rootNodeName_<<"\""; 00078 } 00079 std::auto_ptr<DDCompactView> returnValue(new DDCompactView(rootNode)); 00080 00081 // NOTE TO SELF: Mike, DO NOT try to fix the memory leak here by going global again!!! 00082 //copy the graph from the global one 00083 DDCompactView globalOne; 00084 returnValue->writeableGraph() = globalOne.graph(); 00085 //std::cout <<"made the view"<<std::endl; 00086 return returnValue; 00087 }
std::auto_ptr< DDCompactView > XMLIdealGeometryESSource::produceGeom | ( | const IdealGeometryRecord & | ) |
Definition at line 56 of file XMLIdealGeometryESSource.cc.
References produce().
Referenced by XMLIdealGeometryESSource().
00057 { 00058 return produce(); 00059 }
std::auto_ptr< DDCompactView > XMLIdealGeometryESSource::produceMagField | ( | const IdealMagneticFieldRecord & | ) |
Definition at line 62 of file XMLIdealGeometryESSource.cc.
References produce().
Referenced by XMLIdealGeometryESSource().
00063 { 00064 return produce(); 00065 }
void XMLIdealGeometryESSource::setIntervalFor | ( | const edm::eventsetup::EventSetupRecordKey & | , | |
const edm::IOVSyncValue & | iosv, | |||
edm::ValidityInterval & | oValidity | |||
) | [protected, virtual] |
Implements edm::EventSetupRecordIntervalFinder.
Definition at line 89 of file XMLIdealGeometryESSource.cc.
References edm::IOVSyncValue::beginOfTime(), edm::IOVSyncValue::endOfTime(), and infinity.
00092 { 00093 edm::ValidityInterval infinity(iosv.beginOfTime(), iosv.endOfTime()); 00094 oValidity = infinity; 00095 }
std::string XMLIdealGeometryESSource::rootNodeName_ [private] |
Definition at line 30 of file XMLIdealGeometryESSource.h.
Referenced by produce(), and XMLIdealGeometryESSource().