@@ -34,14 +34,16 @@ namespace edm {
3434 int prescale_;
3535 int verbosity_;
3636 int counter_;
37+ bool allProvenance_;
3738 };
3839
3940 AsciiOutputModule::AsciiOutputModule (ParameterSet const & pset)
4041 : global::OutputModuleBase(pset),
4142 global::OutputModule<>(pset),
4243 prescale_ (pset.getUntrackedParameter<unsigned int >(" prescale" )),
4344 verbosity_(pset.getUntrackedParameter<unsigned int >(" verbosity" )),
44- counter_(0 ) {
45+ counter_(0 ),
46+ allProvenance_(pset.getUntrackedParameter<bool >(" allProvenance" )) {
4547 if (prescale_ == 0 )
4648 prescale_ = 1 ;
4749 }
@@ -81,6 +83,29 @@ namespace edm {
8183 auto const & prov = e.getProvenance (desc.originalBranchID ());
8284 LogAbsolute (" AsciiOut" ) << prov;
8385
86+ if (verbosity_ > 2 ) {
87+ ProductDescription const & desc2 = prov.productDescription ();
88+ std::string const & process = desc2.processName ();
89+ std::string const & label = desc2.moduleLabel ();
90+ ProcessHistory const & processHistory = e.processHistory ();
91+
92+ for (ProcessConfiguration const & pc : processHistory) {
93+ if (pc.processName () == process) {
94+ ParameterSetID const & psetID = pc.parameterSetID ();
95+ pset::Registry const * psetRegistry = pset::Registry::instance ();
96+ ParameterSet const * processPset = psetRegistry->getMapped (psetID);
97+ if (processPset) {
98+ if (desc.isAlias ()) {
99+ LogAbsolute (" AsciiOut" ) << " Alias PSet\n " << processPset->getParameterSet (desc.moduleLabel ());
100+ }
101+ LogAbsolute (" AsciiOut" ) << processPset->getParameterSet (label) << " \n " ;
102+ }
103+ }
104+ }
105+ }
106+ } else if (allProvenance_) {
107+ auto const & prov = e.getStableProvenance (desc.originalBranchID ());
108+ LogAbsolute (" AsciiOut" ) << prov;
84109 if (verbosity_ > 2 ) {
85110 ProductDescription const & desc2 = prov.productDescription ();
86111 std::string const & process = desc2.processName ();
@@ -115,6 +140,8 @@ namespace edm {
115140 " 1: event ID and timestamp only\n "
116141 " 2: provenance for each kept product\n "
117142 " >2: PSet and provenance for each kept product" );
143+ desc.addUntracked (" allProvenance" , false )
144+ ->setComment (" when printing provenance info, also print stable provenance of non-kept data products." );
118145 OutputModule::fillDescription (desc);
119146 descriptions.add (" asciiOutput" , desc);
120147 }
0 commit comments