CMS 3D CMS Logo

XMLIdealGeometryESSource Class Reference

#include <GeometryReaders/XMLIdealGeometryESSource/interface/XMLIdealGeometryESSource.h>

Inheritance diagram for XMLIdealGeometryESSource:

edm::ESProducer edm::EventSetupRecordIntervalFinder edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Member Functions

std::auto_ptr< DDCompactViewproduce ()
std::auto_ptr< DDCompactViewproduceGeom (const IdealGeometryRecord &)
std::auto_ptr< DDCompactViewproduceMagField (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 XMLIdealGeometryESSourceoperator= (const XMLIdealGeometryESSource &)
 XMLIdealGeometryESSource (const XMLIdealGeometryESSource &)

Private Attributes

std::string rootNodeName_


Detailed Description

Definition at line 15 of file XMLIdealGeometryESSource.h.


Constructor & Destructor Documentation

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]


Member Function Documentation

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 }


Member Data Documentation

std::string XMLIdealGeometryESSource::rootNodeName_ [private]

Definition at line 30 of file XMLIdealGeometryESSource.h.

Referenced by produce(), and XMLIdealGeometryESSource().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:35:55 2009 for CMSSW by  doxygen 1.5.4