Public Member Functions | |
virtual edm::BranchListIndexes const & | branchListIndexes () const |
BranchMapReaderStrategyV17 (TFile *file, int fileVersion) | |
virtual edm::BranchID | productToBranchID (edm::ProductID const &pid) |
virtual bool | updateEvent (Long_t eventEntry) |
virtual bool | updateFile (TFile *file) |
virtual bool | updateLuminosityBlock (Long_t luminosityBlockEntry) |
virtual bool | updateMap () |
virtual bool | updateRun (Long_t runEntry) |
Private Attributes | |
std::auto_ptr< edm::BranchIDLists > | branchIDLists_ |
edm::BranchListIndexes | branchListIndexes_ |
TTree * | eventsTree_ |
edm::BranchListIndexes * | pBranchListIndexes_ |
Definition at line 414 of file BranchMapReader.cc.
fwlite::internal::BranchMapReaderStrategyV17::BranchMapReaderStrategyV17 | ( | TFile * | file, |
int | fileVersion | ||
) |
Definition at line 431 of file BranchMapReader.cc.
References updateFile().
: Strategy(file, fileVersion), eventsTree_(0), pBranchListIndexes_(&branchListIndexes_) { updateFile(file); }
virtual edm::BranchListIndexes const& fwlite::internal::BranchMapReaderStrategyV17::branchListIndexes | ( | ) | const [inline, virtual] |
Implements fwlite::internal::BMRStrategy.
Definition at line 423 of file BranchMapReader.cc.
References branchListIndexes_.
{return branchListIndexes_;}
edm::BranchID fwlite::internal::BranchMapReaderStrategyV17::productToBranchID | ( | edm::ProductID const & | pid | ) | [virtual] |
Reimplemented from fwlite::internal::Strategy.
Definition at line 522 of file BranchMapReader.cc.
References branchIDLists_, branchListIndexes_, edm::productIDToBranchID(), and updateMap().
{ updateMap(); return edm::productIDToBranchID(pid, *branchIDLists_, branchListIndexes_); }
bool fwlite::internal::BranchMapReaderStrategyV17::updateEvent | ( | Long_t | eventEntry | ) | [virtual] |
Reimplemented from fwlite::internal::Strategy.
Definition at line 436 of file BranchMapReader.cc.
References fwlite::internal::BMRStrategy::eventEntry_, and fwlite::internal::Strategy::mapperFilled_.
{ // std::cout << "v11 updateevent " << newevent << std::endl; if(newevent != eventEntry_) { eventEntry_ = newevent; mapperFilled_ = false; } return true; }
bool fwlite::internal::BranchMapReaderStrategyV17::updateFile | ( | TFile * | file | ) | [virtual] |
Reimplemented from fwlite::internal::Strategy.
Definition at line 461 of file BranchMapReader.cc.
References b, fwlite::internal::Strategy::bDesc_, beamvalidation::br, fwlite::internal::Strategy::branchDescriptionMap_, edm::poolNames::branchIDListBranchName(), branchIDLists_, fwlite::internal::BMRStrategy::currentFile_, edm::errors::EventCorruption, eventsTree_, edm::poolNames::eventTreeName(), Exception, fwlite::internal::Strategy::getBranchRegistry(), edm::InEvent, fwlite::internal::Strategy::mapperFilled_, edm::poolNames::metaDataTreeName(), and edm::ProductRegistry::productList().
Referenced by BranchMapReaderStrategyV17().
{ Strategy::updateFile(file); mapperFilled_ = false; TTree* metaDataTree = dynamic_cast<TTree*>(currentFile_->Get(edm::poolNames::metaDataTreeName().c_str())); if(0==metaDataTree) { throw edm::Exception(edm::errors::EventCorruption) <<"No "<<edm::poolNames::metaDataTreeName()<<" TTree in file"; } branchIDLists_.reset(new edm::BranchIDLists); edm::BranchIDLists* branchIDListsPtr = branchIDLists_.get(); if(metaDataTree->FindBranch(edm::poolNames::branchIDListBranchName().c_str()) != 0) { TBranch* b = metaDataTree->GetBranch(edm::poolNames::branchIDListBranchName().c_str()); b->SetAddress(&branchIDListsPtr); b->GetEntry(0); // std::cout << "--> " << branchIDLists_->size() << std::endl; } else { throw edm::Exception(edm::errors::EventCorruption) << "FindBranch of branchIDList failed"; return false; } eventsTree_ = dynamic_cast<TTree*>(currentFile_->Get(edm::poolNames::eventTreeName().c_str())); branchDescriptionMap_.clear(); bDesc_.clear(); edm::ProductRegistry reg; edm::ProductRegistry* pReg = ® TBranch *br = getBranchRegistry(&pReg); if(0 != br) { edm::ProductRegistry::ProductList const& prodList = reg.productList(); for(edm::ProductRegistry::ProductList::const_iterator it = prodList.begin(), itEnd = prodList.end(); it != itEnd; ++it) { if(edm::InEvent == it->second.branchType()) { // call to regenerate branchName it->second.init(); branchDescriptionMap_.insert(bidToDesc::value_type(it->second.branchID(), it->second)); // std::cout << "v11 updatefile " << it->second.branchID() << std::endl; } } } return 0 != br; }
bool fwlite::internal::BranchMapReaderStrategyV17::updateLuminosityBlock | ( | Long_t | luminosityBlockEntry | ) | [virtual] |
Reimplemented from fwlite::internal::Strategy.
Definition at line 445 of file BranchMapReader.cc.
References fwlite::internal::BMRStrategy::luminosityBlockEntry_, and fwlite::internal::Strategy::mapperFilled_.
{ if(newlumi != luminosityBlockEntry_) { luminosityBlockEntry_ = newlumi; mapperFilled_ = false; } return true; }
bool fwlite::internal::BranchMapReaderStrategyV17::updateMap | ( | ) | [virtual] |
Reimplemented from fwlite::internal::Strategy.
Definition at line 505 of file BranchMapReader.cc.
References edm::poolNames::branchListIndexesBranchName(), edm::errors::EventCorruption, fwlite::internal::BMRStrategy::eventEntry_, eventsTree_, Exception, fwlite::internal::Strategy::mapperFilled_, and pBranchListIndexes_.
Referenced by productToBranchID().
{ if(!mapperFilled_) { TBranch* branchListIndexesBranch = eventsTree_->GetBranch(edm::poolNames::branchListIndexesBranchName().c_str()); if(!branchListIndexesBranch) { throw edm::Exception(edm::errors::EventCorruption) << "Failed to find branch list indexes branch in event tree"; return false; } // yes, SetAddress really does need to be called every time... branchListIndexesBranch->SetAddress(&pBranchListIndexes_); branchListIndexesBranch->GetEntry(eventEntry_); mapperFilled_ = true; } return true; }
bool fwlite::internal::BranchMapReaderStrategyV17::updateRun | ( | Long_t | runEntry | ) | [virtual] |
Reimplemented from fwlite::internal::Strategy.
Definition at line 453 of file BranchMapReader.cc.
References fwlite::internal::Strategy::mapperFilled_, and fwlite::internal::BMRStrategy::runEntry_.
{ if(newRun != runEntry_) { runEntry_ = newRun; mapperFilled_ = false; } return true; }
std::auto_ptr<edm::BranchIDLists> fwlite::internal::BranchMapReaderStrategyV17::branchIDLists_ [private] |
Definition at line 425 of file BranchMapReader.cc.
Referenced by productToBranchID(), and updateFile().
Definition at line 427 of file BranchMapReader.cc.
Referenced by branchListIndexes(), and productToBranchID().
TTree* fwlite::internal::BranchMapReaderStrategyV17::eventsTree_ [private] |
Definition at line 426 of file BranchMapReader.cc.
Referenced by updateFile(), and updateMap().
Definition at line 428 of file BranchMapReader.cc.
Referenced by updateMap().