CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Public Attributes
edm::DaqProvenanceHelper Struct Reference

#include <DaqProvenanceHelper.h>

Public Types

typedef std::map< ParentageID,
ParentageID
ParentageIDMap
 
typedef std::map
< ProcessHistoryID,
ProcessHistoryID
ProcessHistoryIDMap
 

Public Member Functions

ProcessHistoryID daqInit (ProductRegistry &productRegistry, ProcessHistoryRegistry &processHistoryRegistry) const
 
 DaqProvenanceHelper (TypeID const &rawDataType)
 
void fixMetaData (ProcessConfigurationVector &pcv, std::vector< ProcessHistory > &phv)
 
void fixMetaData (std::vector< BranchID > &branchIDs) const
 
void fixMetaData (BranchIDLists const &) const
 
void fixMetaData (BranchChildren &branchChildren) const
 
BranchID const & mapBranchID (BranchID const &branchID) const
 
ParentageID const & mapParentageID (ParentageID const &phid) const
 
ProcessHistoryID const & mapProcessHistoryID (ProcessHistoryID const &phid)
 
bool matchProcesses (ProcessConfiguration const &pc, ProcessHistory const &ph) const
 
void saveInfo (BranchDescription const &oldBD, BranchDescription const &newBD)
 

Public Attributes

BranchDescription const constBranchDescription_
 
ProductProvenance dummyProvenance_
 
BranchID newBranchID_
 
BranchID oldBranchID_
 
ProcessHistoryID const * oldProcessHistoryID_
 
std::string oldProcessName_
 
ParentageIDMap parentageIDMap_
 
ProcessHistoryIDMap phidMap_
 
ParameterSet processParameterSet_
 

Detailed Description

Definition at line 19 of file DaqProvenanceHelper.h.

Member Typedef Documentation

Definition at line 21 of file DaqProvenanceHelper.h.

Definition at line 20 of file DaqProvenanceHelper.h.

Constructor & Destructor Documentation

edm::DaqProvenanceHelper::DaqProvenanceHelper ( TypeID const &  rawDataType)
explicit

Definition at line 18 of file DaqProvenanceHelper.cc.

References edm::ParameterSet::addParameter(), constBranchDescription_, relativeConstraints::empty, edm::BranchDescription::moduleLabel(), edm::moduleName(), edm::BranchDescription::moduleName(), edm::BranchDescription::processName(), processParameterSet_, edm::ParameterSet::registerIt(), AlCaHLTBitMon_QueryRunRegistry::string, and triggerPaths.

19  : constBranchDescription_(BranchDescription(InEvent
20  , "rawDataCollector"
21  //, "source"
22  , "LHC"
23  // , "HLT"
24  , "FEDRawDataCollection"
25  , "FEDRawDataCollection"
26  , ""
27  , "DaqSource"
28  , ParameterSetID()
29  , TypeWithDict(rawDataType.typeInfo())
30  , false))
33  , oldProcessName_()
34  , oldBranchID_()
35  , newBranchID_()
36  , oldProcessHistoryID_(nullptr)
37  , phidMap_() {
38 
39  // Now we create a process parameter set for the "LHC" process.
40  // We don't currently use the untracked parameters, However, we make them available, just in case.
41  std::string const& moduleLabel = constBranchDescription_.moduleLabel();
42  std::string const& processName = constBranchDescription_.processName();
44  typedef std::vector<std::string> vstring;
45  vstring empty;
46 
47  vstring modlbl;
48  modlbl.reserve(1);
49  modlbl.push_back(moduleLabel);
50  processParameterSet_.addParameter("@all_sources", modlbl);
51 
53  triggerPaths.addParameter<vstring>("@trigger_paths", empty);
55 
56  ParameterSet pseudoInput;
57  pseudoInput.addParameter<std::string>("@module_edm_type", "Source");
58  pseudoInput.addParameter<std::string>("@module_label", moduleLabel);
59  pseudoInput.addParameter<std::string>("@module_type", moduleName);
60  processParameterSet_.addParameter<ParameterSet>(moduleLabel, pseudoInput);
61 
62  processParameterSet_.addParameter<vstring>("@all_esmodules", empty);
63  processParameterSet_.addParameter<vstring>("@all_esprefers", empty);
64  processParameterSet_.addParameter<vstring>("@all_essources", empty);
65  processParameterSet_.addParameter<vstring>("@all_loopers", empty);
66  processParameterSet_.addParameter<vstring>("@all_modules", empty);
67  processParameterSet_.addParameter<vstring>("@end_paths", empty);
68  processParameterSet_.addParameter<vstring>("@paths", empty);
69  processParameterSet_.addParameter<std::string>("@process_name", processName);
70  // Now we register the process parameter set.
72 
73  //std::cerr << processParameterSet_.dump() << std::endl;
74  }
ProductProvenance dummyProvenance_
std::string const & processName() const
std::string moduleName(Provenance const &provenance)
Definition: Provenance.cc:27
std::string const & moduleLabel() const
ProcessHistoryIDMap phidMap_
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:142
BranchID const & branchID() const
Hash< ParameterSetType > ParameterSetID
std::string const & moduleName() const
BranchDescription const constBranchDescription_
static std::string const triggerPaths
Definition: EdmProvDump.cc:42
ParameterSet const & registerIt()
std::vector< std::string > vstring
Definition: Schedule.cc:347
ProcessHistoryID const * oldProcessHistoryID_

Member Function Documentation

ProcessHistoryID edm::DaqProvenanceHelper::daqInit ( ProductRegistry productRegistry,
ProcessHistoryRegistry processHistoryRegistry 
) const

Definition at line 77 of file DaqProvenanceHelper.cc.

References constBranchDescription_, edm::ProductRegistry::copyProduct(), edm::ProcessHistory::emplace_back(), edm::getPassID(), edm::getReleaseVersion(), edm::ParameterSet::id(), edm::BranchDescription::processName(), processParameterSet_, edm::ProcessHistoryRegistry::registerProcessHistory(), and edm::ProcessHistory::setProcessHistoryID().

Referenced by FedRawDataInputSource::FedRawDataInputSource().

77  {
78  // Now we need to set all the metadata
79  // Add the product to the product registry
80  productRegistry.copyProduct(constBranchDescription_);
81 
82  // Insert an entry for this process in the process history registry
83  ProcessHistory ph;
85  processHistoryRegistry.registerProcessHistory(ph);
86 
87  // Save the process history ID for use every event.
88  return ph.setProcessHistoryID();
89  }
std::string getPassID()
Definition: GetPassID.h:8
ParameterSetID id() const
std::string const & processName() const
std::string getReleaseVersion()
BranchDescription const constBranchDescription_
void edm::DaqProvenanceHelper::fixMetaData ( ProcessConfigurationVector pcv,
std::vector< ProcessHistory > &  phv 
)
void edm::DaqProvenanceHelper::fixMetaData ( std::vector< BranchID > &  branchIDs) const
void edm::DaqProvenanceHelper::fixMetaData ( BranchIDLists const &  branchIDLists) const

Definition at line 141 of file DaqProvenanceHelper.cc.

References edm::BranchID::id(), list(), newBranchID_, oldBranchID_, and python.rootplot.root2matplotlib::replace().

141  {
144  // The const_cast is ugly, but it beats the alternatives.
145  BranchIDLists& lists = const_cast<BranchIDLists&>(branchIDLists);
146  for(auto& list : lists) {
147  std::replace(list.begin(), list.end(), oldID, newID);
148  }
149  }
std::vector< BranchIDList > BranchIDLists
Definition: BranchIDList.h:19
unsigned int id() const
Definition: BranchID.h:23
unsigned int value_type
Definition: BranchID.h:16
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger list("!*","!HLTx*"if it matches 2 triggers or more) will accept the event if all the matching triggers are FAIL.It will reject the event if any of the triggers are PASS or EXCEPTION(this matches the behavior of"!*"before the partial wildcard feature was incorporated).Triggers which are in the READY state are completely ignored.(READY should never be returned since the trigger paths have been run
void edm::DaqProvenanceHelper::fixMetaData ( BranchChildren branchChildren) const

Definition at line 152 of file DaqProvenanceHelper.cc.

References edm::BranchChildren::childLookup(), i, newBranchID_, and oldBranchID_.

152  {
153  typedef std::map<BranchID, std::set<BranchID> > BCMap;
154  // The const_cast is ugly, but it beats the alternatives.
155  BCMap& childLookup = const_cast<BCMap&>(branchChildren.childLookup());
156  // First fix any old branchID's in the key.
157  {
158  BCMap::iterator i = childLookup.find(oldBranchID_);
159  if(i != childLookup.end()) {
160  childLookup.insert(std::make_pair(newBranchID_, i->second));
161  childLookup.erase(i);
162  }
163  }
164  // Now fix any old branchID's in the sets;
165  for(auto& child : childLookup) {
166  if(child.second.erase(oldBranchID_) != 0) {
167  child.second.insert(newBranchID_);
168  }
169  }
170  }
int i
Definition: DBlmapReader.cc:9
BranchID const & edm::DaqProvenanceHelper::mapBranchID ( BranchID const &  branchID) const
ParentageID const & edm::DaqProvenanceHelper::mapParentageID ( ParentageID const &  phid) const

Definition at line 183 of file DaqProvenanceHelper.cc.

References parentageIDMap_.

Referenced by edm::ReducedProvenanceReader::readProvenance(), edm::FullProvenanceReader::readProvenance(), and edm::OldProvenanceReader::readProvenance().

183  {
184  ParentageIDMap::const_iterator it = parentageIDMap_.find(parentageID);
185  if(it == parentageIDMap_.end()) {
186  return parentageID;
187  }
188  return it->second;
189  }
ProcessHistoryID const & edm::DaqProvenanceHelper::mapProcessHistoryID ( ProcessHistoryID const &  phid)

Definition at line 174 of file DaqProvenanceHelper.cc.

References oldProcessHistoryID_, and phidMap_.

174  {
175  ProcessHistoryIDMap::const_iterator it = phidMap_.find(phid);
176  assert(it != phidMap_.end());
177  oldProcessHistoryID_ = &it->first;
178  return it->second;
179  }
ProcessHistoryIDMap phidMap_
ProcessHistoryID const * oldProcessHistoryID_
bool edm::DaqProvenanceHelper::matchProcesses ( ProcessConfiguration const &  pc,
ProcessHistory const &  ph 
) const

Definition at line 92 of file DaqProvenanceHelper.cc.

References oldProcessName_, edm::ProcessConfiguration::passID(), and edm::ProcessConfiguration::releaseVersion().

92  {
93  for(auto const& pc : ph) {
94  if(pc.processName() == oldProcessName_) {
95  return(pc.releaseVersion() == newPC.releaseVersion() && pc.passID() == newPC.passID());
96  }
97  }
98  return false;
99  }
void edm::DaqProvenanceHelper::saveInfo ( BranchDescription const &  oldBD,
BranchDescription const &  newBD 
)
inline

Definition at line 24 of file DaqProvenanceHelper.h.

References edm::BranchDescription::branchID(), newBranchID_, oldBranchID_, oldProcessName_, and edm::BranchDescription::processName().

24  {
25  oldProcessName_ = oldBD.processName();
26  oldBranchID_ = oldBD.branchID();
27  newBranchID_ = newBD.branchID();
28  }

Member Data Documentation

BranchDescription const edm::DaqProvenanceHelper::constBranchDescription_

Definition at line 38 of file DaqProvenanceHelper.h.

Referenced by daqInit(), DaqProvenanceHelper(), and FedRawDataInputSource::read().

ProductProvenance edm::DaqProvenanceHelper::dummyProvenance_

Definition at line 39 of file DaqProvenanceHelper.h.

Referenced by FedRawDataInputSource::read().

BranchID edm::DaqProvenanceHelper::newBranchID_

Definition at line 44 of file DaqProvenanceHelper.h.

Referenced by fixMetaData(), mapBranchID(), and saveInfo().

BranchID edm::DaqProvenanceHelper::oldBranchID_

Definition at line 43 of file DaqProvenanceHelper.h.

Referenced by fixMetaData(), mapBranchID(), and saveInfo().

ProcessHistoryID const* edm::DaqProvenanceHelper::oldProcessHistoryID_

Definition at line 45 of file DaqProvenanceHelper.h.

Referenced by mapProcessHistoryID().

std::string edm::DaqProvenanceHelper::oldProcessName_

Definition at line 42 of file DaqProvenanceHelper.h.

Referenced by matchProcesses(), and saveInfo().

ParentageIDMap edm::DaqProvenanceHelper::parentageIDMap_

Definition at line 47 of file DaqProvenanceHelper.h.

Referenced by mapParentageID().

ProcessHistoryIDMap edm::DaqProvenanceHelper::phidMap_

Definition at line 46 of file DaqProvenanceHelper.h.

Referenced by mapProcessHistoryID().

ParameterSet edm::DaqProvenanceHelper::processParameterSet_

Definition at line 40 of file DaqProvenanceHelper.h.

Referenced by daqInit(), and DaqProvenanceHelper().