CMS 3D CMS Logo

Public Types | Public Member Functions | Private Attributes

XMLIdealGeometryESProducer Class Reference

Inheritance diagram for XMLIdealGeometryESProducer:
edm::ESProducer edm::ESProxyFactoryProducer edm::eventsetup::DataProxyProvider

List of all members.

Public Types

typedef std::auto_ptr
< DDCompactView
ReturnType

Public Member Functions

ReturnType produce (const IdealGeometryRecord &)
 XMLIdealGeometryESProducer (const edm::ParameterSet &)
 ~XMLIdealGeometryESProducer ()

Private Attributes

std::string label_
DDI::Store< DDName,
DDI::LogicalPart * > 
lpStore_
DDI::Store< DDName,
DDI::Material * > 
matStore_
std::string rootDDName_
DDI::Store< DDName,
DDRotationMatrix * > 
rotStore_
DDI::Store< DDName, DDI::Solid * > solidStore_
DDI::Store< DDName,
DDI::Specific * > 
specStore_

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 51 of file XMLIdealGeometryESProducer.cc.


Member Typedef Documentation

Definition at line 56 of file XMLIdealGeometryESProducer.cc.


Constructor & Destructor Documentation

XMLIdealGeometryESProducer::XMLIdealGeometryESProducer ( const edm::ParameterSet iConfig)

Definition at line 83 of file XMLIdealGeometryESProducer.cc.

References edm::ESProducer::setWhatProduced().

  :   rootDDName_(iConfig.getParameter<std::string>("rootDDName")),
      label_(iConfig.getParameter<std::string>("label"))
{
   //the following line is needed to tell the framework what
   // data is being produced
   setWhatProduced(this);
   //now do what ever other initialization is needed
}
XMLIdealGeometryESProducer::~XMLIdealGeometryESProducer ( )

Definition at line 94 of file XMLIdealGeometryESProducer.cc.

{
 
   // do anything here that needs to be done at desctruction time
   // (e.g. close files, deallocate resources etc.)

}

Member Function Documentation

XMLIdealGeometryESProducer::ReturnType XMLIdealGeometryESProducer::produce ( const IdealGeometryRecord iRecord)

Definition at line 109 of file XMLIdealGeometryESProducer.cc.

References DDLParser::clearFiles(), DDLParser::getDDLSAX2FileHandler(), edm::eventsetup::DependentRecordImplementation< RecordT, ListT >::getRecord(), DDI::Singleton< I >::instance(), label_, DDLParser::parse(), geometryXMLtoCSV::parser, rootDDName_, and DDLSAX2Handler::setUserNS().

{
   using namespace edm::es;

   edm::ESTransientHandle<FileBlob> gdd;
   iRecord.getRecord<GeometryFileRcd>().get( label_, gdd );
//    if ( gdd.isValid() ) {
//      std::cout << "gdd.isValid()" << std::endl; 
//      if (gdd.product() != 0) {
//        std::cout << "object address is not zero" << std::endl;
//      } else {
//        std::cout << "object address is zero" << std::endl;
//      }
//    } else {
//      std::cout << "gdd is NOT valid" << std::endl;
//    }
   DDName ddName(rootDDName_);
   DDLogicalPart rootNode(ddName);
   DDRootDef::instance().set(rootNode);
   ReturnType returnValue(new DDCompactView(rootNode));
   DDLParser parser(*returnValue);
   parser.getDDLSAX2FileHandler()->setUserNS(true);
   parser.clearFiles();
   
   std::vector<unsigned char>* tb = (*gdd).getUncompressedBlob();
   
   parser.parse(*tb, tb->size()); 
   
   delete tb;
   
   //std::cout << "In XMLIdealGeometryESProducer::produce" << std::endl;
   returnValue->lockdown();

   return returnValue ;
}

Member Data Documentation

std::string XMLIdealGeometryESProducer::label_ [private]

Definition at line 62 of file XMLIdealGeometryESProducer.cc.

Referenced by produce().

Definition at line 67 of file XMLIdealGeometryESProducer.cc.

Definition at line 65 of file XMLIdealGeometryESProducer.cc.

Definition at line 61 of file XMLIdealGeometryESProducer.cc.

Referenced by produce().

Definition at line 69 of file XMLIdealGeometryESProducer.cc.

Definition at line 66 of file XMLIdealGeometryESProducer.cc.

Definition at line 68 of file XMLIdealGeometryESProducer.cc.