LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
evg::GenieOutput Class Reference
Inheritance diagram for evg::GenieOutput:
art::EDAnalyzer art::detail::Analyzer art::detail::LegacyModule art::Observer art::ModuleBase

Public Types

using Parameters = art::EDAnalyzer::Table< evg::GenieOutputParams >
 
using ModuleType = EDAnalyzer
 

Public Member Functions

 GenieOutput (const Parameters &params)
 
 ~GenieOutput ()
 
 GenieOutput (GenieOutput const &)=delete
 
 GenieOutput (GenieOutput &&)=delete
 
GenieOutputoperator= (GenieOutput const &)=delete
 
GenieOutputoperator= (GenieOutput &&)=delete
 
void analyze (art::Event const &e) override
 
void doBeginJob (SharedResources const &resources)
 
void doEndJob ()
 
void doRespondToOpenInputFile (FileBlock const &fb)
 
void doRespondToCloseInputFile (FileBlock const &fb)
 
void doRespondToOpenOutputFiles (FileBlock const &fb)
 
void doRespondToCloseOutputFiles (FileBlock const &fb)
 
bool doBeginRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doEndRun (RunPrincipal &rp, ModuleContext const &mc)
 
bool doBeginSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEndSubRun (SubRunPrincipal &srp, ModuleContext const &mc)
 
bool doEvent (EventPrincipal &ep, ModuleContext const &mc, std::atomic< std::size_t > &counts_run, std::atomic< std::size_t > &counts_passed, std::atomic< std::size_t > &counts_failed)
 
ModuleDescription const & moduleDescription () const
 
void setModuleDescription (ModuleDescription const &)
 
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables () const
 
void sortConsumables (std::string const &current_process_name)
 
std::unique_ptr< Worker > makeWorker (WorkerParams const &wp)
 
template<typename T , BranchType BT>
ViewToken< T > consumesView (InputTag const &tag)
 
template<typename T , BranchType BT>
ViewToken< T > mayConsumeView (InputTag const &tag)
 

Protected Member Functions

std::string const & processName () const
 
bool wantAllEvents () const noexcept
 
bool wantEvent (ScheduleID id, Event const &e) const
 
Handle< TriggerResults > getTriggerResults (Event const &e) const
 
ConsumesCollector & consumesCollector ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 

Private Member Functions

genie::NtpWriter * FetchNtpWriter (const std::string &label)
 
std::ostream * FetchDumpStream (const std::string &label)
 

Private Attributes

Parameters fParams
 
std::vector< std::string > fInputModuleLabels
 label(s) of existing MCTruth/GTruth/MCFlux More...
 
std::string fOutputGHEPFilePattern
 
std::string fDumpFilePattern
 
int fDumpGeniePrintLevel
 
bool fDumpMCTruth
 
bool fDumpGTruth
 
bool fDumpMCFlux
 
bool fSeparateOutputNtpWriters
 
bool fSeparateDumpStreams
 
std::map< std::string, genie::NtpWriter * > fOutputNtpWriters
 
std::map< std::string, std::ostream * > fDumpStreams
 

Detailed Description

Definition at line 100 of file GenieOutput_module.cc.

Member Typedef Documentation

Definition at line 22 of file EDAnalyzer.h.

Constructor & Destructor Documentation

evg::GenieOutput::GenieOutput ( const Parameters params)
explicit

Definition at line 169 of file GenieOutput_module.cc.

References fDumpFilePattern, fDumpGeniePrintLevel, fDumpGTruth, fDumpMCFlux, fDumpMCTruth, fInputModuleLabels, fOutputGHEPFilePattern, fParams, fSeparateDumpStreams, and fSeparateOutputNtpWriters.

170  : EDAnalyzer(params)
171  , fParams(params)
173  , fSeparateDumpStreams(false)
174 {
175 #ifdef GENIE_PRE_R3
176  // trigger early initialization of PDG database & GENIE message service
177  // just to get it out of the way and not intermixed with other output
178  genie::PDGLibrary::Instance();
179 #else
180  // get the GENIE banner out of the way
181  // no longer can use genie::PDGLibrary::Instance() to do this
182  // because that must happen, in some cases in v3_02_xx, after the tune
183  // is determined
184  // banner is triggered by first use of GENIE Messenger
185  // avoid using GENIE macros (possible conflict with mf macros)
186  // LOG("GENIE",pInfo) << "Trigger GENIE banner";
187  (*genie::Messenger::Instance())("GENIE") << log4cpp::Priority::INFO
188  << "Trigger GENIE banner";
189 #endif
190 
191 
192  fInputModuleLabels = fParams().inputModuleLabels();
193  fOutputGHEPFilePattern = fParams().outputGHEPFilePattern();
194  fDumpFilePattern = fParams().dumpFilePattern();
195  fDumpGeniePrintLevel = fParams().dumpGeniePrintLevel();
196 
198  ( fOutputGHEPFilePattern.find("%l") != std::string::npos );
200  ( fDumpFilePattern.find("%l") != std::string::npos );
201 
202  fDumpMCTruth = fParams().dumpMCTruth();
203  fDumpGTruth = fParams().dumpGTruth();
204  fDumpMCFlux = fParams().dumpMCFlux();
205 
206  /*
207  mf::LogInfo("GenieOutput") << "##### Dump options "
208  << fDumpMCTruth << " "
209  << fDumpGTruth << " "
210  << fDumpMCFlux << " " ;
211  */
212 
213 }
std::vector< std::string > fInputModuleLabels
label(s) of existing MCTruth/GTruth/MCFlux
std::string fDumpFilePattern
EDAnalyzer(fhicl::ParameterSet const &pset)
Definition: EDAnalyzer.cc:6
std::string fOutputGHEPFilePattern
evg::GenieOutput::~GenieOutput ( )

Definition at line 215 of file GenieOutput_module.cc.

References fDumpStreams, and fOutputNtpWriters.

216 {
217 
218  // release resources
220  fOutputNtpWriters.begin();
221  for ( ; mitro != fOutputNtpWriters.end(); ++mitro ) {
222  std::string label = mitro->first;
223  genie::NtpWriter* ntpw = mitro->second;
224  if ( ntpw ) {
225  // close out the file
226  ntpw->Save();
227  delete ntpw;
228  }
229  mitro->second = 0;
230  }
231 
233  for ( ; mitrd != fDumpStreams.end(); ++mitrd ) {
234  std::string label = mitrd->first;
235  std::ofstream* fout = dynamic_cast<std::ofstream*>(mitrd->second);
236  if ( fout ) {
237  fout->flush();
238  fout->close();
239  delete fout;
240  }
241  mitrd->second = 0;
242  }
243 }
intermediate_table::iterator iterator
std::map< std::string, genie::NtpWriter * > fOutputNtpWriters
std::map< std::string, std::ostream * > fDumpStreams
evg::GenieOutput::GenieOutput ( GenieOutput const &  )
delete
evg::GenieOutput::GenieOutput ( GenieOutput &&  )
delete

Member Function Documentation

void evg::GenieOutput::analyze ( art::Event const &  e)
overridevirtual

Implements art::EDAnalyzer.

Definition at line 245 of file GenieOutput_module.cc.

References fDumpGTruth, fDumpMCFlux, fDumpMCTruth, FetchDumpStream(), FetchNtpWriter(), fInputModuleLabels, evgb::MCTruthAndFriendsItr::GetGTruth(), evgb::MCTruthAndFriendsItr::GetLabel(), evgb::MCTruthAndFriendsItr::GetMCFlux(), evgb::MCTruthAndFriendsItr::GetMCTruth(), evgb::MCTruthAndFriendsItr::Next(), and evgb::RetrieveGHEP().

246 {
247  //std::cerr << "evg::GenieOutput::analyze " << std::endl;
248 
250 
251  bool flag = true;
252  int indx = -1;
253  while ( ( flag = mcitr.Next() ) ) {
254  ++indx;
255  std::string label = mcitr.GetLabel();
256  const simb::MCTruth* pmctruth = mcitr.GetMCTruth();
257  const simb::GTruth* pgtruth = mcitr.GetGTruth();
258  const simb::MCFlux* pmcflux = mcitr.GetMCFlux();
259 
260  static int ievt = -1; // ! bah!
261  ++ievt;
262 
263  static const simb::GTruth nullGTruth;
264  if ( ! pgtruth ) {
265  mf::LogInfo("GenieOutput") << "##### no GTruth ";
266  pgtruth = &nullGTruth;
267  }
268 
269  genie::EventRecord* grec = evgb::RetrieveGHEP(*pmctruth,*pgtruth);
270 
271  genie::NtpWriter* ntpWriter = FetchNtpWriter(label);
272  if ( ntpWriter ) {
273  // check ownership! (might need copy)
274  ntpWriter->AddEventRecord(ievt,grec);
275  }
276 
277  std::ostream* osdump = FetchDumpStream(label);
278  if ( osdump ) {
279  *osdump
280  << " ** Event: GenieOutput_module " << ievt
281  << *grec;
282  osdump->flush();
283  }
284 
285  if ( fDumpMCTruth || fDumpGTruth || fDumpMCFlux ) {
286  std::ostringstream dumpSimBaseObj;
287  dumpSimBaseObj << " after Next() " << indx << " " << flag
288  << std::endl;;
289  if ( fDumpMCTruth ) {
290  if ( pmctruth ) dumpSimBaseObj << *pmctruth << std::endl;
291  else dumpSimBaseObj << "no simb::MCTruth available" << std::endl;
292  }
293  if ( fDumpGTruth ) {
294  if ( pgtruth ) {
295  dumpSimBaseObj << *pgtruth << std::endl;
296  //dumpSimBaseObj << "sorry no operator<< exists for simb::GTruth"
297  // << " - someone should write one" << std::endl;
298  } else dumpSimBaseObj << "no simb::GTruth available" << std::endl;
299  }
300  if ( fDumpMCFlux ) {
301  if ( pmcflux ) dumpSimBaseObj << *pmcflux << std::endl;
302  else dumpSimBaseObj << "no simb::MCFlux available" << std::endl;
303  }
304  mf::LogInfo("GenieOutput") << dumpSimBaseObj.str();
305  }
306 
307  delete grec; // don't leak stuff
308  } // loop over MCTruthAndFriends
309 
310 }
std::vector< std::string > fInputModuleLabels
label(s) of existing MCTruth/GTruth/MCFlux
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
genie::EventRecord * RetrieveGHEP(const simb::MCTruth &truth, const simb::GTruth &gtruth, bool useFirstTrajPosition=true)
return genie::EventRecord pointer; callee takes possession
Definition: GENIE2ART.cxx:540
genie::NtpWriter * FetchNtpWriter(const std::string &label)
std::ostream * FetchDumpStream(const std::string &label)
TCEvent evt
Definition: DataStructs.cxx:8
Event generator information.
Definition: MCTruth.h:32
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::consumes ( InputTag const &  tag)
protectedinherited

Definition at line 61 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumes().

62  {
63  return collector_.consumes<T, BT>(tag);
64  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ProductToken< T > consumes(InputTag const &)
ConsumesCollector & art::ModuleBase::consumesCollector ( )
protectedinherited

Definition at line 57 of file ModuleBase.cc.

References art::ModuleBase::collector_.

58  {
59  return collector_;
60  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::consumesMany ( )
protectedinherited

Definition at line 75 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesMany().

76  {
77  collector_.consumesMany<T, BT>();
78  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::consumesView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::consumesView ( InputTag const &  tag)
inherited

Definition at line 68 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::consumesView().

69  {
70  return collector_.consumesView<T, BT>(tag);
71  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > consumesView(InputTag const &)
void art::detail::Analyzer::doBeginJob ( SharedResources const &  resources)
inherited

Definition at line 25 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

26  {
27  setupQueues(resources);
28  ProcessingFrame const frame{ScheduleID{}};
29  beginJobWithFrame(frame);
30  }
virtual void beginJobWithFrame(ProcessingFrame const &)=0
virtual void setupQueues(SharedResources const &)=0
bool art::detail::Analyzer::doBeginRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 68 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

69  {
70  ProcessingFrame const frame{mc.scheduleID()};
71  beginRunWithFrame(std::as_const(rp).makeRun(mc), frame);
72  return true;
73  }
virtual void beginRunWithFrame(Run const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doBeginSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 84 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

85  {
86  ProcessingFrame const frame{mc.scheduleID()};
87  beginSubRunWithFrame(std::as_const(srp).makeSubRun(mc), frame);
88  return true;
89  }
virtual void beginSubRunWithFrame(SubRun const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doEndJob ( )
inherited

Definition at line 33 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

34  {
35  ProcessingFrame const frame{ScheduleID{}};
36  endJobWithFrame(frame);
37  }
virtual void endJobWithFrame(ProcessingFrame const &)=0
bool art::detail::Analyzer::doEndRun ( RunPrincipal rp,
ModuleContext const &  mc 
)
inherited

Definition at line 76 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

77  {
78  ProcessingFrame const frame{mc.scheduleID()};
79  endRunWithFrame(std::as_const(rp).makeRun(mc), frame);
80  return true;
81  }
virtual void endRunWithFrame(Run const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doEndSubRun ( SubRunPrincipal srp,
ModuleContext const &  mc 
)
inherited

Definition at line 92 of file Analyzer.cc.

References art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

93  {
94  ProcessingFrame const frame{mc.scheduleID()};
95  endSubRunWithFrame(std::as_const(srp).makeSubRun(mc), frame);
96  return true;
97  }
virtual void endSubRunWithFrame(SubRun const &, ProcessingFrame const &)=0
bool art::detail::Analyzer::doEvent ( EventPrincipal ep,
ModuleContext const &  mc,
std::atomic< std::size_t > &  counts_run,
std::atomic< std::size_t > &  counts_passed,
std::atomic< std::size_t > &  counts_failed 
)
inherited

Definition at line 100 of file Analyzer.cc.

References e, and art::ModuleContext::scheduleID().

Referenced by art::detail::Analyzer::Analyzer().

105  {
106  auto const e = std::as_const(ep).makeEvent(mc);
107  if (wantEvent(mc.scheduleID(), e)) {
108  ++counts_run;
109  ProcessingFrame const frame{mc.scheduleID()};
110  analyzeWithFrame(e, frame);
111  ++counts_passed;
112  }
113  return true;
114  }
bool wantEvent(ScheduleID id, Event const &e) const
Definition: Observer.cc:63
Float_t e
Definition: plot.C:35
virtual void analyzeWithFrame(Event const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToCloseInputFile ( FileBlock const &  fb)
inherited

Definition at line 47 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

48  {
49  ProcessingFrame const frame{ScheduleID{}};
51  }
TFile fb("Li6.root")
virtual void respondToCloseInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToCloseOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 61 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

62  {
63  ProcessingFrame const frame{ScheduleID{}};
65  }
virtual void respondToCloseOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
void art::detail::Analyzer::doRespondToOpenInputFile ( FileBlock const &  fb)
inherited

Definition at line 40 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

41  {
42  ProcessingFrame const frame{ScheduleID{}};
44  }
TFile fb("Li6.root")
virtual void respondToOpenInputFileWithFrame(FileBlock const &, ProcessingFrame const &)=0
void art::detail::Analyzer::doRespondToOpenOutputFiles ( FileBlock const &  fb)
inherited

Definition at line 54 of file Analyzer.cc.

Referenced by art::detail::Analyzer::Analyzer().

55  {
56  ProcessingFrame const frame{ScheduleID{}};
58  }
virtual void respondToOpenOutputFilesWithFrame(FileBlock const &, ProcessingFrame const &)=0
TFile fb("Li6.root")
std::ostream * evg::GenieOutput::FetchDumpStream ( const std::string &  label)
private

Definition at line 344 of file GenieOutput_module.cc.

References DEFINE_ART_MODULE, fDumpFilePattern, fDumpGeniePrintLevel, fDumpStreams, and fSeparateDumpStreams.

Referenced by analyze().

344  {
345  if (fDumpGeniePrintLevel < 0 ) return 0;
346  genie::GHepRecord::SetPrintLevel(fDumpGeniePrintLevel);
347 
348  std::ostream* osret = 0;
349  if ( fSeparateDumpStreams ) osret = fDumpStreams[label];
350  else osret = fDumpStreams["*"];
351 
352  if ( osret ) return osret; // already openned
353 
354  // nope?? okay
355 
356  if ( fDumpFilePattern == "" ||
357  fDumpFilePattern == "--" ||
358  fDumpFilePattern == "cout" ||
359  fDumpFilePattern == "std::cout" ) {
360  // standardize so we don't check all these again
361  fDumpFilePattern = "std::cout";
362  osret = &(std::cout);
363  } else {
364  std::string finalFileName = fDumpFilePattern;
365  if ( fSeparateDumpStreams ) {
366  size_t posl = finalFileName.find("%l");
367  if ( posl != std::string::npos ) {
368  finalFileName.replace(posl,2,label);
369  }
370  }
371  osret = new std::ofstream(finalFileName.c_str(),
372  std::ios_base::trunc|std::ios_base::out);
373 
374  }
375  if ( fSeparateDumpStreams ) fDumpStreams[label] = osret;
376  else fDumpStreams["*"] = osret;
377 
378  return osret;
379 
380 }
std::string fDumpFilePattern
std::map< std::string, std::ostream * > fDumpStreams
genie::NtpWriter * evg::GenieOutput::FetchNtpWriter ( const std::string &  label)
private

Definition at line 312 of file GenieOutput_module.cc.

References fOutputGHEPFilePattern, fOutputNtpWriters, and fSeparateOutputNtpWriters.

Referenced by analyze().

312  {
313 
314  if ( fOutputGHEPFilePattern == "" ) return 0;
315 
316  genie::NtpWriter* ntpwret = 0;
317  if ( fSeparateOutputNtpWriters ) ntpwret = fOutputNtpWriters[label];
318  else ntpwret = fOutputNtpWriters["*"];
319 
320  if ( ntpwret ) return ntpwret; // already openned
321 
322  // nope?? okay
323 
324  std::string finalFileName = fOutputGHEPFilePattern;
326  size_t posl = finalFileName.find("%l");
327  if ( posl != std::string::npos ) {
328  finalFileName.replace(posl,2,label);
329  }
330  }
331  ntpwret = new genie::NtpWriter(genie::kNFGHEP,0);
332  ntpwret->CustomizeFilename(finalFileName);
333  ntpwret->Initialize();
334 
335  if ( fSeparateOutputNtpWriters ) fOutputNtpWriters[label] = ntpwret;
336  else fOutputNtpWriters["*"] = ntpwret;
337 
338  return ntpwret;
339 
340 
341 }
std::map< std::string, genie::NtpWriter * > fOutputNtpWriters
std::string fOutputGHEPFilePattern
std::array< std::vector< ProductInfo >, NumBranchTypes > const & art::ModuleBase::getConsumables ( ) const
inherited

Definition at line 43 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::getConsumables().

44  {
45  return collector_.getConsumables();
46  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
std::array< std::vector< ProductInfo >, NumBranchTypes > const & getConsumables() const
Handle< TriggerResults > art::Observer::getTriggerResults ( Event const &  e) const
protectedinherited

Definition at line 75 of file Observer.cc.

References art::ProductRetriever::get(), and art::Observer::selectors_.

Referenced by art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().

76  {
77  if (selectors_) {
78  return selectors_->getOneTriggerResults(e);
79  }
80 
81  // The following applies for cases where no SelectEvents entries
82  // exist.
83  Handle<TriggerResults> h;
84  if (e.get(empty_process_name, h)) {
85  return h;
86  }
87  return Handle<TriggerResults>{};
88  }
Float_t e
Definition: plot.C:35
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79
std::unique_ptr< Worker > art::ModuleBase::makeWorker ( WorkerParams const &  wp)
inherited

Definition at line 37 of file ModuleBase.cc.

References art::ModuleBase::doMakeWorker(), and art::NumBranchTypes.

38  {
39  return doMakeWorker(wp);
40  }
virtual std::unique_ptr< Worker > doMakeWorker(WorkerParams const &wp)=0
template<typename T , BranchType BT>
ProductToken< T > art::ModuleBase::mayConsume ( InputTag const &  tag)
protectedinherited

Definition at line 82 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsume().

83  {
84  return collector_.mayConsume<T, BT>(tag);
85  }
ProductToken< T > mayConsume(InputTag const &)
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename T , BranchType BT>
void art::ModuleBase::mayConsumeMany ( )
protectedinherited

Definition at line 96 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeMany().

97  {
98  collector_.mayConsumeMany<T, BT>();
99  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::ModuleBase::mayConsumeView ( InputTag const &  )
protectedinherited
template<typename T , BranchType BT>
ViewToken<T> art::ModuleBase::mayConsumeView ( InputTag const &  tag)
inherited

Definition at line 89 of file ModuleBase.h.

References art::ModuleBase::collector_, and art::ConsumesCollector::mayConsumeView().

90  {
91  return collector_.mayConsumeView<T, BT>(tag);
92  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
ViewToken< Element > mayConsumeView(InputTag const &)
ModuleDescription const & art::ModuleBase::moduleDescription ( ) const
inherited

Definition at line 13 of file ModuleBase.cc.

References art::errors::LogicError.

Referenced by art::OutputModule::doRespondToOpenInputFile(), art::OutputModule::doWriteEvent(), art::Modifier::fillProductDescriptions(), art::OutputModule::makePlugins_(), art::OutputWorker::OutputWorker(), reco::shower::LArPandoraModularShowerCreation::produce(), art::Modifier::registerProducts(), and art::OutputModule::registerProducts().

14  {
15  if (md_.has_value()) {
16  return *md_;
17  }
18 
20  "There was an error while calling moduleDescription().\n"}
21  << "The moduleDescription() base-class member function cannot be called\n"
22  "during module construction. To determine which module is "
23  "responsible\n"
24  "for calling it, find the '<module type>:<module "
25  "label>@Construction'\n"
26  "tag in the message prefix above. Please contact artists@fnal.gov\n"
27  "for guidance.\n";
28  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
GenieOutput& evg::GenieOutput::operator= ( GenieOutput const &  )
delete
GenieOutput& evg::GenieOutput::operator= ( GenieOutput &&  )
delete
string const & art::Observer::processName ( ) const
protectedinherited

Definition at line 57 of file Observer.cc.

References art::Observer::process_name_.

Referenced by art::FileDumperOutput::printPrincipal().

58  {
59  return process_name_;
60  }
std::string process_name_
Definition: Observer.h:76
void art::ModuleBase::setModuleDescription ( ModuleDescription const &  md)
inherited

Definition at line 31 of file ModuleBase.cc.

References art::ModuleBase::md_.

32  {
33  md_ = md;
34  }
std::optional< ModuleDescription > md_
Definition: ModuleBase.h:55
void art::ModuleBase::sortConsumables ( std::string const &  current_process_name)
inherited

Definition at line 49 of file ModuleBase.cc.

References art::ModuleBase::collector_, and art::ConsumesCollector::sortConsumables().

50  {
51  // Now that we know we have seen all the consumes declarations,
52  // sort the results for fast lookup later.
53  collector_.sortConsumables(current_process_name);
54  }
ConsumesCollector collector_
Definition: ModuleBase.h:56
void sortConsumables(std::string const &current_process_name)
bool art::Observer::wantAllEvents ( ) const
inlineprotectednoexceptinherited

Definition at line 31 of file Observer.h.

References e, art::Observer::getTriggerResults(), art::Observer::wantAllEvents_, and art::Observer::wantEvent().

32  {
33  return wantAllEvents_;
34  }
bool wantAllEvents_
Definition: Observer.h:75
bool art::Observer::wantEvent ( ScheduleID  id,
Event const &  e 
) const
protectedinherited

Definition at line 63 of file Observer.cc.

References art::Observer::rejectors_, art::Observer::selectors_, and art::Observer::wantAllEvents_.

Referenced by art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), and art::Observer::wantAllEvents().

64  {
65  if (wantAllEvents_) {
66  return true;
67  }
68  bool const select_event = selectors_ ? selectors_->matchEvent(id, e) : true;
69  bool const reject_event =
70  rejectors_ ? rejectors_->matchEvent(id, e) : false;
71  return select_event and not reject_event;
72  }
bool wantAllEvents_
Definition: Observer.h:75
std::optional< detail::ProcessAndEventSelectors > rejectors_
Definition: Observer.h:80
Float_t e
Definition: plot.C:35
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79

Member Data Documentation

std::string evg::GenieOutput::fDumpFilePattern
private

Definition at line 151 of file GenieOutput_module.cc.

Referenced by FetchDumpStream(), and GenieOutput().

int evg::GenieOutput::fDumpGeniePrintLevel
private

Definition at line 152 of file GenieOutput_module.cc.

Referenced by FetchDumpStream(), and GenieOutput().

bool evg::GenieOutput::fDumpGTruth
private

Definition at line 155 of file GenieOutput_module.cc.

Referenced by analyze(), and GenieOutput().

bool evg::GenieOutput::fDumpMCFlux
private

Definition at line 156 of file GenieOutput_module.cc.

Referenced by analyze(), and GenieOutput().

bool evg::GenieOutput::fDumpMCTruth
private

Definition at line 154 of file GenieOutput_module.cc.

Referenced by analyze(), and GenieOutput().

std::map<std::string,std::ostream*> evg::GenieOutput::fDumpStreams
private

Definition at line 162 of file GenieOutput_module.cc.

Referenced by FetchDumpStream(), and ~GenieOutput().

std::vector<std::string> evg::GenieOutput::fInputModuleLabels
private

label(s) of existing MCTruth/GTruth/MCFlux

Definition at line 149 of file GenieOutput_module.cc.

Referenced by analyze(), and GenieOutput().

std::string evg::GenieOutput::fOutputGHEPFilePattern
private

Definition at line 150 of file GenieOutput_module.cc.

Referenced by FetchNtpWriter(), and GenieOutput().

std::map<std::string,genie::NtpWriter*> evg::GenieOutput::fOutputNtpWriters
private

Definition at line 161 of file GenieOutput_module.cc.

Referenced by FetchNtpWriter(), and ~GenieOutput().

Parameters evg::GenieOutput::fParams
private

Definition at line 147 of file GenieOutput_module.cc.

Referenced by GenieOutput().

bool evg::GenieOutput::fSeparateDumpStreams
private

Definition at line 159 of file GenieOutput_module.cc.

Referenced by FetchDumpStream(), and GenieOutput().

bool evg::GenieOutput::fSeparateOutputNtpWriters
private

Definition at line 158 of file GenieOutput_module.cc.

Referenced by FetchNtpWriter(), and GenieOutput().


The documentation for this class was generated from the following file: