LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
art::Observer Class Reference

#include "Observer.h"

Inheritance diagram for art::Observer:
art::ModuleBase art::detail::Analyzer art::OutputModule art::EDAnalyzer art::ReplicatedAnalyzer art::SharedAnalyzer art::FileDumperOutput art::ProvenanceCheckerOutput art::ProvenanceDumper< DETAIL, Enable > art::ProvenanceDumper< DETAIL, std::void_t< typename DETAIL::Config > > artg4tk::CheckCalorimeterHits artg4tk::CheckDRCalorimeterHits artg4tk::CheckGenParticle artg4tk::CheckHits artg4tk::CheckInteractions artg4tk::CheckPhotonHits artg4tk::CheckProtonProduction artg4tk::CheckTrackerHits caldata::CalWireAna caldata::DumpWires calo::CaloChecker calo::PrintCalorimetry cheat::CheckBackTracking cheat::RecoCheckAna cluster::ClusterAna cluster::ClusterPCA cluster::ClusterTrackAna cluster::DBclusterAna cluster::HoughLineFinderAna ClusteringValidation::ClusteringValidation detsim::DumpOpDetWaveforms detsim::DumpRawDigits detsim::SimDriftedElectronClusterAna detsim::SimWireAna detsim::WienerFilterAna dnn::SaveImageH5 DUNE::MuonTrackingEff DUNE::NeutrinoShowerEff DUNE::NeutrinoTrackingEff ems::MultiEMShowers evd::EVD evg::GenieOutput geo::DumpChannelMap geo::DumpGeometry hit::DumpHits hit::GausHitFinderAna hit::HitAnaModule hit::HitFinderAna hit::MagDriftAna hit::MCHitAnaExample lar::ComputePi lar::example::AnalysisExample lar::example::Exploder lar_pandora::ConsolidatedPFParticleAnalysisTemplate lar_pandora::LArPandoraEventDump lar_pandora::PFParticleAnalysis lar_pandora::PFParticleCosmicAna lar_pandora::PFParticleHitDumper lar_pandora::PFParticleMonitoring lar_pandora::PFParticleTrackAna lar_pandora::PFParticleValidation larg4::CheckAuxDetHit larg4::CheckMCParticle larg4::CheckSimEnergyDeposit larg4::ISCalcAna larg4::LArG4Ana larg::LArSimChannelAna lcvn::ICVNZlibMaker MCBTDemo microboone::CosmicRemovalAna nnet::EvaluateROIEff nnet::NoiseWaveformDump nnet::PointIdEffTest nnet::PointIdTrainingData nnet::RawWaveformClnSigDump nnet::RawWaveformDump nnet::WaveformDenoiseTest NuGraphAnalyzer NuShowerEff opdet::FIFOHistogramAna opdet::FlashHypothesisAna opdet::LEDCalibrationAna opdet::OpDigiAna opdet::OpFlashAna opdet::OpFlashMCTruthAna opdet::OpFlashSimpleAna opdet::OpHitAna opdet::PhotonInf opdet::SimPhotonCounter ophit::DumpOpFlashes ophit::DumpOpHits opreco::OpticalRecoAna pdsp::CheckCNNScore pfpf::PFPAna phot::CreateHybridLibrary phot::PhotonLibraryAnalyzer pid::DumpParticleIDs pid::PIDAAnalyzer pmtana::PMTAna quad::EvalVtx reco3d::PlotSpacePoints recob::DumpChargedSpacePoints recob::DumpClusters recob::DumpPCAxes recob::DumpPFParticles recob::DumpSeeds recob::DumpSpacePoints recob::DumpTracks recob::DumpVertices RecoProxyUsageExample rwgt::ReweightAna shower::TCShowerAnalysis shower::TCShowerElectronLikelihood shower::TCShowerTemplateMaker ShowerQuality sim::DumpGTruth sim::DumpMCParticles sim::DumpMCShowers sim::DumpMCTracks sim::DumpMCTruth sim::DumpOpDetBacktrackerRecords sim::DumpSimChannels sim::DumpSimEnergyDeposits sim::DumpSimPhotons sim::DumpSimPhotonsLite sim::POTaccumulator trk::TrackContainmentAnalyzer trkf::SeedAna trkf::SpacePointAna trkf::TrackAna vertex::AggregateVertexAna vertex::FeatureVertexFinderAna wc::CellTree

Classes

struct  EOConfig
 

Public Member Functions

 ~Observer () noexcept
 
 Observer (Observer const &)=delete
 
 Observer (Observer &&)=delete
 
Observeroperator= (Observer const &)=delete
 
Observeroperator= (Observer &&)=delete
 
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< WorkermakeWorker (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< TriggerResultsgetTriggerResults (Event const &e) const
 
 Observer (fhicl::ParameterSet const &config)
 
 Observer (std::vector< std::string > const &select_paths, std::vector< std::string > const &reject_paths)
 
ConsumesCollectorconsumesCollector ()
 
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 Attributes

bool wantAllEvents_
 
std::string process_name_
 
std::optional< detail::ProcessAndEventSelectorsselectors_
 
std::optional< detail::ProcessAndEventSelectorsrejectors_
 
fhicl::ParameterSetID selector_config_id_
 

Detailed Description

Definition at line 20 of file Observer.h.

Constructor & Destructor Documentation

art::Observer::~Observer ( )
defaultnoexcept
art::Observer::Observer ( Observer const &  )
delete
art::Observer::Observer ( Observer &&  )
delete
art::Observer::Observer ( fhicl::ParameterSet const &  config)
explicitprotected

Definition at line 43 of file Observer.cc.

44  : Observer{pset.get<vector<string>>("SelectEvents", {}),
45  pset.get<vector<string>>("RejectEvents", {})}
46  {}
Observer(Observer const &)=delete
art::Observer::Observer ( std::vector< std::string > const &  select_paths,
std::vector< std::string > const &  reject_paths 
)
explicitprotected

Definition at line 48 of file Observer.cc.

References util::empty(), art::Globals::instance(), process_name_, art::Globals::processName(), rejectors_, and selectors_.

50  : wantAllEvents_{empty(select_paths) and empty(reject_paths)}
52  , selectors_{make_selectors(select_paths, process_name_)}
53  , rejectors_{make_selectors(reject_paths, process_name_)}
54  {}
bool wantAllEvents_
Definition: Observer.h:75
std::string process_name_
Definition: Observer.h:76
std::string const & processName() const
Definition: Globals.cc:48
std::optional< detail::ProcessAndEventSelectors > rejectors_
Definition: Observer.h:80
static Globals * instance()
Definition: Globals.cc:17
std::optional< detail::ProcessAndEventSelectors > selectors_
Definition: Observer.h:79
decltype(auto) constexpr empty(T &&obj)
ADL-aware version of std::empty.
Definition: StdUtils.h:109

Member Function Documentation

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 &)
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
protected

Definition at line 75 of file Observer.cc.

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

Referenced by art::OutputModule::doWriteEvent(), and 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
Observer& art::Observer::operator= ( Observer const &  )
delete
Observer& art::Observer::operator= ( Observer &&  )
delete
string const & art::Observer::processName ( ) const
protected

Definition at line 57 of file Observer.cc.

References 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
inlineprotectednoexcept

Definition at line 31 of file Observer.h.

References e, getTriggerResults(), wantAllEvents_, and wantEvent().

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

Definition at line 63 of file Observer.cc.

References rejectors_, selectors_, and wantAllEvents_.

Referenced by art::OutputModule::doEvent(), art::OutputModule::doWriteEvent(), and 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 art::Observer::process_name_
private

Definition at line 76 of file Observer.h.

Referenced by Observer(), and processName().

std::optional<detail::ProcessAndEventSelectors> art::Observer::rejectors_
private

Definition at line 80 of file Observer.h.

Referenced by Observer(), and wantEvent().

fhicl::ParameterSetID art::Observer::selector_config_id_
private

Definition at line 83 of file Observer.h.

std::optional<detail::ProcessAndEventSelectors> art::Observer::selectors_
private

Definition at line 79 of file Observer.h.

Referenced by getTriggerResults(), Observer(), and wantEvent().

bool art::Observer::wantAllEvents_
private

Definition at line 75 of file Observer.h.

Referenced by wantAllEvents(), and wantEvent().


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