#include <RootDelayedReader.h>
Public Types | |
typedef roottree::BranchInfo | BranchInfo |
typedef roottree::BranchMap | BranchMap |
typedef roottree::EntryNumber | EntryNumber |
typedef roottree::BranchMap::const_iterator | iterator |
Public Member Functions | |
RootDelayedReader & | operator= (RootDelayedReader const &) |
RootDelayedReader (RootTree const &tree, boost::shared_ptr< InputFile > filePtr) | |
RootDelayedReader (RootDelayedReader const &) | |
virtual | ~RootDelayedReader () |
Private Member Functions | |
BranchMap const & | branches () const |
iterator | branchIter (BranchKey const &k) const |
EntryNumber const & | entryNumber () const |
bool | found (iterator const &iter) const |
BranchInfo const & | getBranchInfo (iterator const &iter) const |
virtual WrapperOwningHolder | getProduct_ (BranchKey const &k, WrapperInterfaceBase const *interface, EDProductGetter const *ep) const |
virtual void | mergeReaders_ (DelayedReader *other) |
virtual void | reset_ () |
Private Attributes | |
boost::shared_ptr< InputFile > | filePtr_ |
DelayedReader * | nextReader_ |
RootTree const & | tree_ |
Definition at line 26 of file RootDelayedReader.h.
Definition at line 28 of file RootDelayedReader.h.
Definition at line 29 of file RootDelayedReader.h.
Definition at line 31 of file RootDelayedReader.h.
typedef roottree::BranchMap::const_iterator edm::RootDelayedReader::iterator |
Definition at line 30 of file RootDelayedReader.h.
data refman pasoursint CMSSW_6_1_2_SLHC2 src IOPool Input src RootDelayedReader cc edm::RootDelayedReader::RootDelayedReader | ( | RootTree const & | tree, |
boost::shared_ptr< InputFile > | filePtr | ||
) |
Definition at line 16 of file RootDelayedReader.cc.
: tree_(tree), filePtr_(filePtr), nextReader_() { }
edm::RootDelayedReader::~RootDelayedReader | ( | ) | [virtual] |
Definition at line 24 of file RootDelayedReader.cc.
edm::RootDelayedReader::RootDelayedReader | ( | RootDelayedReader const & | ) |
BranchMap const& edm::RootDelayedReader::branches | ( | ) | const [inline, private] |
Definition at line 45 of file RootDelayedReader.h.
References edm::RootTree::branches(), and tree_.
Referenced by branchIter(), and found().
{return tree_.branches();}
Definition at line 47 of file RootDelayedReader.h.
References branches().
EntryNumber const& edm::RootDelayedReader::entryNumber | ( | ) | const [inline, private] |
Definition at line 46 of file RootDelayedReader.h.
References edm::RootTree::entryNumber(), and tree_.
{return tree_.entryNumber();}
bool edm::RootDelayedReader::found | ( | iterator const & | iter | ) | const [inline, private] |
Definition at line 48 of file RootDelayedReader.h.
References branches().
{return iter != branches().end();}
BranchInfo const& edm::RootDelayedReader::getBranchInfo | ( | iterator const & | iter | ) | const [inline, private] |
Definition at line 49 of file RootDelayedReader.h.
{return iter->second; }
WrapperOwningHolder edm::RootDelayedReader::getProduct_ | ( | BranchKey const & | k, |
WrapperInterfaceBase const * | interface, | ||
EDProductGetter const * | ep | ||
) | const [private, virtual] |
Implements edm::DelayedReader.
Definition at line 28 of file RootDelayedReader.cc.
{ if (nextReader_) { return nextReader_->getProduct(k, interface, ep); } else { return WrapperOwningHolder(); } } roottree::BranchInfo const& branchInfo = getBranchInfo(iter); TBranch* br = branchInfo.productBranch_; if (br == 0) { if (nextReader_) { return nextReader_->getProduct(k, interface, ep); } else { return WrapperOwningHolder(); } } setRefCoreStreamer(ep); TClass* cp = branchInfo.classCache_; if(0 == cp) { branchInfo.classCache_ = gROOT->GetClass(branchInfo.branchDescription_.wrappedName().c_str()); cp = branchInfo.classCache_; } void* p = cp->New(); br->SetAddress(&p); tree_.getEntry(br, entryNumber()); if(tree_.branchType() == InEvent) { InputFile::reportReadBranch(std::string(br->GetName())); } setRefCoreStreamer(false); WrapperOwningHolder edp(p, interface); return edp; } }
virtual void edm::RootDelayedReader::mergeReaders_ | ( | DelayedReader * | other | ) | [inline, private, virtual] |
Implements edm::DelayedReader.
Definition at line 43 of file RootDelayedReader.h.
References nextReader_.
{nextReader_ = other;}
RootDelayedReader& edm::RootDelayedReader::operator= | ( | RootDelayedReader const & | ) |
virtual void edm::RootDelayedReader::reset_ | ( | ) | [inline, private, virtual] |
Implements edm::DelayedReader.
Definition at line 44 of file RootDelayedReader.h.
References nextReader_.
{nextReader_ = 0;}
boost::shared_ptr<InputFile> edm::RootDelayedReader::filePtr_ [private] |
Definition at line 53 of file RootDelayedReader.h.
DelayedReader* edm::RootDelayedReader::nextReader_ [private] |
Definition at line 54 of file RootDelayedReader.h.
Referenced by mergeReaders_(), and reset_().
RootTree const& edm::RootDelayedReader::tree_ [private] |
Definition at line 52 of file RootDelayedReader.h.
Referenced by branches(), and entryNumber().