CMS 3D CMS Logo

edm::LuminosityBlock Class Reference

#include <FWCore/Framework/interface/LuminosityBlock.h>

Inheritance diagram for edm::LuminosityBlock:

edm::DataViewImpl

List of all members.

Public Types

typedef DataViewImpl Base

Public Member Functions

Timestamp const & beginTime () const
Timestamp const & endTime () const
void getAllProvenance (std::vector< Provenance const * > &provenances) const
Provenance getProvenance (BranchID const &theID) const
Run const & getRun () const
LuminosityBlockID id () const
LuminosityBlockNumber_t luminosityBlock () const
 LuminosityBlock (LuminosityBlockPrincipal &lbp, const ModuleDescription &md)
template<typename PROD>
void put (std::auto_ptr< PROD > product, std::string const &productInstanceName)
 Put a new product with a 'product instance name'.
template<typename PROD>
void put (std::auto_ptr< PROD > product)
 Put a new product.
RunNumber_t run () const
 ~LuminosityBlock ()

Private Member Functions

void commit_ ()
LuminosityBlockPrincipalluminosityBlockPrincipal ()
LuminosityBlockPrincipal const & luminosityBlockPrincipal () const

Private Attributes

LuminosityBlockAuxiliary const & aux_
boost::shared_ptr< Run const >
const 
run_

Friends

class ConfigurableInputSource
class DaqSource
class EDFilter
class EDProducer
class InputSource
class RawInputSource


Detailed Description

Definition at line 34 of file LuminosityBlock.h.


Member Typedef Documentation

typedef DataViewImpl edm::LuminosityBlock::Base

Definition at line 40 of file LuminosityBlock.h.


Constructor & Destructor Documentation

LuminosityBlock::LuminosityBlock ( LuminosityBlockPrincipal lbp,
const ModuleDescription md 
)

Definition at line 15 of file LuminosityBlock.cc.

00015                                                                                              :
00016         DataViewImpl(lbp, md, InLumi),
00017         aux_(lbp.aux()),
00018         run_(newRun(lbp, md)) {
00019   }

edm::LuminosityBlock::~LuminosityBlock (  )  [inline]

Definition at line 38 of file LuminosityBlock.h.

00038 {}


Member Function Documentation

Timestamp const& edm::LuminosityBlock::beginTime (  )  const [inline]

Definition at line 52 of file LuminosityBlock.h.

References aux_, and edm::LuminosityBlockAuxiliary::beginTime().

00052 {return aux_.beginTime();}

void LuminosityBlock::commit_ (  )  [private]

Definition at line 45 of file LuminosityBlock.cc.

References begin, end, edm::productstatus::present(), and edm::LuminosityBlockPrincipal::put().

Referenced by edm::EDFilter::doBeginLuminosityBlock(), edm::EDProducer::doBeginLuminosityBlock(), edm::InputSource::doEndLumi(), edm::EDFilter::doEndLuminosityBlock(), edm::EDProducer::doEndLuminosityBlock(), and edm::ConfigurableInputSource::readLuminosityBlock_().

00045                            {
00046     // fill in guts of provenance here
00047     LuminosityBlockPrincipal & lbp = luminosityBlockPrincipal();
00048     ProductPtrVec::iterator pit(putProducts().begin());
00049     ProductPtrVec::iterator pie(putProducts().end());
00050 
00051     while(pit!=pie) {
00052         std::auto_ptr<EDProduct> pr(pit->first);
00053         // note: ownership has been passed - so clear the pointer!
00054         pit->first = 0;
00055 
00056         // set provenance
00057         std::auto_ptr<EventEntryInfo> lumiEntryInfoPtr(
00058                 new EventEntryInfo(pit->second->branchID(),
00059                                     productstatus::present(),
00060                                     pit->second->moduleDescriptionID()));
00061         lbp.put(pr, *pit->second, lumiEntryInfoPtr);
00062         ++pit;
00063     }
00064 
00065     // the cleanup is all or none
00066     putProducts().clear();
00067   }

Timestamp const& edm::LuminosityBlock::endTime (  )  const [inline]

Definition at line 53 of file LuminosityBlock.h.

References aux_, and edm::LuminosityBlockAuxiliary::endTime().

00053 {return aux_.endTime();}

void LuminosityBlock::getAllProvenance ( std::vector< Provenance const * > &  provenances  )  const

Definition at line 38 of file LuminosityBlock.cc.

00039   {
00040     luminosityBlockPrincipal().getAllProvenance(provenances);
00041   }

Provenance LuminosityBlock::getProvenance ( BranchID const &  theID  )  const

Definition at line 32 of file LuminosityBlock.cc.

00033   {
00034     return luminosityBlockPrincipal().getProvenance(bid);
00035   }

Run const& edm::LuminosityBlock::getRun (  )  const [inline]

Definition at line 64 of file LuminosityBlock.h.

References run_.

Referenced by EDMtoMEConverter::endLuminosityBlock().

00064                    {
00065       return *run_;
00066     }

LuminosityBlockID edm::LuminosityBlock::id ( void   )  const [inline]

Definition at line 48 of file LuminosityBlock.h.

References aux_, and edm::LuminosityBlockAuxiliary::id().

Referenced by DTDigiTask::beginLuminosityBlock(), DTLocalTriggerTask::beginLuminosityBlock(), LumiProducer::beginLuminosityBlock(), HLTPrescaler::beginLuminosityBlock(), EcalEndcapMonitorClient::beginLuminosityBlock(), DTChamberEfficiencyTask::beginLuminosityBlock(), DQMFileSaver::beginLuminosityBlock(), EcalBarrelMonitorClient::beginLuminosityBlock(), DTDigiForNoiseTask::beginLuminosityBlock(), DTEfficiencyTask::beginLuminosityBlock(), DTResolutionAnalysisTask::beginLuminosityBlock(), EcalEndcapMonitorClient::endLuminosityBlock(), DTtTrigCalibrationTest::endLuminosityBlock(), MuonRecoTest::endLuminosityBlock(), DTResolutionAnalysisTest::endLuminosityBlock(), DTChamberEfficiencyTest::endLuminosityBlock(), EDMtoMEConverter::endLuminosityBlock(), QualityTester::endLuminosityBlock(), L1ScalersClient::endLuminosityBlock(), DTSegmentAnalysisTest::endLuminosityBlock(), RPCEventSummary::endLuminosityBlock(), HLTScalersClient::endLuminosityBlock(), L1Scalers::endLuminosityBlock(), RPCQualityTests::endLuminosityBlock(), RPCMultiplicityTest::endLuminosityBlock(), DTEfficiencyTest::endLuminosityBlock(), RPCDeadChannelTest::endLuminosityBlock(), HLTScalers::endLuminosityBlock(), DTDeadChannelTest::endLuminosityBlock(), DTResolutionTest::endLuminosityBlock(), DTNoiseTest::endLuminosityBlock(), EcalBarrelMonitorClient::endLuminosityBlock(), DTDataIntegrityTest::endLuminosityBlock(), and MuonTrackResidualsTest::endLuminosityBlock().

00048                                  {
00049       return aux_.id();
00050     }

LuminosityBlockNumber_t edm::LuminosityBlock::luminosityBlock (  )  const [inline]

Definition at line 42 of file LuminosityBlock.h.

References aux_, and edm::LuminosityBlockAuxiliary::luminosityBlock().

Referenced by RPCMultiplicityTest::beginLuminosityBlock(), SiStripAnalyser::endLuminosityBlock(), SiPixelEDAClient::endLuminosityBlock(), and DTSegmentAnalysisTask::endLuminosityBlock().

00042 {return aux_.luminosityBlock();}

LuminosityBlockPrincipal & LuminosityBlock::luminosityBlockPrincipal (  )  [private]

Definition at line 22 of file LuminosityBlock.cc.

References cmsRelvalreport::principal().

00022                                             {
00023     return dynamic_cast<LuminosityBlockPrincipal &>(principal());
00024   }

LuminosityBlockPrincipal const & LuminosityBlock::luminosityBlockPrincipal (  )  const [private]

Definition at line 27 of file LuminosityBlock.cc.

References cmsRelvalreport::principal().

00027                                                   {
00028     return dynamic_cast<LuminosityBlockPrincipal const&>(principal());
00029   }

template<typename PROD>
void LuminosityBlock::put ( std::auto_ptr< PROD >  product,
std::string const &  productInstanceName 
) [inline]

Put a new product with a 'product instance name'.

Definition at line 110 of file LuminosityBlock.h.

References edm::errors::NullPointerError, PROD, and value.

00111   {
00112     if (product.get() == 0) {                // null pointer is illegal
00113       TypeID typeID(typeid(PROD));
00114       throw edm::Exception(edm::errors::NullPointerError)
00115         << "LuminosityBlock::put: A null auto_ptr was passed to 'put'.\n"
00116         << "The pointer is of type " << typeID << ".\n"
00117         << "The specified productInstanceName was '" << productInstanceName << "'.\n";
00118     }
00119 
00120     // The following will call post_insert if T has such a function,
00121     // and do nothing if T has no such function.
00122     typename boost::mpl::if_c<detail::has_postinsert<PROD>::value, 
00123       DoPostInsert<PROD>, 
00124       DoNotPostInsert<PROD> >::type maybe_inserter;
00125     maybe_inserter(product.get());
00126 
00127     ConstBranchDescription const& desc =
00128       getBranchDescription(TypeID(*product), productInstanceName);
00129 
00130     Wrapper<PROD> *wp(new Wrapper<PROD>(product));
00131 
00132     putProducts().push_back(std::make_pair(wp, &desc));
00133 
00134     // product.release(); // The object has been copied into the Wrapper.
00135     // The old copy must be deleted, so we cannot release ownership.
00136   }

template<typename PROD>
void edm::LuminosityBlock::put ( std::auto_ptr< PROD >  product  )  [inline]

Put a new product.

Definition at line 71 of file LuminosityBlock.h.

Referenced by LumiProducer::beginLuminosityBlock().

00071 {put<PROD>(product, std::string());}

RunNumber_t edm::LuminosityBlock::run ( void   )  const [inline]

Definition at line 44 of file LuminosityBlock.h.

References aux_, and edm::LuminosityBlockAuxiliary::run().

Referenced by DTNoiseTest::beginLuminosityBlock(), DTtTrigCalibrationTest::beginLuminosityBlock(), MuonRecoTest::beginLuminosityBlock(), DTDeadChannelTest::beginLuminosityBlock(), RPCMultiplicityTest::beginLuminosityBlock(), DTChamberEfficiencyTest::beginLuminosityBlock(), DTResolutionAnalysisTest::beginLuminosityBlock(), DTDataIntegrityTest::beginLuminosityBlock(), DTResolutionTest::beginLuminosityBlock(), DTLocalTriggerBaseTest::beginLuminosityBlock(), MuonTrackResidualsTest::beginLuminosityBlock(), and DTEfficiencyTest::beginLuminosityBlock().

00044                             {
00045       return aux_.run();
00046     }


Friends And Related Function Documentation

friend class ConfigurableInputSource [friend]

Definition at line 95 of file LuminosityBlock.h.

friend class DaqSource [friend]

Definition at line 97 of file LuminosityBlock.h.

friend class EDFilter [friend]

Definition at line 99 of file LuminosityBlock.h.

friend class EDProducer [friend]

Definition at line 100 of file LuminosityBlock.h.

friend class InputSource [friend]

Definition at line 96 of file LuminosityBlock.h.

friend class RawInputSource [friend]

Definition at line 98 of file LuminosityBlock.h.


Member Data Documentation

LuminosityBlockAuxiliary const& edm::LuminosityBlock::aux_ [private]

Definition at line 104 of file LuminosityBlock.h.

Referenced by beginTime(), endTime(), id(), luminosityBlock(), and run().

boost::shared_ptr<Run const> const edm::LuminosityBlock::run_ [private]

Definition at line 105 of file LuminosityBlock.h.

Referenced by getRun().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:41:46 2009 for CMSSW by  doxygen 1.5.4