CMS 3D CMS Logo

Public Member Functions | Private Member Functions

fwlite::EventBase Class Reference

#include <EventBase.h>

Inheritance diagram for fwlite::EventBase:
edm::EventBase fwlite::ChainEvent fwlite::Event fwlite::EventContainer fwlite::MultiChainEvent

List of all members.

Public Member Functions

virtual bool atEnd () const =0
 EventBase ()
virtual Long64_t fileIndex () const
virtual const std::string getBranchNameFor (const std::type_info &, const char *, const char *, const char *) const =0
virtual bool getByLabel (const std::type_info &, const char *, const char *, const char *, void *) const =0
virtual const EventBaseoperator++ ()=0
virtual Long64_t secondaryFileIndex () const
virtual const EventBasetoBegin ()=0
virtual ~EventBase ()

Private Member Functions

virtual edm::BasicHandle getByLabelImpl (const std::type_info &, const std::type_info &, const edm::InputTag &) const

Detailed Description

Definition at line 32 of file EventBase.h.


Constructor & Destructor Documentation

EventBase::EventBase ( )

Reimplemented from edm::EventBase.

Definition at line 39 of file EventBase.cc.

   {
   }
EventBase::~EventBase ( ) [virtual]

Reimplemented from edm::EventBase.

Definition at line 43 of file EventBase.cc.

   {
   }

Member Function Documentation

virtual bool fwlite::EventBase::atEnd ( ) const [pure virtual]
virtual Long64_t fwlite::EventBase::fileIndex ( ) const [inline, virtual]

Reimplemented in fwlite::ChainEvent, fwlite::MultiChainEvent, and fwlite::EventContainer.

Definition at line 57 of file EventBase.h.

Referenced by fwlite::EventContainer::fileIndex().

{ return -1; }
virtual const std::string fwlite::EventBase::getBranchNameFor ( const std::type_info &  ,
const char *  ,
const char *  ,
const char *   
) const [pure virtual]
virtual bool fwlite::EventBase::getByLabel ( const std::type_info &  ,
const char *  ,
const char *  ,
const char *  ,
void *   
) const [pure virtual]
edm::BasicHandle EventBase::getByLabelImpl ( const std::type_info &  iWrapperInfo,
const std::type_info &  ,
const edm::InputTag iTag 
) const [private, virtual]

Implements edm::EventBase.

Definition at line 48 of file EventBase.cc.

References getByLabel(), edm::InputTag::instance(), edm::EDProduct::isPresent(), edm::InputTag::label(), edm::InputTag::process(), CrabTask::prod, edm::errors::ProductNotFound, s_prov(), and relativeConstraints::value.

   {
      edm::EDProduct* prod=0;
      void* prodPtr = &prod;
      getByLabel(iWrapperInfo, 
                 iTag.label().c_str(), 
                 iTag.instance().empty()?static_cast<const char*>(0):iTag.instance().c_str(),
                 iTag.process().empty()?static_cast<const char*> (0):iTag.process().c_str(),
                 prodPtr);
      if(0==prod) {
         edm::TypeID productType(iWrapperInfo);
         boost::shared_ptr<cms::Exception> whyFailed(new edm::Exception(edm::errors::ProductNotFound));
         *whyFailed
         << "getByLabel: Found zero products matching all criteria\n"
         << "Looking for type: " << productType << "\n"
         << "Looking for module label: " << iTag.label() << "\n"
         << "Looking for productInstanceName: " << iTag.instance() << "\n"
         << (iTag.process().empty() ? "" : "Looking for process: ") << iTag.process() << "\n";
         
         edm::BasicHandle failed(whyFailed);
         return failed;
      }
      if(!prod->isPresent()) {
         edm::TypeID productType(iWrapperInfo);
         boost::shared_ptr<cms::Exception> whyFailed(new edm::Exception(edm::errors::ProductNotFound));
         *whyFailed
         << "getByLabel: Found zero products matching all criteria\n"
         << "Looking for type: " << productType << "\n"
         << "Looking for module label: " << iTag.label() << "\n"
         << "Looking for productInstanceName: " << iTag.instance() << "\n"
         << (iTag.process().empty() ? "" : "Looking for process: ") << iTag.process() << "\n"
         << "The data is registered in the file but is not available for this event\n";
         edm::BasicHandle failed(whyFailed);
         return failed;
      }
      edm::BasicHandle value(boost::shared_ptr<edm::EDProduct>(prod,null_deleter()),&s_prov);
      return value;
   }
virtual const EventBase& fwlite::EventBase::operator++ ( ) [pure virtual]
virtual Long64_t fwlite::EventBase::secondaryFileIndex ( ) const [inline, virtual]

Reimplemented in fwlite::MultiChainEvent, and fwlite::EventContainer.

Definition at line 58 of file EventBase.h.

Referenced by fwlite::EventContainer::secondaryFileIndex().

{ return -1; }
virtual const EventBase& fwlite::EventBase::toBegin ( ) [pure virtual]