CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

edm::ReducedProvenanceReader Class Reference

Inheritance diagram for edm::ReducedProvenanceReader:
edm::ProvenanceReaderBase

List of all members.

Public Member Functions

 ReducedProvenanceReader (RootTree *iRootTree, std::vector< ParentageID > const &iParentageIDLookup, DaqProvenanceHelper const *daqProvenanceHelper)

Private Member Functions

virtual void readProvenance (BranchMapper const &mapper) const

Private Attributes

DaqProvenanceHelper const * daqProvenanceHelper_
std::vector< ParentageID > const & parentageIDLookup_
StoredProductProvenanceVectorpProvVector_
TBranch * provBranch_
StoredProductProvenanceVector provVector_
RootTreerootTree_

Detailed Description

Definition at line 1771 of file RootFile.cc.


Constructor & Destructor Documentation

edm::ReducedProvenanceReader::ReducedProvenanceReader ( RootTree iRootTree,
std::vector< ParentageID > const &  iParentageIDLookup,
DaqProvenanceHelper const *  daqProvenanceHelper 
)

Definition at line 1784 of file RootFile.cc.

References edm::RootTree::branchType(), edm::BranchTypeToProductProvenanceBranchName(), provBranch_, rootTree_, and edm::RootTree::tree().

                                                                                              :
      ProvenanceReaderBase(),
      rootTree_(iRootTree),
      pProvVector_(&provVector_),
      parentageIDLookup_(iParentageIDLookup),
      daqProvenanceHelper_(daqProvenanceHelper) {
    provBranch_ = rootTree_->tree()->GetBranch(BranchTypeToProductProvenanceBranchName(rootTree_->branchType()).c_str());
  }

  void
  ReducedProvenanceReader::readProvenance(BranchMapper const& mapper) const {

Member Function Documentation

void edm::ReducedProvenanceReader::readProvenance ( BranchMapper const &  mapper) const [private, virtual]

Implements edm::ProvenanceReaderBase.

Definition at line 1797 of file RootFile.cc.

                             {
      for(StoredProductProvenanceVector::const_iterator it = provVector_.begin(), itEnd = provVector_.end();
           it != itEnd; ++it) {
        BranchID bid(it->branchID_);
        mapper.insertIntoSet(ProductProvenance(daqProvenanceHelper_->mapBranchID(BranchID(it->branchID_)),
                                               daqProvenanceHelper_->mapParentageID(parentageIDLookup_[it->parentageIDIndex_])));
      }
    } else {
      for(StoredProductProvenanceVector::const_iterator it = provVector_.begin(), itEnd = provVector_.end();
           it != itEnd; ++it) {
        if(it->parentageIDIndex_ >= parentageIDLookup_.size()) {
          throw edm::Exception(errors::LogicError)
            << "ReducedProvenanceReader::ReadProvenance\n"
            << "The parentage ID index value " << it->parentageIDIndex_ << " is out of bounds.  The maximum value is " << parentageIDLookup_.size()-1 << ".\n"
            << "This should never happen.\n"
            << "Please report this to the framework hypernews forum 'hn-cms-edmFramework@cern.ch'.\n";
        }
        mapper.insertIntoSet(ProductProvenance(BranchID(it->branchID_), parentageIDLookup_[it->parentageIDIndex_]));
      }
    }
  }

  class FullProvenanceReader : public ProvenanceReaderBase {
  public:

Member Data Documentation

Definition at line 1781 of file RootFile.cc.

Definition at line 1780 of file RootFile.cc.

Definition at line 1779 of file RootFile.cc.

Definition at line 1777 of file RootFile.cc.

Referenced by ReducedProvenanceReader().

Definition at line 1778 of file RootFile.cc.

Definition at line 1776 of file RootFile.cc.

Referenced by ReducedProvenanceReader().