CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
ProvenanceDumper Class Reference

Public Member Functions

void dump ()
 
int exitCode () const
 
ProvenanceDumperoperator= (ProvenanceDumper const &)=delete
 
void printErrors (std::ostream &os)
 
 ProvenanceDumper (std::string const &filename, bool showDependencies, bool excludeESModules, bool showAllModules, bool showTopLevelPSets, std::string const &findMatch)
 
 ProvenanceDumper (ProvenanceDumper const &)=delete
 

Private Member Functions

void dumpEventFilteringParameterSets (edm::EventSelectionIDVector const &ids)
 
void dumpEventFilteringParameterSets_ (TFile *file)
 
void dumpParameterSetForID_ (edm::ParameterSetID const &id)
 
void dumpProcessHistory_ ()
 
void work_ ()
 

Private Attributes

int errorCount_
 
std::stringstream errorLog_
 
bool excludeESModules_
 
int exitCode_
 
std::string filename_
 
std::string findMatch_
 
HistoryNode historyGraph_
 
std::unique_ptr< TFile > inputFile_
 
edm::ProcessConfigurationVector phc_
 
edm::ProcessHistoryVector phv_
 
ParameterSetMap psm_
 
edm::ProductRegistry reg_
 
bool showDependencies_
 
bool showOtherModules_
 
bool showTopLevelPSets_
 

Detailed Description

Definition at line 442 of file EdmProvDump.cc.

Constructor & Destructor Documentation

ProvenanceDumper::ProvenanceDumper ( std::string const &  filename,
bool  showDependencies,
bool  excludeESModules,
bool  showAllModules,
bool  showTopLevelPSets,
std::string const &  findMatch 
)

Definition at line 485 of file EdmProvDump.cc.

490  :
492  inputFile_(makeTFile(filename)),
493  exitCode_(0),
494  errorLog_(),
495  errorCount_(0),
496  showDependencies_(showDependencies),
497  excludeESModules_(excludeESModules),
498  showOtherModules_(showOtherModules),
499  showTopLevelPSets_(showTopLevelPSets),
500  findMatch_(findMatch) {
501 }
std::stringstream errorLog_
Definition: EdmProvDump.cc:465
std::string findMatch_
Definition: EdmProvDump.cc:476
std::unique_ptr< TFile > inputFile_
Definition: EdmProvDump.cc:463
std::string filename_
Definition: EdmProvDump.cc:462
tuple filename
Definition: lut2db_cfg.py:20
ProvenanceDumper::ProvenanceDumper ( ProvenanceDumper const &  )
delete

Member Function Documentation

void ProvenanceDumper::dump ( void  )

Definition at line 504 of file EdmProvDump.cc.

References work_().

Referenced by main().

504  {
505  work_();
506 }
void ProvenanceDumper::dumpEventFilteringParameterSets ( edm::EventSelectionIDVector const &  ids)
private

Definition at line 519 of file EdmProvDump.cc.

References gather_cfg::cout, dumpParameterSetForID_(), and i.

Referenced by dumpEventFilteringParameterSets_().

519  {
520  edm::EventSelectionIDVector::size_type num_ids = ids.size();
521  if(num_ids == 0) {
522  std::cout << "No event filtering information is available.\n";
523  std::cout << "------------------------------\n";
524  } else {
525  std::cout << "Event filtering information for "
526  << num_ids
527  << " processing steps is available.\n"
528  << "The ParameterSets will be printed out, "
529  << "with the oldest printed first.\n";
530  for(edm::EventSelectionIDVector::size_type i = 0; i != num_ids; ++i) {
532  }
533  }
534 }
int i
Definition: DBlmapReader.cc:9
void dumpParameterSetForID_(edm::ParameterSetID const &id)
Definition: EdmProvDump.cc:567
uint16_t size_type
tuple cout
Definition: gather_cfg.py:121
void ProvenanceDumper::dumpEventFilteringParameterSets_ ( TFile *  file)
private

Definition at line 537 of file EdmProvDump.cc.

References gather_cfg::cout, dumpEventFilteringParameterSets(), edm::poolNames::eventHistoryBranchName(), edm::poolNames::eventHistoryTreeName(), patZpeak::events, edm::History::eventSelectionIDs(), edm::poolNames::eventSelectionsBranchName(), edm::poolNames::eventTreeName(), and h.

Referenced by work_().

537  {
538 
539  TTree* history = dynamic_cast<TTree*>(file->Get(edm::poolNames::eventHistoryTreeName().c_str()));
540  if(history != 0) {
541  edm::History h;
542  edm::History* ph = &h;
543 
544  history->SetBranchAddress(edm::poolNames::eventHistoryBranchName().c_str(), &ph);
545  if(history->GetEntry(0) <= 0) {
546  std::cout << "No event filtering information is available; the event history tree has no entries\n";
547  } else {
549  }
550  } else {
551  TTree* events = dynamic_cast<TTree*>(file->Get(edm::poolNames::eventTreeName().c_str()));
552  assert (events != 0);
553  TBranch* eventSelectionsBranch = events->GetBranch(edm::poolNames::eventSelectionsBranchName().c_str());
554  assert (eventSelectionsBranch != 0);
556  edm::EventSelectionIDVector* pids = &ids;
557  eventSelectionsBranch->SetAddress(&pids);
558  if(eventSelectionsBranch->GetEntry(0) <= 0) {
559  std::cout << "No event filtering information is available; the event selections branch has no entries\n";
560  } else {
562  }
563  }
564 }
std::string const & eventSelectionsBranchName()
Definition: BranchType.cc:237
std::vector< EventSelectionID > EventSelectionIDVector
EventSelectionIDVector const & eventSelectionIDs() const
Definition: History.h:42
void dumpEventFilteringParameterSets(edm::EventSelectionIDVector const &ids)
Definition: EdmProvDump.cc:519
std::string const & eventHistoryBranchName()
Definition: BranchType.cc:232
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
tuple events
Definition: patZpeak.py:19
std::string const & eventTreeName()
Definition: BranchType.cc:254
tuple cout
Definition: gather_cfg.py:121
std::string const & eventHistoryTreeName()
Definition: BranchType.cc:262
void ProvenanceDumper::dumpParameterSetForID_ ( edm::ParameterSetID const &  id)
private

Definition at line 567 of file EdmProvDump.cc.

References gather_cfg::cout, relativeConstraints::empty, i, edm::ParameterSet::id(), prettyPrint(), and psm_.

Referenced by dumpEventFilteringParameterSets().

567  {
568  std::cout << "ParameterSetID: " << id << '\n';
569  if(id.isValid()) {
570  ParameterSetMap::const_iterator i = psm_.find(id);
571  if(i == psm_.end()) {
572  std::cout << "We are unable to find the corresponding ParameterSet\n";
574  if(id == empty.id()) {
575  std::cout << "But it would have been empty anyway\n";
576  }
577  } else {
578  edm::ParameterSet ps(i->second.pset());
579  prettyPrint(std::cout, ps, " ", " ");
580  std::cout<< '\n';
581  }
582  } else {
583  std::cout << "This ID is not valid\n";
584  }
585  std::cout << " -------------------------\n";
586 }
int i
Definition: DBlmapReader.cc:9
ParameterSetID id() const
ParameterSetMap psm_
Definition: EdmProvDump.cc:470
static std::ostream & prettyPrint(std::ostream &oStream, edm::ParameterSet const &iPSet, std::string const &iIndent, std::string const &iIndentDelta)
Definition: EdmProvDump.cc:414
tuple cout
Definition: gather_cfg.py:121
void ProvenanceDumper::dumpProcessHistory_ ( )
private

Definition at line 589 of file EdmProvDump.cc.

References gather_cfg::cout, alignCSCRings::e, historyGraph_, errorMatrix2Lands_multiChannel::id, dbtoconf::parent, and phv_.

Referenced by work_().

589  {
590  std::cout << "Processing History:" << std::endl;
591  if(1 == phv_.size()) {
592  std::cout << *phv_.begin();
593  historyGraph_.addChild(HistoryNode(*(phv_.begin()->begin()), 1));
594  } else {
595  std::map<edm::ProcessConfigurationID, unsigned int> simpleIDs;
596  for(edm::ProcessHistoryVector::const_iterator it = phv_.begin(), itEnd = phv_.end();
597  it != itEnd;
598  ++it) {
599  //loop over the history entries looking for matches
600  HistoryNode* parent = &historyGraph_;
601  for(edm::ProcessHistory::const_iterator itH = it->begin(), e = it->end();
602  itH != e;
603  ++itH) {
604  if(parent->size() == 0) {
605  unsigned int id = simpleIDs[itH->id()];
606  if(0 == id) {
607  id = 1;
608  simpleIDs[itH->id()] = id;
609  }
610  parent->addChild(HistoryNode(*itH, id));
611  parent = parent->lastChildAddress();
612  } else {
613  //see if this is unique
614  bool isUnique = true;
615  for(HistoryNode::iterator itChild = parent->begin(), itChildEnd = parent->end();
616  itChild != itChildEnd;
617  ++itChild) {
618  if(itChild->configurationID() == itH->id()) {
619  isUnique = false;
620  parent = &(*itChild);
621  break;
622  }
623  }
624  if(isUnique) {
625  simpleIDs[itH->id()] = parent->size() + 1;
626  parent->addChild(HistoryNode(*itH, simpleIDs[itH->id()]));
627  parent = parent->lastChildAddress();
628  }
629  }
630  }
631  }
632  historyGraph_.printHistory();
633  }
634 }
collection_type::const_iterator const_iterator
list parent
Definition: dbtoconf.py:74
HistoryNode historyGraph_
Definition: EdmProvDump.cc:471
edm::ProcessHistoryVector phv_
Definition: EdmProvDump.cc:469
tuple cout
Definition: gather_cfg.py:121
int ProvenanceDumper::exitCode ( ) const

Definition at line 514 of file EdmProvDump.cc.

References exitCode_.

Referenced by main().

514  {
515  return exitCode_;
516 }
ProvenanceDumper& ProvenanceDumper::operator= ( ProvenanceDumper const &  )
delete
void ProvenanceDumper::printErrors ( std::ostream &  os)

Definition at line 509 of file EdmProvDump.cc.

References errorCount_, and errorLog_.

Referenced by main().

509  {
510  if(errorCount_ > 0) os << errorLog_.str() << std::endl;
511 }
std::stringstream errorLog_
Definition: EdmProvDump.cc:465
void ProvenanceDumper::work_ ( )
private

Definition at line 637 of file EdmProvDump.cc.

References edm::BranchTypeToBranchEntryInfoBranchName(), edm::BranchTypeToMetaDataTreeName(), edm::BranchTypeToProductProvenanceBranchName(), edm::BranchTypeToProductTreeName(), dtNoiseDBValidation_cfg::cerr, gather_cfg::cout, dumpEventFilteringParameterSets_(), dumpProcessHistory_(), alignCSCRings::e, errorCount_, errorLog_, excludeESModules_, exitCode_, f, edm::fillProductRegistryTransients(), findMatch_, edm::detail::ThreadSafeRegistry< KEY, T, E >::getMapped(), historyGraph_, i, edm::Parentage::id(), edm::poolNames::idToParameterSetBlobsBranchName(), edm::InEvent, info, inputFile_, edm::detail::ThreadSafeRegistry< KEY, T, E >::insertMapped(), edm::detail::ThreadSafeRegistry< KEY, T, E >::instance(), j, edm::poolNames::metaDataTreeName(), edm::poolNames::moduleDescriptionMapBranchName(), edm::numEntries(), or, edm::poolNames::parameterSetMapBranchName(), edm::poolNames::parameterSetsTreeName(), edm::poolNames::parentageBranchName(), edm::poolNames::parentageTreeName(), edm::Parentage::parents(), phc_, phv_, prettyPrint(), edm::poolNames::processConfigurationBranchName(), edm::poolNames::processHistoryBranchName(), edm::poolNames::processHistoryMapBranchName(), edm::poolNames::productDescriptionBranchName(), edm::ProductRegistry::productList(), psm_, reg_, PhysicsTools::registry, alignCSCRings::s, edm::ParameterSet::setID(), showDependencies_, showOtherModules_, showTopLevelPSets_, edm::sort_all(), and groupFilesInBlocks::temp.

Referenced by dump().

637  {
638 
639  TTree* meta = dynamic_cast<TTree*>(inputFile_->Get(edm::poolNames::metaDataTreeName().c_str()));
640  assert(0 != meta);
641 
642  edm::ProductRegistry* pReg = &reg_;
643  meta->SetBranchAddress(edm::poolNames::productDescriptionBranchName().c_str(), &pReg);
644 
645  ParameterSetMap* pPsm = &psm_;
646  if(meta->FindBranch(edm::poolNames::parameterSetMapBranchName().c_str()) != 0) {
647  meta->SetBranchAddress(edm::poolNames::parameterSetMapBranchName().c_str(), &pPsm);
648  } else {
649  TTree* psetTree = dynamic_cast<TTree *>(inputFile_->Get(edm::poolNames::parameterSetsTreeName().c_str()));
650  assert(0 != psetTree);
651  typedef std::pair<edm::ParameterSetID, edm::ParameterSetBlob> IdToBlobs;
652  IdToBlobs idToBlob;
653  IdToBlobs* pIdToBlob = &idToBlob;
654  psetTree->SetBranchAddress(edm::poolNames::idToParameterSetBlobsBranchName().c_str(), &pIdToBlob);
655  for(long long i = 0; i != psetTree->GetEntries(); ++i) {
656  psetTree->GetEntry(i);
657  psm_.insert(idToBlob);
658  }
659  }
661  if(meta->FindBranch(edm::poolNames::processConfigurationBranchName().c_str()) != 0) {
662  meta->SetBranchAddress(edm::poolNames::processConfigurationBranchName().c_str(), &pPhc);
663  }
664 
666  if(meta->FindBranch(edm::poolNames::processHistoryBranchName().c_str()) != 0) {
667  meta->SetBranchAddress(edm::poolNames::processHistoryBranchName().c_str(), &pPhv);
668  }
669 
671  edm::ProcessHistoryMap* pPhm = &phm;
672  if(meta->FindBranch(edm::poolNames::processHistoryMapBranchName().c_str()) != 0) {
673  meta->SetBranchAddress(edm::poolNames::processHistoryMapBranchName().c_str(), &pPhm);
674  }
675 
676  if(meta->FindBranch(edm::poolNames::moduleDescriptionMapBranchName().c_str()) != 0) {
677  if(meta->GetBranch(edm::poolNames::moduleDescriptionMapBranchName().c_str())->GetSplitLevel() != 0) {
678  meta->SetBranchStatus((edm::poolNames::moduleDescriptionMapBranchName() + ".*").c_str(), 0);
679  } else {
680  meta->SetBranchStatus(edm::poolNames::moduleDescriptionMapBranchName().c_str(), 0);
681  }
682  }
683 
684  meta->GetEntry(0);
685  assert(0 != pReg);
686 
688  for(ParameterSetMap::const_iterator i = psm_.begin(), iEnd = psm_.end(); i != iEnd; ++i) {
689  edm::ParameterSet pset(i->second.pset());
690  pset.setID(i->first);
691  psetRegistry.insertMapped(pset);
692  }
693 
694 
695  // backward compatibility
696  if(!phm.empty()) {
697  for(edm::ProcessHistoryMap::const_iterator i = phm.begin(), e = phm.end(); i != e; ++i) {
698  phv_.push_back(i->second);
699  for(edm::ProcessConfigurationVector::const_iterator j = i->second.begin(), f = i->second.end(); j != f; ++j) {
700  phc_.push_back(*j);
701  }
702  }
704  phc_.erase(std::unique(phc_.begin(), phc_.end()), phc_.end());
705  }
706 
708 
709  //Prepare the parentage information if requested
710  std::map<edm::BranchID, std::set<edm::ParentageID> > perProductParentage;
711 
712  if(showDependencies_){
713  TTree* parentageTree = dynamic_cast<TTree*>(inputFile_->Get(edm::poolNames::parentageTreeName().c_str()));
714  if(0 == parentageTree) {
715  std::cerr << "no Parentage tree available so can not show dependencies/n";
716  showDependencies_ = false;
717  } else {
718 
720 
721  std::vector<edm::ParentageID> orderedParentageIDs;
722  orderedParentageIDs.reserve(parentageTree->GetEntries());
723  for(Long64_t i = 0, numEntries = parentageTree->GetEntries(); i < numEntries; ++i) {
724  edm::Parentage parentageBuffer;
725  edm::Parentage *pParentageBuffer = &parentageBuffer;
726  parentageTree->SetBranchAddress(edm::poolNames::parentageBranchName().c_str(), &pParentageBuffer);
727  parentageTree->GetEntry(i);
728  registry.insertMapped(parentageBuffer);
729  orderedParentageIDs.push_back(parentageBuffer.id());
730  }
731  parentageTree->SetBranchAddress(edm::poolNames::parentageBranchName().c_str(), 0);
732 
733  TTree* eventMetaTree = dynamic_cast<TTree*>(inputFile_->Get(edm::BranchTypeToMetaDataTreeName(edm::InEvent).c_str()));
734  if(0 == eventMetaTree) {
735  eventMetaTree = dynamic_cast<TTree*>(inputFile_->Get(edm::BranchTypeToProductTreeName(edm::InEvent).c_str()));
736  }
737  if(0 == eventMetaTree) {
738  std::cerr << "no '" << edm::BranchTypeToProductTreeName(edm::InEvent)<< "' Tree in file so can not show dependencies\n";
739  showDependencies_ = false;
740  } else {
741  TBranch* storedProvBranch = eventMetaTree->GetBranch(edm::BranchTypeToProductProvenanceBranchName(edm::InEvent).c_str());
742 
743  if(0!=storedProvBranch) {
744  std::vector<edm::StoredProductProvenance> info;
745  std::vector<edm::StoredProductProvenance>* pInfo = &info;
746  storedProvBranch->SetAddress(&pInfo);
747  for(Long64_t i = 0, numEntries = eventMetaTree->GetEntries(); i < numEntries; ++i) {
748  storedProvBranch->GetEntry(i);
749  for(std::vector<edm::StoredProductProvenance>::const_iterator it = info.begin(), itEnd = info.end();
750  it != itEnd; ++it) {
751  edm::BranchID bid(it->branchID_);
752  perProductParentage[bid].insert(orderedParentageIDs[it->parentageIDIndex_]);
753  }
754  }
755  } else {
756  //backwards compatible check
757  TBranch* productProvBranch = eventMetaTree->GetBranch(edm::BranchTypeToBranchEntryInfoBranchName(edm::InEvent).c_str());
758  if (0 != productProvBranch) {
759  std::vector<edm::ProductProvenance> info;
760  std::vector<edm::ProductProvenance>* pInfo = &info;
761  productProvBranch->SetAddress(&pInfo);
762  for(Long64_t i = 0, numEntries = eventMetaTree->GetEntries(); i < numEntries; ++i) {
763  productProvBranch->GetEntry(i);
764  for(std::vector<edm::ProductProvenance>::const_iterator it = info.begin(), itEnd = info.end();
765  it != itEnd; ++it) {
766  perProductParentage[it->branchID()].insert(it->parentageID());
767  }
768  }
769  } else {
770  std::cerr <<" could not find provenance information so can not show dependencies\n";
771  showDependencies_=false;
772  }
773  }
774  }
775  }
776  }
777 
778 
780 
782 
783  std::cout << "---------Producers with data in file---------" << std::endl;
784 
785  //using edm::ParameterSetID as the key does not work
786  // typedef std::map<edm::ParameterSetID, std::vector<edm::BranchDescription> > IdToBranches
787  ModuleToIdBranches moduleToIdBranches;
788  //IdToBranches idToBranches;
789 
790  std::map<edm::BranchID, std::string> branchIDToBranchName;
791 
792  for(edm::ProductRegistry::ProductList::const_iterator it =
793  reg_.productList().begin(), itEnd = reg_.productList().end();
794  it != itEnd;
795  ++it) {
796  //force it to rebuild the branch name
797  it->second.init();
798 
799  if(showDependencies_) {
800  branchIDToBranchName[it->second.branchID()] = it->second.branchName();
801  }
802  /*
803  std::cout << it->second.branchName()
804  << " id " << it->second.productID() << std::endl;
805  */
806  for(std::map<edm::ProcessConfigurationID, edm::ParameterSetID>::const_iterator
807  itId = it->second.parameterSetIDs().begin(),
808  itIdEnd = it->second.parameterSetIDs().end();
809  itId != itIdEnd;
810  ++itId) {
811 
812  std::stringstream s;
813  s << itId->second;
814  moduleToIdBranches[std::make_pair(it->second.processName(), it->second.moduleLabel())][s.str()].push_back(it->second);
815  //idToBranches[*itId].push_back(it->second);
816  }
817  }
818  for(ModuleToIdBranches::const_iterator it = moduleToIdBranches.begin(),
819  itEnd = moduleToIdBranches.end();
820  it != itEnd;
821  ++it) {
822  std::ostringstream sout;
823  sout << "Module: " << it->first.second << " " << it->first.first << std::endl;
824  IdToBranches const& idToBranches = it->second;
825  for(IdToBranches::const_iterator itIdBranch = idToBranches.begin(),
826  itIdBranchEnd = idToBranches.end();
827  itIdBranch != itIdBranchEnd;
828  ++itIdBranch) {
829  sout << " PSet id:" << itIdBranch->first << std::endl;
830  sout << " products: {" << std::endl;
831  std::set<edm::BranchID> branchIDs;
832  for(std::vector<edm::BranchDescription>::const_iterator itBranch = itIdBranch->second.begin(),
833  itBranchEnd = itIdBranch->second.end();
834  itBranch != itBranchEnd;
835  ++itBranch) {
836  sout << " " << itBranch->branchName() << std::endl;
837  branchIDs.insert(itBranch->branchID());
838  }
839  sout << " }" << std::endl;
840  edm::ParameterSetID psid(itIdBranch->first);
841  ParameterSetMap::const_iterator itpsm = psm_.find(psid);
842  if(psm_.end() == itpsm) {
843  ++errorCount_;
844  errorLog_ << "No ParameterSetID for " << psid << std::endl;
845  exitCode_ = 1;
846  } else {
847  sout << " parameters: ";
848  prettyPrint(sout, edm::ParameterSet((*itpsm).second.pset()), " ", " ");
849  sout << std::endl;
850  }
851  if(showDependencies_) {
853 
854  sout << " dependencies: {" << std::endl;
855  std::set<edm::ParentageID> parentageIDs;
856  for(std::set<edm::BranchID>::const_iterator itBranch = branchIDs.begin(), itBranchEnd = branchIDs.end();
857  itBranch != itBranchEnd;
858  ++itBranch) {
859  std::set<edm::ParentageID> const& temp = perProductParentage[*itBranch];
860  parentageIDs.insert(temp.begin(), temp.end());
861  }
862  for(std::set<edm::ParentageID>::const_iterator itParentID = parentageIDs.begin(), itEndParentID = parentageIDs.end();
863  itParentID != itEndParentID;
864  ++itParentID) {
865  edm::Parentage const* parentage = registry.getMapped(*itParentID);
866  if(0 != parentage) {
867  for(std::vector<edm::BranchID>::const_iterator itBranch = parentage->parents().begin(), itEndBranch = parentage->parents().end();
868  itBranch != itEndBranch;
869  ++itBranch) {
870  sout << " " << branchIDToBranchName[*itBranch] << std::endl;
871  }
872  } else {
873  sout << " ERROR:parentage info not in registry ParentageID=" << *itParentID << std::endl;
874  }
875  }
876  if(parentageIDs.empty()) {
877  sout << " no dependencies recorded (event may not contain data from this module)" << std::endl;
878  }
879  sout << " }" << std::endl;
880  }
881  if(findMatch_.empty() or sout.str().find(findMatch_) != std::string::npos) {
882  std::cout <<sout.str()<<std::endl;
883  }
884  }
885  }
886  if(showOtherModules_) {
887  std::cout << "---------Other Modules---------" << std::endl;
888  historyGraph_.printOtherModulesHistory(psm_, moduleToIdBranches, findMatch_, errorLog_);
889  }
890 
891  if(!excludeESModules_) {
892  std::cout << "---------EventSetup---------" << std::endl;
893  historyGraph_.printEventSetupHistory(psm_, findMatch_, errorLog_);
894  }
895 
896  if(showTopLevelPSets_) {
897  std::cout << "---------Top Level PSets---------" << std::endl;
898  historyGraph_.printTopLevelPSetsHistory(psm_, findMatch_, errorLog_);
899  }
900  if(errorCount_ != 0) {
901  exitCode_ = 1;
902  }
903 }
std::stringstream errorLog_
Definition: EdmProvDump.cc:465
std::string const & idToParameterSetBlobsBranchName()
Definition: BranchType.cc:249
int i
Definition: DBlmapReader.cc:9
std::string const & BranchTypeToMetaDataTreeName(BranchType const &branchType)
Definition: BranchType.cc:106
std::string const & parentageTreeName()
Definition: BranchType.cc:158
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventIDconst &, edm::Timestampconst & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
ParentageID id() const
Definition: Parentage.cc:20
edm::ProductRegistry reg_
Definition: EdmProvDump.cc:467
ParameterSetMap psm_
Definition: EdmProvDump.cc:470
HistoryNode historyGraph_
Definition: EdmProvDump.cc:471
static ThreadSafeRegistry * instance()
ProcessHistoryRegistry::collection_type ProcessHistoryMap
void dumpEventFilteringParameterSets_(TFile *file)
Definition: EdmProvDump.cc:537
edm::ProcessHistoryVector phv_
Definition: EdmProvDump.cc:469
void fillProductRegistryTransients(std::vector< ProcessConfiguration > const &pcVec, ProductRegistry const &preg, bool okToRegister=false)
std::string const & parameterSetsTreeName()
Definition: BranchType.cc:245
void setID(ParameterSetID const &id) const
ProcessConfigurationRegistry::vector_type ProcessConfigurationVector
std::vector< BranchID > const & parents() const
Definition: Parentage.h:38
ProductList const & productList() const
std::string const & processHistoryMapBranchName()
Definition: BranchType.cc:192
bool getMapped(key_type const &k, value_type &result) const
std::map< std::pair< std::string, std::string >, IdToBranches > ModuleToIdBranches
Definition: EdmProvDump.cc:40
std::string findMatch_
Definition: EdmProvDump.cc:476
Long64_t numEntries(TFile *hdl, std::string const &trname)
Definition: CollUtil.cc:50
int j
Definition: DBlmapReader.cc:9
double f[11][100]
ProcessHistoryRegistry::vector_type ProcessHistoryVector
std::string const & BranchTypeToBranchEntryInfoBranchName(BranchType const &branchType)
Definition: BranchType.cc:126
std::string const & metaDataTreeName()
Definition: BranchType.cc:167
std::string const & BranchTypeToProductTreeName(BranchType const &branchType)
Definition: BranchType.cc:102
std::unique_ptr< TFile > inputFile_
Definition: EdmProvDump.cc:463
std::string const & parameterSetMapBranchName()
Definition: BranchType.cc:182
static std::ostream & prettyPrint(std::ostream &oStream, edm::ParameterSet const &iPSet, std::string const &iIndent, std::string const &iIndentDelta)
Definition: EdmProvDump.cc:414
std::string const & processHistoryBranchName()
Definition: BranchType.cc:197
std::map< std::string, std::vector< edm::BranchDescription > > IdToBranches
Definition: EdmProvDump.cc:39
void dumpProcessHistory_()
Definition: EdmProvDump.cc:589
edm::ProcessConfigurationVector phc_
Definition: EdmProvDump.cc:468
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
Definition: Algorithms.h:120
std::string const & parentageBranchName()
Definition: BranchType.cc:162
std::map< ParameterSetID, ParameterSetBlob > ParameterSetMap
std::string const & productDescriptionBranchName()
Definition: BranchType.cc:172
std::string const & processConfigurationBranchName()
Definition: BranchType.cc:202
author Stefano ARGIRO author Bill Tanenbaum
std::string const & BranchTypeToProductProvenanceBranchName(BranchType const &BranchType)
Definition: BranchType.cc:130
tuple cout
Definition: gather_cfg.py:121
static Interceptor::Registry registry("Interceptor")
bool insertMapped(value_type const &v)
std::string const & moduleDescriptionMapBranchName()
Definition: BranchType.cc:187

Member Data Documentation

int ProvenanceDumper::errorCount_
private

Definition at line 466 of file EdmProvDump.cc.

Referenced by printErrors(), and work_().

std::stringstream ProvenanceDumper::errorLog_
private

Definition at line 465 of file EdmProvDump.cc.

Referenced by printErrors(), and work_().

bool ProvenanceDumper::excludeESModules_
private

Definition at line 473 of file EdmProvDump.cc.

Referenced by work_().

int ProvenanceDumper::exitCode_
private

Definition at line 464 of file EdmProvDump.cc.

Referenced by exitCode(), and work_().

std::string ProvenanceDumper::filename_
private

Definition at line 462 of file EdmProvDump.cc.

std::string ProvenanceDumper::findMatch_
private

Definition at line 476 of file EdmProvDump.cc.

Referenced by work_().

HistoryNode ProvenanceDumper::historyGraph_
private

Definition at line 471 of file EdmProvDump.cc.

Referenced by dumpProcessHistory_(), and work_().

std::unique_ptr<TFile> ProvenanceDumper::inputFile_
private

Definition at line 463 of file EdmProvDump.cc.

Referenced by work_().

edm::ProcessConfigurationVector ProvenanceDumper::phc_
private

Definition at line 468 of file EdmProvDump.cc.

Referenced by work_().

edm::ProcessHistoryVector ProvenanceDumper::phv_
private

Definition at line 469 of file EdmProvDump.cc.

Referenced by dumpProcessHistory_(), and work_().

ParameterSetMap ProvenanceDumper::psm_
private

Definition at line 470 of file EdmProvDump.cc.

Referenced by dumpParameterSetForID_(), and work_().

edm::ProductRegistry ProvenanceDumper::reg_
private

Definition at line 467 of file EdmProvDump.cc.

Referenced by work_().

bool ProvenanceDumper::showDependencies_
private

Definition at line 472 of file EdmProvDump.cc.

Referenced by work_().

bool ProvenanceDumper::showOtherModules_
private

Definition at line 474 of file EdmProvDump.cc.

Referenced by work_().

bool ProvenanceDumper::showTopLevelPSets_
private

Definition at line 475 of file EdmProvDump.cc.

Referenced by work_().