19 #include "Reflex/Type.h"
20 #include "Reflex/Object.h"
27 using namespace fwlite;
43 tree_->SetDirectory(iFile);
75 const char*
label = iLabel;
80 std::string(iLabel)));
88 std::string
className = t.Name(ROOT::Reflex::SCOPED|ROOT::Reflex::FINAL);
91 ROOT::Reflex::Object
o(t,const_cast<void*>(iData));
94 std::string trueClassName = trueType.Name(ROOT::Reflex::SCOPED|ROOT::Reflex::FINAL);
97 trueClassName.c_str(),
101 std::string(iLabel)));
104 ROOT::Reflex::Object
o(t,const_cast<void*>(iData));
106 assert(
edm::TypeIDBase(trueType.TypeInfo())==itFound->second.trueType_);
107 itFound->second.branch_->SetAddress(&(itFound->second.pBuffer_));
108 itFound->second.pBuffer_ = iData;
117 if(0==it->second.pBuffer_) {
118 throw cms::Exception(
"MissingESData")<<
"The EventSetup data "<<it->first.first.name()<<
" '"<<it->first.second<<
"' was not supplied";
126 it->second.pBuffer_=0;
edm::TypeIDBase trueType_
edm::ESRecordAuxiliary aux_
std::string format_type_to_mangled(const std::string &)
given a C++ class name returned a mangled name
edm::ESRecordAuxiliary * pAux_
void fill(const edm::ESRecordAuxiliary &)
std::map< std::pair< edm::TypeIDBase, std::string >, DataBuffer > idToBuffer_
void update(const void *iData, const std::type_info &iType, const char *iLabel)
std::string className(const T &t)
RecordWriter(const char *iName, TFile *iFile)