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
Inheritance diagram for ProvenanceDumper:

Public Member Functions

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

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_
 
boost::scoped_ptr< TFile > inputFile_
 
edm::ProcessConfigurationVector phc_
 
edm::ProcessHistoryVector phv_
 
ParameterSetMap psm_
 
edm::ProductRegistry reg_
 
bool showDependencies_
 
bool showOtherModules_
 

Detailed Description

Definition at line 376 of file EdmProvDump.cc.

Constructor & Destructor Documentation

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

Definition at line 414 of file EdmProvDump.cc.

418  :
420  inputFile_(makeTFile(filename)),
421  exitCode_(0),
422  errorLog_(),
423  errorCount_(0),
424  showDependencies_(showDependencies),
425  excludeESModules_(excludeESModules),
426  showOtherModules_(showOtherModules),
427  findMatch_(findMatch) {
428 }
std::stringstream errorLog_
Definition: EdmProvDump.cc:395
boost::scoped_ptr< TFile > inputFile_
Definition: EdmProvDump.cc:393
std::string findMatch_
Definition: EdmProvDump.cc:405
std::string filename_
Definition: EdmProvDump.cc:392
tuple filename
Definition: lut2db_cfg.py:20

Member Function Documentation

void ProvenanceDumper::dump ( std::ostream &  os)

Definition at line 431 of file EdmProvDump.cc.

References work_().

Referenced by main().

431  {
432  work_();
433 }
void ProvenanceDumper::dumpEventFilteringParameterSets ( edm::EventSelectionIDVector const &  ids)
private

Definition at line 446 of file EdmProvDump.cc.

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

Referenced by dumpEventFilteringParameterSets_().

446  {
447  edm::EventSelectionIDVector::size_type num_ids = ids.size();
448  if (num_ids == 0) {
449  std::cout << "No event filtering information is available.\n";
450  std::cout << "------------------------------\n";
451  } else {
452  std::cout << "Event filtering information for "
453  << num_ids
454  << " processing steps is available.\n"
455  << "The ParameterSets will be printed out, "
456  << "with the oldest printed first.\n";
457  for (edm::EventSelectionIDVector::size_type i = 0; i != num_ids; ++i) {
459  }
460  }
461 }
int i
Definition: DBlmapReader.cc:9
void dumpParameterSetForID_(edm::ParameterSetID const &id)
Definition: EdmProvDump.cc:494
uint16_t size_type
tuple cout
Definition: gather_cfg.py:41
void ProvenanceDumper::dumpEventFilteringParameterSets_ ( TFile *  file)
private

Definition at line 464 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_().

464  {
465 
466  TTree* history = dynamic_cast<TTree*>(file->Get(edm::poolNames::eventHistoryTreeName().c_str()));
467  if (history != 0) {
468  edm::History h;
469  edm::History* ph = &h;
470 
471  history->SetBranchAddress(edm::poolNames::eventHistoryBranchName().c_str(), &ph);
472  if (history->GetEntry(0) <= 0) {
473  std::cout << "No event filtering information is available; the event history tree has no entries\n";
474  } else {
476  }
477  } else {
478  TTree* events = dynamic_cast<TTree*>(file->Get(edm::poolNames::eventTreeName().c_str()));
479  assert (events != 0);
480  TBranch* eventSelectionsBranch = events->GetBranch(edm::poolNames::eventSelectionsBranchName().c_str());
481  assert (eventSelectionsBranch != 0);
483  edm::EventSelectionIDVector* pids = &ids;
484  eventSelectionsBranch->SetAddress(&pids);
485  if (eventSelectionsBranch->GetEntry(0) <= 0) {
486  std::cout << "No event filtering information is available; the event selections branch has no entries\n";
487  } else {
489  }
490  }
491 }
list file
Definition: dbtoweb.py:253
std::string const & eventSelectionsBranchName()
Definition: BranchType.cc:227
std::vector< EventSelectionID > EventSelectionIDVector
EventSelectionIDVector const & eventSelectionIDs() const
Definition: History.h:42
void dumpEventFilteringParameterSets(edm::EventSelectionIDVector const &ids)
Definition: EdmProvDump.cc:446
std::string const & eventHistoryBranchName()
Definition: BranchType.cc:222
tuple events
Definition: patZpeak.py:19
std::string const & eventTreeName()
Definition: BranchType.cc:244
tuple cout
Definition: gather_cfg.py:41
std::string const & eventHistoryTreeName()
Definition: BranchType.cc:252
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
void ProvenanceDumper::dumpParameterSetForID_ ( edm::ParameterSetID const &  id)
private

Definition at line 494 of file EdmProvDump.cc.

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

Referenced by dumpEventFilteringParameterSets().

494  {
495  std::cout << "ParameterSetID: " << id << '\n';
496  if (id.isValid()) {
497  ParameterSetMap::const_iterator i = psm_.find(id);
498  if (i == psm_.end()) {
499  std::cout << "We are unable to find the corresponding ParameterSet\n";
501  if (id == empty.id()) {
502  std::cout << "But it would have been empty anyway\n";
503  }
504  } else {
505  edm::ParameterSet ps(i->second.pset());
506  prettyPrint(std::cout, ps, " ", " ");
507  std::cout<< '\n';
508  }
509  } else {
510  std::cout << "This ID is not valid\n";
511  }
512  std::cout << " -------------------------\n";
513 }
int i
Definition: DBlmapReader.cc:9
ParameterSetID id() const
ParameterSetMap psm_
Definition: EdmProvDump.cc:400
static std::ostream & prettyPrint(std::ostream &oStream, edm::ParameterSet const &iPSet, std::string const &iIndent, std::string const &iIndentDelta)
Definition: EdmProvDump.cc:348
tuple cout
Definition: gather_cfg.py:41
void ProvenanceDumper::dumpProcessHistory_ ( )
private

Definition at line 516 of file EdmProvDump.cc.

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

Referenced by work_().

516  {
517  std::cout << "Processing History:" << std::endl;
518  if (1 == phv_.size()) {
519  std::cout << *phv_.begin();
520  historyGraph_.addChild(HistoryNode(*(phv_.begin()->begin()), 1));
521  } else {
522  bool multipleHistories = false;
523  std::map<edm::ProcessConfigurationID, unsigned int> simpleIDs;
524  for (edm::ProcessHistoryVector::const_iterator it = phv_.begin(), itEnd = phv_.end();
525  it != itEnd;
526  ++it) {
527  //loop over the history entries looking for matches
528  HistoryNode* parent = &historyGraph_;
529  for (edm::ProcessHistory::const_iterator itH = it->begin(), e = it->end();
530  itH != e;
531  ++itH) {
532  if (parent->size() == 0) {
533  unsigned int id = simpleIDs[itH->id()];
534  if (0 == id) {
535  id = 1;
536  simpleIDs[itH->id()] = id;
537  }
538  parent->addChild(HistoryNode(*itH, id));
539  parent = parent->lastChildAddress();
540  } else {
541  //see if this is unique
542  bool isUnique = true;
543  for (HistoryNode::iterator itChild = parent->begin(), itChildEnd = parent->end();
544  itChild != itChildEnd;
545  ++itChild) {
546  if (itChild->configurationID() == itH->id()) {
547  isUnique = false;
548  parent = &(*itChild);
549  break;
550  }
551  }
552  if (isUnique) {
553  multipleHistories = true;
554  simpleIDs[itH->id()] = parent->size() + 1;
555  parent->addChild(HistoryNode(*itH, simpleIDs[itH->id()]));
556  parent = parent->lastChildAddress();
557  }
558  }
559  }
560  }
561  historyGraph_.printHistory();
562  }
563 }
collection_type::const_iterator const_iterator
list parent
Definition: dbtoconf.py:74
HistoryNode historyGraph_
Definition: EdmProvDump.cc:401
edm::ProcessHistoryVector phv_
Definition: EdmProvDump.cc:399
tuple cout
Definition: gather_cfg.py:41
int ProvenanceDumper::exitCode ( ) const

Definition at line 441 of file EdmProvDump.cc.

References exitCode_.

Referenced by main().

441  {
442  return exitCode_;
443 }
void ProvenanceDumper::printErrors ( std::ostream &  os)

Definition at line 436 of file EdmProvDump.cc.

References errorCount_, and errorLog_.

Referenced by main().

436  {
437  if (errorCount_ > 0) os << errorLog_.str() << std::endl;
438 }
std::stringstream errorLog_
Definition: EdmProvDump.cc:395
void ProvenanceDumper::work_ ( )
private

Definition at line 566 of file EdmProvDump.cc.

References edm::BranchTypeToBranchEntryInfoBranchName(), edm::BranchTypeToMetaDataTreeName(), edm::BranchTypeToProductTreeName(), ExpressReco_HICollisions_FallBack::cerr, gather_cfg::cout, dumpEventFilteringParameterSets_(), dumpProcessHistory_(), ExpressReco_HICollisions_FallBack::e, errorCount_, errorLog_, excludeESModules_, exitCode_, f, edm::fillProductRegistryTransients(), findMatch_, edm::detail::ThreadSafeRegistry< KEY, T, E >::getMapped(), historyGraph_, i, 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(), CrabTask::pset, psm_, reg_, PhysicsTools::registry, asciidump::s, showDependencies_, showOtherModules_, edm::sort_all(), and cond::rpcobtemp::temp.

Referenced by dump().

566  {
567 
568  TTree* meta = dynamic_cast<TTree*>(inputFile_->Get(edm::poolNames::metaDataTreeName().c_str()));
569  assert(0 != meta);
570 
571  edm::ProductRegistry* pReg = &reg_;
572  meta->SetBranchAddress(edm::poolNames::productDescriptionBranchName().c_str(), &pReg);
573 
574  ParameterSetMap* pPsm = &psm_;
575  if(meta->FindBranch(edm::poolNames::parameterSetMapBranchName().c_str()) != 0) {
576  meta->SetBranchAddress(edm::poolNames::parameterSetMapBranchName().c_str(), &pPsm);
577  } else {
578  TTree* psetTree = dynamic_cast<TTree *>(inputFile_->Get(edm::poolNames::parameterSetsTreeName().c_str()));
579  assert(0!=psetTree);
580  typedef std::pair<edm::ParameterSetID, edm::ParameterSetBlob> IdToBlobs;
581  IdToBlobs idToBlob;
582  IdToBlobs* pIdToBlob = &idToBlob;
583  psetTree->SetBranchAddress(edm::poolNames::idToParameterSetBlobsBranchName().c_str(), &pIdToBlob);
584  for(long long i = 0; i != psetTree->GetEntries(); ++i) {
585  psetTree->GetEntry(i);
586  psm_.insert(idToBlob);
587  }
588  }
590  if (meta->FindBranch(edm::poolNames::processConfigurationBranchName().c_str()) != 0) {
591  meta->SetBranchAddress(edm::poolNames::processConfigurationBranchName().c_str(), &pPhc);
592  }
593 
595  if (meta->FindBranch(edm::poolNames::processHistoryBranchName().c_str()) != 0) {
596  meta->SetBranchAddress(edm::poolNames::processHistoryBranchName().c_str(), &pPhv);
597  }
598 
600  edm::ProcessHistoryMap* pPhm = &phm;
601  if (meta->FindBranch(edm::poolNames::processHistoryMapBranchName().c_str()) != 0) {
602  meta->SetBranchAddress(edm::poolNames::processHistoryMapBranchName().c_str(), &pPhm);
603  }
604 
605  if (meta->FindBranch(edm::poolNames::moduleDescriptionMapBranchName().c_str()) != 0) {
606  if (meta->GetBranch(edm::poolNames::moduleDescriptionMapBranchName().c_str())->GetSplitLevel() != 0) {
607  meta->SetBranchStatus((edm::poolNames::moduleDescriptionMapBranchName() + ".*").c_str(), 0);
608  } else {
609  meta->SetBranchStatus(edm::poolNames::moduleDescriptionMapBranchName().c_str(), 0);
610  }
611  }
612 
613  meta->GetEntry(0);
614  assert(0 != pReg);
615 
617  for (ParameterSetMap::const_iterator i = psm_.begin(), iEnd = psm_.end(); i != iEnd; ++i) {
618  edm::ParameterSet pset(i->second.pset());
619  pset.setID(i->first);
620  psetRegistry.insertMapped(pset);
621  }
622 
623 
624  // backward compatibility
625  if (!phm.empty()) {
626  for (edm::ProcessHistoryMap::const_iterator i = phm.begin(), e = phm.end(); i != e; ++i) {
627  phv_.push_back(i->second);
628  for (edm::ProcessConfigurationVector::const_iterator j = i->second.begin(), f = i->second.end(); j != f; ++j) {
629  phc_.push_back(*j);
630  }
631  }
633  phc_.erase(std::unique(phc_.begin(), phc_.end()), phc_.end());
634  }
635 
637 
638  //Prepare the parentage information if requested
639  std::map<edm::BranchID, std::set<edm::ParentageID> > perProductParentage;
640 
641  if(showDependencies_){
642  TTree* parentageTree = dynamic_cast<TTree*>(inputFile_->Get(edm::poolNames::parentageTreeName().c_str()));
643  if(0 == parentageTree) {
644  std::cerr << "no Parentage tree available so can not show dependencies/n";
645  showDependencies_ = false;
646  } else {
647  edm::Parentage parentageBuffer;
648  edm::Parentage *pParentageBuffer = &parentageBuffer;
649  parentageTree->SetBranchAddress(edm::poolNames::parentageBranchName().c_str(), &pParentageBuffer);
650 
652 
653  for(Long64_t i = 0, numEntries = parentageTree->GetEntries(); i < numEntries; ++i) {
654  parentageTree->GetEntry(i);
655  registry.insertMapped(parentageBuffer);
656  }
657  parentageTree->SetBranchAddress(edm::poolNames::parentageBranchName().c_str(), 0);
658 
659  TTree* eventMetaTree = dynamic_cast<TTree*>(inputFile_->Get(edm::BranchTypeToMetaDataTreeName(edm::InEvent).c_str()));
660  if(0 == eventMetaTree) {
661  eventMetaTree = dynamic_cast<TTree*>(inputFile_->Get(edm::BranchTypeToProductTreeName(edm::InEvent).c_str()));
662  }
663  if(0 == eventMetaTree) {
664  std::cerr << "no '" << edm::BranchTypeToProductTreeName(edm::InEvent)<< "' Tree in file so can not show dependencies\n";
665  showDependencies_ = false;
666  } else {
667  TBranch* productProvBranch = eventMetaTree->GetBranch(edm::BranchTypeToBranchEntryInfoBranchName(edm::InEvent).c_str());
668 
669  std::vector<edm::ProductProvenance> info;
670  std::vector<edm::ProductProvenance>* pInfo = &info;
671  productProvBranch->SetAddress(&pInfo);
672  for(Long64_t i = 0, numEntries = eventMetaTree->GetEntries(); i < numEntries; ++i) {
673  productProvBranch->GetEntry(i);
674  for(std::vector<edm::ProductProvenance>::const_iterator it = info.begin(), itEnd = info.end();
675  it != itEnd; ++it) {
676  perProductParentage[it->branchID()].insert(it->parentageID());
677  }
678  }
679  }
680  }
681  }
682 
683 
685 
687 
688  std::cout << "---------Producers with data in file---------" << std::endl;
689 
690  //using edm::ParameterSetID as the key does not work
691  // typedef std::map<edm::ParameterSetID, std::vector<edm::BranchDescription> > IdToBranches
692  ModuleToIdBranches moduleToIdBranches;
693  //IdToBranches idToBranches;
694 
695  std::map<edm::BranchID, std::string> branchIDToBranchName;
696 
697  for (edm::ProductRegistry::ProductList::const_iterator it =
698  reg_.productList().begin(), itEnd = reg_.productList().end();
699  it != itEnd;
700  ++it) {
701  //force it to rebuild the branch name
702  it->second.init();
703 
704  if(showDependencies_) {
705  branchIDToBranchName[it->second.branchID()]=it->second.branchName();
706  }
707  /*
708  std::cout << it->second.branchName()
709  << " id " << it->second.productID() << std::endl;
710  */
711  for (std::map<edm::ProcessConfigurationID, edm::ParameterSetID>::const_iterator
712  itId = it->second.parameterSetIDs().begin(),
713  itIdEnd = it->second.parameterSetIDs().end();
714  itId != itIdEnd;
715  ++itId) {
716 
717  std::stringstream s;
718  s << itId->second;
719  moduleToIdBranches[std::make_pair(it->second.processName(), it->second.moduleLabel())][s.str()].push_back(it->second);
720  //idToBranches[*itId].push_back(it->second);
721  }
722  }
723  for (ModuleToIdBranches::const_iterator it = moduleToIdBranches.begin(),
724  itEnd = moduleToIdBranches.end();
725  it != itEnd;
726  ++it) {
727  std::ostringstream sout;
728  sout << "Module: " << it->first.second << " " << it->first.first << std::endl;
729  IdToBranches const& idToBranches = it->second;
730  for (IdToBranches::const_iterator itIdBranch = idToBranches.begin(),
731  itIdBranchEnd = idToBranches.end();
732  itIdBranch != itIdBranchEnd;
733  ++itIdBranch) {
734  sout << " PSet id:" << itIdBranch->first << std::endl;
735  sout << " products: {" << std::endl;
736  std::set<edm::BranchID> branchIDs;
737  for (std::vector<edm::BranchDescription>::const_iterator itBranch = itIdBranch->second.begin(),
738  itBranchEnd = itIdBranch->second.end();
739  itBranch != itBranchEnd;
740  ++itBranch) {
741  sout << " " << itBranch->branchName() << std::endl;
742  branchIDs.insert(itBranch->branchID());
743  }
744  sout << " }" << std::endl;
745  edm::ParameterSetID psid(itIdBranch->first);
746  ParameterSetMap::const_iterator itpsm = psm_.find(psid);
747  if (psm_.end() == itpsm) {
748  ++errorCount_;
749  errorLog_ << "No ParameterSetID for " << psid << std::endl;
750  exitCode_ = 1;
751  } else {
752  sout << " parameters: ";
753  prettyPrint(sout, edm::ParameterSet((*itpsm).second.pset()), " ", " ");
754  sout << std::endl;
755  }
756  if(showDependencies_) {
758 
759  sout << " dependencies: {" << std::endl;
760  std::set<edm::ParentageID> parentageIDs;
761  for(std::set<edm::BranchID>::const_iterator itBranch = branchIDs.begin(), itBranchEnd=branchIDs.end();
762  itBranch != itBranchEnd;
763  ++itBranch) {
764  std::set<edm::ParentageID> const& temp = perProductParentage[*itBranch];
765  parentageIDs.insert(temp.begin(), temp.end());
766  }
767  for(std::set<edm::ParentageID>::const_iterator itParentID = parentageIDs.begin(), itEndParentID=parentageIDs.end();
768  itParentID != itEndParentID;
769  ++itParentID) {
770  edm::Parentage const* parentage = registry.getMapped(*itParentID);
771  if(0!=parentage) {
772  for(std::vector<edm::BranchID>::const_iterator itBranch=parentage->parents().begin(), itEndBranch=parentage->parents().end();
773  itBranch != itEndBranch;
774  ++itBranch) {
775  sout << " " << branchIDToBranchName[*itBranch] << std::endl;
776  }
777  } else {
778  sout << " ERROR:parentage info not in registry ParentageID=" << *itParentID << std::endl;
779  }
780  }
781  if(parentageIDs.empty()) {
782  sout << " no dependencies recorded (event may not contain data from this module)" << std::endl;
783  }
784  sout << " }" << std::endl;
785  }
786  if(findMatch_.empty() or sout.str().find(findMatch_) != std::string::npos) {
787  std::cout <<sout.str()<<std::endl;
788  }
789  }
790  }
791  if(showOtherModules_) {
792  std::cout << "---------Other Modules---------" << std::endl;
793  historyGraph_.printOtherModulesHistory(psm_, moduleToIdBranches, findMatch_, errorLog_);
794  }
795 
796  if(!excludeESModules_) {
797  std::cout << "---------EventSetup---------" << std::endl;
798  historyGraph_.printEventSetupHistory(psm_, findMatch_, errorLog_);
799  }
800  if (errorCount_ != 0) {
801  exitCode_ = 1;
802  }
803 }
std::stringstream errorLog_
Definition: EdmProvDump.cc:395
std::string const & idToParameterSetBlobsBranchName()
Definition: BranchType.cc:239
int i
Definition: DBlmapReader.cc:9
std::string const & BranchTypeToMetaDataTreeName(BranchType const &branchType)
Definition: BranchType.cc:100
std::string const & parentageTreeName()
Definition: BranchType.cc:148
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
edm::ProductRegistry reg_
Definition: EdmProvDump.cc:397
ParameterSetMap psm_
Definition: EdmProvDump.cc:400
boost::scoped_ptr< TFile > inputFile_
Definition: EdmProvDump.cc:393
bool getMapped(key_type const &k, value_type &result) const
HistoryNode historyGraph_
Definition: EdmProvDump.cc:401
ProcessHistoryRegistry::collection_type ProcessHistoryMap
void dumpEventFilteringParameterSets_(TFile *file)
Definition: EdmProvDump.cc:464
bool insertMapped(value_type const &v)
edm::ProcessHistoryVector phv_
Definition: EdmProvDump.cc:399
void fillProductRegistryTransients(std::vector< ProcessConfiguration > const &pcVec, ProductRegistry const &preg, bool okToRegister=false)
std::string const & parameterSetsTreeName()
Definition: BranchType.cc:235
ProcessConfigurationRegistry::vector_type ProcessConfigurationVector
std::vector< BranchID > const & parents() const
Definition: Parentage.h:39
ProductList const & productList() const
std::string const & processHistoryMapBranchName()
Definition: BranchType.cc:182
std::map< std::pair< std::string, std::string >, IdToBranches > ModuleToIdBranches
Definition: EdmProvDump.cc:41
std::string findMatch_
Definition: EdmProvDump.cc:405
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:120
tuple pset
Definition: CrabTask.py:85
std::string const & metaDataTreeName()
Definition: BranchType.cc:157
std::string const & BranchTypeToProductTreeName(BranchType const &branchType)
Definition: BranchType.cc:96
std::string const & parameterSetMapBranchName()
Definition: BranchType.cc:172
static std::ostream & prettyPrint(std::ostream &oStream, edm::ParameterSet const &iPSet, std::string const &iIndent, std::string const &iIndentDelta)
Definition: EdmProvDump.cc:348
std::string const & processHistoryBranchName()
Definition: BranchType.cc:187
std::map< std::string, std::vector< edm::BranchDescription > > IdToBranches
Definition: EdmProvDump.cc:40
void dumpProcessHistory_()
Definition: EdmProvDump.cc:516
edm::ProcessConfigurationVector phc_
Definition: EdmProvDump.cc:398
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
Definition: Algorithms.h:120
std::string const & parentageBranchName()
Definition: BranchType.cc:152
std::map< ParameterSetID, ParameterSetBlob > ParameterSetMap
std::string const & productDescriptionBranchName()
Definition: BranchType.cc:162
std::string const & processConfigurationBranchName()
Definition: BranchType.cc:192
author Stefano ARGIRO author Bill Tanenbaum
tuple cout
Definition: gather_cfg.py:41
static ThreadSafeRegistry * instance()
string s
Definition: asciidump.py:422
static Interceptor::Registry registry("Interceptor")
std::string const & moduleDescriptionMapBranchName()
Definition: BranchType.cc:177

Member Data Documentation

int ProvenanceDumper::errorCount_
private

Definition at line 396 of file EdmProvDump.cc.

Referenced by printErrors(), and work_().

std::stringstream ProvenanceDumper::errorLog_
private

Definition at line 395 of file EdmProvDump.cc.

Referenced by printErrors(), and work_().

bool ProvenanceDumper::excludeESModules_
private

Definition at line 403 of file EdmProvDump.cc.

Referenced by work_().

int ProvenanceDumper::exitCode_
private

Definition at line 394 of file EdmProvDump.cc.

Referenced by exitCode(), and work_().

std::string ProvenanceDumper::filename_
private

Definition at line 392 of file EdmProvDump.cc.

std::string ProvenanceDumper::findMatch_
private

Definition at line 405 of file EdmProvDump.cc.

Referenced by work_().

HistoryNode ProvenanceDumper::historyGraph_
private

Definition at line 401 of file EdmProvDump.cc.

Referenced by dumpProcessHistory_(), and work_().

boost::scoped_ptr<TFile> ProvenanceDumper::inputFile_
private

Definition at line 393 of file EdmProvDump.cc.

Referenced by work_().

edm::ProcessConfigurationVector ProvenanceDumper::phc_
private

Definition at line 398 of file EdmProvDump.cc.

Referenced by work_().

edm::ProcessHistoryVector ProvenanceDumper::phv_
private

Definition at line 399 of file EdmProvDump.cc.

Referenced by dumpProcessHistory_(), and work_().

ParameterSetMap ProvenanceDumper::psm_
private

Definition at line 400 of file EdmProvDump.cc.

Referenced by dumpParameterSetForID_(), and work_().

edm::ProductRegistry ProvenanceDumper::reg_
private

Definition at line 397 of file EdmProvDump.cc.

Referenced by work_().

bool ProvenanceDumper::showDependencies_
private

Definition at line 402 of file EdmProvDump.cc.

Referenced by work_().

bool ProvenanceDumper::showOtherModules_
private

Definition at line 404 of file EdmProvDump.cc.

Referenced by work_().