CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BranchEntryDescription.h
Go to the documentation of this file.
1 #ifndef DataFormats_Provenance_BranchEntryDescription_h
2 #define DataFormats_Provenance_BranchEntryDescription_h
3 
4 /*----------------------------------------------------------------------
5 
6 BranchEntryDescription: The event dependent portion of the description of a product
7 and how it came into existence.
8 
9 Obsolete
10 
11 ----------------------------------------------------------------------*/
12 #include <vector>
13 
15 
16 /*
17  BranchEntryDescription
18 
19  definitions:
20  Product: The EDProduct to which a provenance object is associated
21 
22  Creator: The EDProducer that made the product.
23 
24  Parents: The EDProducts used as input by the creator.
25 */
26 
27 namespace edm {
29  enum CreatorStatus { Success = 0,
33 
35 
37 
38  ProductID const& productID() const {return productID_;}
39  bool const& isPresent() const {return isPresent_;}
40  CreatorStatus const& creatorStatus() const {return status_;}
41  std::vector<ProductID> const& parents() const {return parents_;}
42 
43  private:
45 
46  // The EDProduct IDs of the parents
47  std::vector<ProductID> parents_;
48 
49  // a single identifier that describes all the conditions used
50  unsigned int cid_; // frame ID?
51 
52  // the last of these is not in the roadmap, but is on the board
53 
54  // if modules can or will place an object in the event
55  // even though something not good occurred, like a timeout, then
56  // this may be useful - or if the I/O system makes blank or default
57  // constructed objects and we need to distinguish between zero
58  // things in a collection between nothing was found and the case
59  // where a failure caused nothing to be in the collection.
60  // Should a provenance be inserted even if a module fails to
61  // create the output it promised?
63 
64  // Is the object present in the event. This can be false if the object
65  // was never created (status != Success), or if the branch containing
66  // the product was dropped.
67  bool isPresent_;
68 
69  };
70 }
71 #endif
std::vector< ProductID > const & parents() const
CreatorStatus const & creatorStatus() const
ProductID const & productID() const
std::vector< ProductID > parents_