CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Attributes
edm::DaqProvenanceHelper Struct Reference

#include <DaqProvenanceHelper.h>

Public Types

typedef tbb::concurrent_unordered_map< ParentageID, ParentageID, dqh::parentage_hashParentageIDMap
 
typedef std::map< ProcessHistoryID, ProcessHistoryIDProcessHistoryIDMap
 

Public Member Functions

BranchDescription const & branchDescription () const
 
ProcessHistoryID daqInit (ProductRegistry &productRegistry, ProcessHistoryRegistry &processHistoryRegistry) const
 
 DaqProvenanceHelper (TypeID const &rawDataType)
 
ProductProvenance const & dummyProvenance () const
 
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
 
ProcessHistoryID const * oldProcessHistoryID () const
 
void saveInfo (BranchDescription const &oldBD, BranchDescription const &newBD)
 
void setOldParentageIDToNew (ParentageID const &iOld, ParentageID const &iNew)
 

Private 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 30 of file DaqProvenanceHelper.h.

Member Typedef Documentation

Definition at line 32 of file DaqProvenanceHelper.h.

Definition at line 31 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(), modifiedElectrons_cfi::processName, 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  , "FedRawDataInputSource"
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();
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);
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:144
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:430
ProcessHistoryID const * oldProcessHistoryID_

Member Function Documentation

BranchDescription const& edm::DaqProvenanceHelper::branchDescription ( ) const
inline

Definition at line 49 of file DaqProvenanceHelper.h.

Referenced by FedRawDataInputSource::read().

BranchDescription const constBranchDescription_
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_
ProductProvenance const& edm::DaqProvenanceHelper::dummyProvenance ( ) const
inline

Definition at line 51 of file DaqProvenanceHelper.h.

Referenced by FedRawDataInputSource::read().

51 { return dummyProvenance_; }
ProductProvenance dummyProvenance_
void edm::DaqProvenanceHelper::fixMetaData ( ProcessConfigurationVector pcv,
std::vector< ProcessHistory > &  phv 
)

Referenced by matchProcesses().

void edm::DaqProvenanceHelper::fixMetaData ( std::vector< BranchID > &  branchIDs) const

Definition at line 136 of file DaqProvenanceHelper.cc.

References newBranchID_, oldBranchID_, and python.rootplot.root2matplotlib::replace().

136  {
137  std::replace(branchID.begin(), branchID.end(), oldBranchID_, newBranchID_);
138  }
def replace(string, replacements)
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
def replace(string, replacements)
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(), mps_fire::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  }
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 constBranchDescription_, fixMetaData(), edm::ParameterSet::id(), oldProcessName_, edm::ProcessConfiguration::passID(), phidMap_, edm::BranchDescription::processName(), processParameterSet_, 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  }
ProcessHistoryID const* edm::DaqProvenanceHelper::oldProcessHistoryID ( ) const
inline

Definition at line 50 of file DaqProvenanceHelper.h.

50 { return oldProcessHistoryID_; }
ProcessHistoryID const * oldProcessHistoryID_
void edm::DaqProvenanceHelper::saveInfo ( BranchDescription const &  oldBD,
BranchDescription const &  newBD 
)
inline

Definition at line 35 of file DaqProvenanceHelper.h.

References edm::BranchDescription::branchID(), and edm::BranchDescription::processName().

35  {
36  oldProcessName_ = oldBD.processName();
37  oldBranchID_ = oldBD.branchID();
38  newBranchID_ = newBD.branchID();
39  }
void edm::DaqProvenanceHelper::setOldParentageIDToNew ( ParentageID const &  iOld,
ParentageID const &  iNew 
)

Definition at line 197 of file DaqProvenanceHelper.cc.

References parentageIDMap_.

197  {
198  parentageIDMap_.insert(std::make_pair(iOld, iNew));
199  }

Member Data Documentation

BranchDescription const edm::DaqProvenanceHelper::constBranchDescription_
private

Definition at line 56 of file DaqProvenanceHelper.h.

Referenced by daqInit(), DaqProvenanceHelper(), and matchProcesses().

ProductProvenance edm::DaqProvenanceHelper::dummyProvenance_
private

Definition at line 57 of file DaqProvenanceHelper.h.

BranchID edm::DaqProvenanceHelper::newBranchID_
private

Definition at line 62 of file DaqProvenanceHelper.h.

Referenced by fixMetaData(), and mapBranchID().

BranchID edm::DaqProvenanceHelper::oldBranchID_
private

Definition at line 61 of file DaqProvenanceHelper.h.

Referenced by fixMetaData(), and mapBranchID().

ProcessHistoryID const* edm::DaqProvenanceHelper::oldProcessHistoryID_
private

Definition at line 63 of file DaqProvenanceHelper.h.

Referenced by mapProcessHistoryID().

std::string edm::DaqProvenanceHelper::oldProcessName_
private

Definition at line 60 of file DaqProvenanceHelper.h.

Referenced by matchProcesses().

ParentageIDMap edm::DaqProvenanceHelper::parentageIDMap_
private

Definition at line 65 of file DaqProvenanceHelper.h.

Referenced by mapParentageID(), and setOldParentageIDToNew().

ProcessHistoryIDMap edm::DaqProvenanceHelper::phidMap_
private

Definition at line 64 of file DaqProvenanceHelper.h.

Referenced by mapProcessHistoryID(), and matchProcesses().

ParameterSet edm::DaqProvenanceHelper::processParameterSet_
private

Definition at line 58 of file DaqProvenanceHelper.h.

Referenced by daqInit(), DaqProvenanceHelper(), and matchProcesses().