CMS 3D CMS Logo

RunLumiEntryInfo.cc

Go to the documentation of this file.
00001 #include "DataFormats/Provenance/interface/EventEntryInfo.h"
00002 #include "DataFormats/Provenance/interface/RunLumiEntryInfo.h"
00003 #include "DataFormats/Provenance/interface/EntryDescriptionID.h"
00004 #include "DataFormats/Provenance/interface/EventEntryDescription.h"
00005 #include "DataFormats/Provenance/interface/EntryDescriptionRegistry.h"
00006 #include <ostream>
00007 
00008 /*----------------------------------------------------------------------
00009 
00010 ----------------------------------------------------------------------*/
00011 
00012 namespace edm {
00013   RunLumiEntryInfo::RunLumiEntryInfo() :
00014     branchID_(),
00015     productStatus_(productstatus::uninitialized()),
00016     moduleDescriptionID_()
00017   {}
00018 
00019   RunLumiEntryInfo::RunLumiEntryInfo(EventEntryInfo const& ei) :
00020     branchID_(ei.branchID()),
00021     productStatus_(ei.productStatus()),
00022     moduleDescriptionID_(ei.moduleDescriptionID())
00023   {}
00024 
00025   RunLumiEntryInfo::RunLumiEntryInfo(BranchID const& bid) :
00026     branchID_(bid),
00027     productStatus_(productstatus::uninitialized()),
00028     moduleDescriptionID_()
00029   {}
00030 
00031    RunLumiEntryInfo::RunLumiEntryInfo(BranchID const& bid,
00032                                     ProductStatus status) :
00033     branchID_(bid),
00034     productStatus_(status),
00035     moduleDescriptionID_()
00036   {}
00037 
00038    // The last two arguments are ignored.
00039    // They are used for backward compatibility.
00040    RunLumiEntryInfo::RunLumiEntryInfo(BranchID const& bid,
00041                                     ProductStatus status,
00042                                     ModuleDescriptionID const& mid,
00043                                     ProductID const&,
00044                                     std::vector<BranchID> const&) :
00045     branchID_(bid),
00046     productStatus_(status),
00047     moduleDescriptionID_(mid)
00048   {} 
00049 
00050    RunLumiEntryInfo::RunLumiEntryInfo(BranchID const& bid,
00051                                     ProductStatus status,
00052                                     ProductID const&,
00053                                     EntryDescriptionID const& edid) :
00054     branchID_(bid),
00055     productStatus_(status),
00056     moduleDescriptionID_() {
00057      EventEntryDescription ed;
00058      EntryDescriptionRegistry::instance()->getMapped(edid, ed);
00059      moduleDescriptionID_ = ed.moduleDescriptionID();
00060   } 
00061 
00062   EventEntryInfo
00063   RunLumiEntryInfo::makeEntryInfo() const {
00064     return EventEntryInfo(branchID_, productStatus_, moduleDescriptionID_);
00065   }
00066 
00067   void
00068   RunLumiEntryInfo::setPresent() {
00069     if (productstatus::present(productStatus())) return;
00070     assert(productstatus::unknown(productStatus()));
00071     setStatus(productstatus::present());
00072   }
00073 
00074   void
00075   RunLumiEntryInfo::setNotPresent() {
00076     if (productstatus::neverCreated(productStatus())) return;
00077     assert(productstatus::unknown(productStatus()));
00078     setStatus(productstatus::neverCreated());
00079   }
00080 
00081   void
00082   RunLumiEntryInfo::write(std::ostream& os) const {
00083     os << "branch ID = " << branchID() << '\n';
00084     os << "product status = " << productStatus() << '\n';
00085     os << "module description ID = " << moduleDescriptionID() << '\n';
00086   }
00087     
00088   bool
00089   operator==(RunLumiEntryInfo const& a, RunLumiEntryInfo const& b) {
00090     return
00091       a.branchID() == b.branchID()
00092       && a.productStatus() == b.productStatus()
00093       && a.moduleDescriptionID() == b.moduleDescriptionID();
00094   }
00095 }

Generated on Tue Jun 9 17:31:39 2009 for CMSSW by  doxygen 1.5.4