CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
edm::root::FWLiteDelayedReader Class Reference
Inheritance diagram for edm::root::FWLiteDelayedReader:
edm::DelayedReader

Public Member Functions

 FWLiteDelayedReader ()
 
void set (boost::shared_ptr< ProductRegistry const > iReg)
 
void setEntry (Long64_t iEntry)
 
void setTree (TTree *iTree)
 
- Public Member Functions inherited from edm::DelayedReader
WrapperOwningHolder getProduct (BranchKey const &k, WrapperInterfaceBase const *interface, EDProductGetter const *ep)
 
void mergeReaders (DelayedReader *other)
 
void reset ()
 
virtual ~DelayedReader ()
 

Private Member Functions

 boost::shared_ptr (reg_)
 
virtual WrapperOwningHolder getProduct_ (BranchKey const &k, WrapperInterfaceBase const *interface, EDProductGetter const *ep) const
 
virtual std::auto_ptr
< EventEntryDescription
getProvenance_ (BranchKey const &) const
 
virtual void mergeReaders_ (DelayedReader *)
 
virtual void reset_ ()
 

Private Attributes

Long64_t entry_
 
TTree * eventTree_
 

Detailed Description

Definition at line 57 of file TFWLiteSelectorBasic.cc.

Constructor & Destructor Documentation

edm::root::FWLiteDelayedReader::FWLiteDelayedReader ( )
inline

Definition at line 59 of file TFWLiteSelectorBasic.cc.

Member Function Documentation

edm::root::FWLiteDelayedReader::boost::shared_ptr ( reg_  )
private
WrapperOwningHolder edm::root::FWLiteDelayedReader::getProduct_ ( BranchKey const &  k,
WrapperInterfaceBase const *  interface,
EDProductGetter const *  ep 
) const
privatevirtual

Implements edm::DelayedReader.

Definition at line 76 of file TFWLiteSelectorBasic.cc.

References edm::BranchDescription::branchName(), edm::BranchDescription::className(), entry_, eventTree_, edm::hlt::Exception, newFWLiteAna::fullName, edm::BranchDescription::getInterface(), gen::k, edm::errors::ProductNotFound, and edm::wrappedClassName().

76  {
77  ProductRegistry::ProductList::const_iterator itFind= reg_->productList().find(k);
78  if(itFind == reg_->productList().end()) {
79  throw Exception(errors::ProductNotFound) << "could not find entry for product " << k;
80  }
81  BranchDescription const& bDesc = itFind->second;
82 
83  TBranch* branch= eventTree_->GetBranch(bDesc.branchName().c_str());
84  if(0 == branch) {
85  throw cms::Exception("MissingBranch")
86  << "could not find branch named '" << bDesc.branchName() << "'"
87  << "\n Perhaps the data being requested was not saved in this file?";
88  }
89  //find the class type
90  std::string const fullName = wrappedClassName(bDesc.className());
91  Reflex::Type classType = Reflex::Type::ByName(fullName);
92  if(classType == Reflex::Type()) {
93  throw cms::Exception("MissingDictionary")
94  << "could not find dictionary for type '" << fullName << "'"
95  << "\n Please make sure all the necessary libraries are available.";
96  }
97 
98  //use reflex to create an instance of it
99  Reflex::Object wrapperObj = classType.Construct();
100  if(0 == wrapperObj.Address()) {
101  throw cms::Exception("FailedToCreate") << "could not create an instance of '" << fullName << "'";
102  }
103  void* address = wrapperObj.Address();
104  branch->SetAddress(&address);
105 
106 
107  branch->GetEntry(entry_);
108  return WrapperOwningHolder(address, bDesc.getInterface());
109  }
char * address
Definition: mlp_lapack.h:14
int k[5][pyjets_maxn]
string fullName
std::string wrappedClassName(std::string const &iFullName)
virtual std::auto_ptr<EventEntryDescription> edm::root::FWLiteDelayedReader::getProvenance_ ( BranchKey const &  ) const
inlineprivatevirtual

Definition at line 65 of file TFWLiteSelectorBasic.cc.

65  {
66  return std::auto_ptr<EventEntryDescription>();
67  }
virtual void edm::root::FWLiteDelayedReader::mergeReaders_ ( DelayedReader )
inlineprivatevirtual

Implements edm::DelayedReader.

Definition at line 68 of file TFWLiteSelectorBasic.cc.

68 {}
virtual void edm::root::FWLiteDelayedReader::reset_ ( )
inlineprivatevirtual

Implements edm::DelayedReader.

Definition at line 69 of file TFWLiteSelectorBasic.cc.

69 {}
void edm::root::FWLiteDelayedReader::set ( boost::shared_ptr< ProductRegistry const >  iReg)
inline

Definition at line 62 of file TFWLiteSelectorBasic.cc.

Referenced by betterConfigParser.BetterConfigParser::getGeneral().

62 { reg_ = iReg;}
void edm::root::FWLiteDelayedReader::setEntry ( Long64_t  iEntry)
inline

Definition at line 60 of file TFWLiteSelectorBasic.cc.

References entry_.

60 { entry_ = iEntry; }
void edm::root::FWLiteDelayedReader::setTree ( TTree *  iTree)
inline

Definition at line 61 of file TFWLiteSelectorBasic.cc.

References eventTree_.

Member Data Documentation

Long64_t edm::root::FWLiteDelayedReader::entry_
private

Definition at line 70 of file TFWLiteSelectorBasic.cc.

Referenced by getProduct_(), and setEntry().

TTree* edm::root::FWLiteDelayedReader::eventTree_
private

Definition at line 71 of file TFWLiteSelectorBasic.cc.

Referenced by getProduct_(), and setTree().