LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
lar_pandora::CollectionMerging Class Reference
Inheritance diagram for lar_pandora::CollectionMerging:
art::EDProducer art::ProducerBase art::Consumer art::EngineCreator art::ProductRegistryHelper

Public Types

using ModuleType = EDProducer
 
using WorkerType = WorkerT< EDProducer >
 
template<typename UserConfig , typename KeysToIgnore = void>
using Table = ProducerBase::Table< UserConfig, KeysToIgnore >
 

Public Member Functions

 CollectionMerging (fhicl::ParameterSet const &pset)
 
 CollectionMerging (CollectionMerging const &)=delete
 
 CollectionMerging (CollectionMerging &&)=delete
 
CollectionMergingoperator= (CollectionMerging const &)=delete
 
CollectionMergingoperator= (CollectionMerging &&)=delete
 
void produce (art::Event &evt) override
 
template<typename PROD , BranchType B = InEvent>
ProductID getProductID (std::string const &instanceName={}) const
 
template<typename PROD , BranchType B>
ProductID getProductID (ModuleDescription const &moduleDescription, std::string const &instanceName) const
 
bool modifiesEvent () const
 
template<typename T , BranchType = InEvent>
ProductToken< T > consumes (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > consumes (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void consumesMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > consumesView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< T > consumesView (InputTag const &it)
 
template<typename T , BranchType = InEvent>
ProductToken< T > mayConsume (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ProductToken< T > mayConsume (InputTag const &it)
 
template<typename T , BranchType = InEvent>
void mayConsumeMany ()
 
template<typename Element , BranchType = InEvent>
ViewToken< Element > mayConsumeView (InputTag const &)
 
template<typename T , art::BranchType BT>
art::ViewToken< T > mayConsumeView (InputTag const &it)
 
base_engine_tcreateEngine (seed_t seed)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make)
 
base_engine_tcreateEngine (seed_t seed, std::string const &kind_of_engine_to_make, label_t const &engine_label)
 
seed_t get_seed_value (fhicl::ParameterSet const &pset, char const key[]="seed", seed_t const implicit_seed=-1)
 

Static Public Member Functions

static cet::exempt_ptr< Consumernon_module_context ()
 

Protected Member Functions

CurrentProcessingContext const * currentContext () const
 
void validateConsumedProduct (BranchType const bt, ProductInfo const &pi)
 
void prepareForJob (fhicl::ParameterSet const &pset)
 
void showMissingConsumes () const
 

Private Attributes

std::string m_AllHitsCRProducerLabel
 Label of the pandora instance that ran CR reco on all hits. More...
 
std::string m_AllHitsCRTrackProducerLabel
 Label of the track producer using the pandora instance that ran CR reco on all hits. More...
 
std::string m_AllHitsCRShowerProducerLabel
 Label of the shower producer using the pandora instance that ran CR reco on all hits. More...
 
std::string m_CRRemHitsCRProducerLabel
 Label of the pandora instance that ran CR reco on CR removed hits. More...
 
std::string m_CRRemHitsCRTrackProducerLabel
 Label of the track producer using the pandora instance that ran CR reco on CR removed hits. More...
 
std::string m_CRRemHitsCRShowerProducerLabel
 Label of the shower producer using the pandora instance that ran CR reco on CR removed hits. More...
 
std::string m_CRRemHitsNuProducerLabel
 Label of the pandora instance that ran Nu reco on CR removed hits. More...
 
std::string m_CRRemHitsNuTrackProducerLabel
 Label of the track producer using the pandora instance that ran Nu reco on CR removed hits. More...
 
std::string m_CRRemHitsNuShowerProducerLabel
 Label of the shower producer using the pandora instance that ran Nu reco on CR removed hits. More...
 
std::string m_AllHitProducerLabel
 Label of the primary hit producer. More...
 
std::string m_CRRemHitProducerLabel
 Label of the CR removed hit producer. More...
 
std::string m_ClearCRTagProducerLabel
 Label of the unabiguous CR tag producer. More...
 
std::string m_NuIdCRTagProducerLabel
 Label of the neutrino-ID CR tag producer. More...
 
bool m_ShouldProduceNeutrinos
 If we should produce collections related to neutrino top-level PFParticles. More...
 
bool m_ShouldProduceT0s
 If we should produce T0s (relevant when stitching over multiple drift volumes) More...
 

Detailed Description

Definition at line 18 of file CollectionMerging_module.cc.

Member Typedef Documentation

using art::EDProducer::ModuleType = EDProducer
inherited

Definition at line 34 of file EDProducer.h.

template<typename UserConfig , typename KeysToIgnore = void>
using art::EDProducer::Table = ProducerBase::Table<UserConfig, KeysToIgnore>
inherited

Definition at line 43 of file EDProducer.h.

using art::EDProducer::WorkerType = WorkerT<EDProducer>
inherited

Definition at line 35 of file EDProducer.h.

Constructor & Destructor Documentation

lar_pandora::CollectionMerging::CollectionMerging ( fhicl::ParameterSet const &  pset)
explicit

Definition at line 74 of file CollectionMerging_module.cc.

References m_ShouldProduceT0s.

74  :
75  m_AllHitsCRProducerLabel(pset.get<std::string>("AllHitsCRProducerLabel")),
76  m_AllHitsCRTrackProducerLabel(pset.get<std::string>("AllHitsCRTrackProducerLabel")),
77  m_AllHitsCRShowerProducerLabel(pset.get<std::string>("AllHitsCRShowerProducerLabel")),
78  m_CRRemHitsCRProducerLabel(pset.get<std::string>("CRRemHitsCRProducerLabel")),
79  m_CRRemHitsCRTrackProducerLabel(pset.get<std::string>("CRRemHitsCRTrackProducerLabel")),
80  m_CRRemHitsCRShowerProducerLabel(pset.get<std::string>("CRRemHitsCRShowerProducerLabel")),
81  m_CRRemHitsNuProducerLabel(pset.get<std::string>("CRRemHitsNuProducerLabel")),
82  m_CRRemHitsNuTrackProducerLabel(pset.get<std::string>("CRRemHitsNuTrackProducerLabel")),
83  m_CRRemHitsNuShowerProducerLabel(pset.get<std::string>("CRRemHitsNuShowerProducerLabel")),
84  m_AllHitProducerLabel(pset.get<std::string>("AllHitProducerLabel")),
85  m_CRRemHitProducerLabel(pset.get<std::string>("CRRemHitProducerLabel")),
86  m_ClearCRTagProducerLabel(pset.get<std::string>("ClearCRTagProducerLabel")),
87  m_NuIdCRTagProducerLabel(pset.get<std::string>("NuIdCRTagProducerLabel")),
88  m_ShouldProduceNeutrinos(pset.get<bool>("ShouldProduceNeutrinos", true)),
89  m_ShouldProduceT0s(pset.get<bool>("ShouldProduceT0s", false))
90 {
91  produces< std::vector<recob::PFParticle> >();
92  produces< std::vector<recob::SpacePoint> >();
93  produces< std::vector<recob::Cluster> >();
94  produces< std::vector<recob::Vertex> >();
95  produces< std::vector<recob::Track> >();
96  produces< std::vector<recob::Shower> >();
97  produces< std::vector<recob::PCAxis> >();
98  produces< std::vector<larpandoraobj::PFParticleMetadata> >();
99 
100  produces< art::Assns<recob::PFParticle, recob::SpacePoint> >();
101  produces< art::Assns<recob::PFParticle, recob::Cluster> >();
102  produces< art::Assns<recob::PFParticle, recob::Vertex> >();
103  produces< art::Assns<recob::PFParticle, recob::Track> >();
104  produces< art::Assns<recob::PFParticle, recob::Shower> >();
105  produces< art::Assns<recob::PFParticle, recob::PCAxis> >();
106  produces< art::Assns<recob::PFParticle, larpandoraobj::PFParticleMetadata> >();
107  produces< art::Assns<recob::Track, recob::Hit> >();
108  produces< art::Assns<recob::Shower, recob::Hit> >();
109  produces< art::Assns<recob::Shower, recob::PCAxis> >();
110  produces< art::Assns<recob::SpacePoint, recob::Hit> >();
111  produces< art::Assns<recob::Cluster, recob::Hit> >();
112 
113  if (m_ShouldProduceT0s)
114  {
115  produces< std::vector<anab::T0> >();
116  produces< art::Assns<recob::PFParticle, anab::T0> >();
117  }
118 }
bool m_ShouldProduceT0s
If we should produce T0s (relevant when stitching over multiple drift volumes)
std::string m_CRRemHitsNuProducerLabel
Label of the pandora instance that ran Nu reco on CR removed hits.
std::string m_CRRemHitsCRShowerProducerLabel
Label of the shower producer using the pandora instance that ran CR reco on CR removed hits...
std::string m_AllHitProducerLabel
Label of the primary hit producer.
std::string m_AllHitsCRProducerLabel
Label of the pandora instance that ran CR reco on all hits.
bool m_ShouldProduceNeutrinos
If we should produce collections related to neutrino top-level PFParticles.
std::string m_CRRemHitProducerLabel
Label of the CR removed hit producer.
std::string m_CRRemHitsNuTrackProducerLabel
Label of the track producer using the pandora instance that ran Nu reco on CR removed hits...
std::string m_AllHitsCRTrackProducerLabel
Label of the track producer using the pandora instance that ran CR reco on all hits.
std::string m_NuIdCRTagProducerLabel
Label of the neutrino-ID CR tag producer.
std::string m_CRRemHitsCRProducerLabel
Label of the pandora instance that ran CR reco on CR removed hits.
std::string m_AllHitsCRShowerProducerLabel
Label of the shower producer using the pandora instance that ran CR reco on all hits.
std::string m_CRRemHitsCRTrackProducerLabel
Label of the track producer using the pandora instance that ran CR reco on CR removed hits...
std::string m_CRRemHitsNuShowerProducerLabel
Label of the shower producer using the pandora instance that ran Nu reco on CR removed hits...
std::string m_ClearCRTagProducerLabel
Label of the unabiguous CR tag producer.
lar_pandora::CollectionMerging::CollectionMerging ( CollectionMerging const &  )
delete
lar_pandora::CollectionMerging::CollectionMerging ( CollectionMerging &&  )
delete

Member Function Documentation

template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::consumes ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::consumes ( InputTag const &  it)
inherited

Definition at line 147 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

148 {
149  if (!moduleContext_)
150  return ProductToken<T>::invalid();
151 
152  consumables_[BT].emplace_back(ConsumableType::Product,
153  TypeID{typeid(T)},
154  it.label(),
155  it.instance(),
156  it.process());
157  return ProductToken<T>{it};
158 }
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename T , art::BranchType BT>
void art::Consumer::consumesMany ( )
inherited

Definition at line 162 of file Consumer.h.

163 {
164  if (!moduleContext_)
165  return;
166 
167  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
168 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::consumesView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::consumesView ( InputTag const &  it)
inherited

Definition at line 172 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

173 {
174  if (!moduleContext_)
175  return ViewToken<T>::invalid();
176 
177  consumables_[BT].emplace_back(ConsumableType::ViewElement,
178  TypeID{typeid(T)},
179  it.label(),
180  it.instance(),
181  it.process());
182  return ViewToken<T>{it};
183 }
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make 
)
inherited

Definition at line 32 of file EngineCreator.cc.

References art::EngineCreator::rng().

34 {
35  return rng()->createEngine(
36  placeholder_schedule_id(), seed, kind_of_engine_to_make);
37 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
EngineCreator::base_engine_t & EngineCreator::createEngine ( seed_t  seed,
std::string const &  kind_of_engine_to_make,
label_t const &  engine_label 
)
inherited

Definition at line 40 of file EngineCreator.cc.

References art::EngineCreator::rng().

43 {
44  return rng()->createEngine(
45  placeholder_schedule_id(), seed, kind_of_engine_to_make, engine_label);
46 }
long seed
Definition: chem4.cc:68
static art::ServiceHandle< art::RandomNumberGenerator > & rng()
CurrentProcessingContext const * art::EDProducer::currentContext ( ) const
protectedinherited

Definition at line 120 of file EDProducer.cc.

References art::EDProducer::current_context_.

121  {
122  return current_context_.get();
123  }
CPC_exempt_ptr current_context_
Definition: EDProducer.h:116
EngineCreator::seed_t EngineCreator::get_seed_value ( fhicl::ParameterSet const &  pset,
char const  key[] = "seed",
seed_t const  implicit_seed = -1 
)
inherited

Definition at line 49 of file EngineCreator.cc.

References fhicl::ParameterSet::get().

Referenced by art::MixFilter< T >::initEngine_().

52 {
53  auto const& explicit_seeds = pset.get<std::vector<int>>(key, {});
54  return explicit_seeds.empty() ? implicit_seed : explicit_seeds.front();
55 }
template<typename PROD , BranchType B>
ProductID art::EDProducer::getProductID ( std::string const &  instanceName = {}) const
inlineinherited

Definition at line 123 of file EDProducer.h.

References art::EDProducer::moduleDescription_.

124  {
125  return ProducerBase::getProductID<PROD, B>(moduleDescription_,
126  instanceName);
127  }
ModuleDescription moduleDescription_
Definition: EDProducer.h:115
template<typename PROD , BranchType B>
ProductID art::ProducerBase::getProductID ( ModuleDescription const &  moduleDescription,
std::string const &  instanceName 
) const
inherited

Definition at line 56 of file ProducerBase.h.

References B, and art::ModuleDescription::moduleLabel().

Referenced by art::ProducerBase::modifiesEvent().

58  {
59  auto const& pd =
60  get_ProductDescription<PROD>(B, md.moduleLabel(), instanceName);
61  return pd.productID();
62  }
Int_t B
Definition: plot.C:25
template<typename T , BranchType = InEvent>
ProductToken<T> art::Consumer::mayConsume ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ProductToken<T> art::Consumer::mayConsume ( InputTag const &  it)
inherited

Definition at line 190 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

191 {
192  if (!moduleContext_)
193  return ProductToken<T>::invalid();
194 
195  consumables_[BT].emplace_back(ConsumableType::Product,
196  TypeID{typeid(T)},
197  it.label(),
198  it.instance(),
199  it.process());
200  return ProductToken<T>{it};
201 }
static ProductToken< T > invalid()
Definition: ProductToken.h:47
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename T , art::BranchType BT>
void art::Consumer::mayConsumeMany ( )
inherited

Definition at line 205 of file Consumer.h.

206 {
207  if (!moduleContext_)
208  return;
209 
210  consumables_[BT].emplace_back(ConsumableType::Many, TypeID{typeid(T)});
211 }
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
template<typename Element , BranchType = InEvent>
ViewToken<Element> art::Consumer::mayConsumeView ( InputTag const &  )
inherited
template<typename T , art::BranchType BT>
art::ViewToken<T> art::Consumer::mayConsumeView ( InputTag const &  it)
inherited

Definition at line 215 of file Consumer.h.

References art::InputTag::instance(), art::InputTag::label(), and art::InputTag::process().

216 {
217  if (!moduleContext_)
218  return ViewToken<T>::invalid();
219 
220  consumables_[BT].emplace_back(ConsumableType::ViewElement,
221  TypeID{typeid(T)},
222  it.label(),
223  it.instance(),
224  it.process());
225  return ViewToken<T>{it};
226 }
static ViewToken< Element > invalid()
Definition: ProductToken.h:75
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
bool art::ProducerBase::modifiesEvent ( ) const
inlineinherited

Definition at line 40 of file ProducerBase.h.

References art::ProducerBase::getProductID().

41  {
42  return true;
43  }
CollectionMerging& lar_pandora::CollectionMerging::operator= ( CollectionMerging const &  )
delete
CollectionMerging& lar_pandora::CollectionMerging::operator= ( CollectionMerging &&  )
delete
void art::Consumer::prepareForJob ( fhicl::ParameterSet const &  pset)
protectedinherited

Definition at line 89 of file Consumer.cc.

References fhicl::ParameterSet::get_if_present().

Referenced by art::EDProducer::doBeginJob(), art::EDFilter::doBeginJob(), and art::EDAnalyzer::doBeginJob().

90 {
91  if (!moduleContext_)
92  return;
93 
94  pset.get_if_present("errorOnMissingConsumes", requireConsumes_);
95  for (auto& consumablesPerBranch : consumables_) {
96  cet::sort_all(consumablesPerBranch);
97  }
98 }
bool requireConsumes_
Definition: Consumer.h:137
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
void lar_pandora::CollectionMerging::produce ( art::Event evt)
overridevirtual

Implements art::EDProducer.

Definition at line 122 of file CollectionMerging_module.cc.

References lar_pandora::LArPandoraEvent::FilterByCRTag(), m_AllHitProducerLabel, m_AllHitsCRProducerLabel, m_AllHitsCRShowerProducerLabel, m_AllHitsCRTrackProducerLabel, m_ClearCRTagProducerLabel, m_CRRemHitProducerLabel, m_CRRemHitsCRProducerLabel, m_CRRemHitsCRShowerProducerLabel, m_CRRemHitsCRTrackProducerLabel, m_CRRemHitsNuProducerLabel, m_CRRemHitsNuShowerProducerLabel, m_CRRemHitsNuTrackProducerLabel, m_NuIdCRTagProducerLabel, m_ShouldProduceNeutrinos, m_ShouldProduceT0s, and lar_pandora::LArPandoraEvent::WriteToEvent().

123 {
125  const lar_pandora::LArPandoraEvent allHitsCREvent(this, &evt, allHitsCRLabels, m_ShouldProduceT0s);
126 
128  const lar_pandora::LArPandoraEvent crRemHitsCREvent(this, &evt, crRemHitsCRLabels, m_ShouldProduceT0s);
129 
131  const lar_pandora::LArPandoraEvent crRemHitsNuEvent(this, &evt, crRemHitsNuLabels, m_ShouldProduceT0s);
132 
134  {
135  const lar_pandora::LArPandoraEvent filteredCRRemHitsNuEvent(crRemHitsNuEvent.FilterByCRTag(m_ShouldProduceNeutrinos, m_NuIdCRTagProducerLabel));
136  filteredCRRemHitsNuEvent.WriteToEvent();
137  }
138  else
139  {
140  const lar_pandora::LArPandoraEvent filteredAllHitsCREvent(allHitsCREvent.FilterByCRTag(m_ShouldProduceNeutrinos, m_ClearCRTagProducerLabel));
141  const lar_pandora::LArPandoraEvent filteredCRRemHitsCREvent(crRemHitsCREvent.FilterByCRTag(m_ShouldProduceNeutrinos, m_NuIdCRTagProducerLabel));
142  const lar_pandora::LArPandoraEvent mergedEvent(filteredAllHitsCREvent.Merge(filteredCRRemHitsCREvent));
143  mergedEvent.WriteToEvent();
144  }
145 }
LArPandoraEvent class.
bool m_ShouldProduceT0s
If we should produce T0s (relevant when stitching over multiple drift volumes)
std::string m_CRRemHitsNuProducerLabel
Label of the pandora instance that ran Nu reco on CR removed hits.
std::string m_CRRemHitsCRShowerProducerLabel
Label of the shower producer using the pandora instance that ran CR reco on CR removed hits...
std::string m_AllHitProducerLabel
Label of the primary hit producer.
std::string m_AllHitsCRProducerLabel
Label of the pandora instance that ran CR reco on all hits.
bool m_ShouldProduceNeutrinos
If we should produce collections related to neutrino top-level PFParticles.
std::string m_CRRemHitProducerLabel
Label of the CR removed hit producer.
std::string m_CRRemHitsNuTrackProducerLabel
Label of the track producer using the pandora instance that ran Nu reco on CR removed hits...
std::string m_AllHitsCRTrackProducerLabel
Label of the track producer using the pandora instance that ran CR reco on all hits.
std::string m_NuIdCRTagProducerLabel
Label of the neutrino-ID CR tag producer.
Class to handle the required producer labels.
std::string m_CRRemHitsCRProducerLabel
Label of the pandora instance that ran CR reco on CR removed hits.
std::string m_AllHitsCRShowerProducerLabel
Label of the shower producer using the pandora instance that ran CR reco on all hits.
std::string m_CRRemHitsCRTrackProducerLabel
Label of the track producer using the pandora instance that ran CR reco on CR removed hits...
std::string m_CRRemHitsNuShowerProducerLabel
Label of the shower producer using the pandora instance that ran Nu reco on CR removed hits...
void WriteToEvent() const
Write (put) the collections in this LArPandoraEvent to the art::Event.
std::string m_ClearCRTagProducerLabel
Label of the unabiguous CR tag producer.
void art::Consumer::showMissingConsumes ( ) const
protectedinherited

Definition at line 125 of file Consumer.cc.

Referenced by art::EDProducer::doEndJob(), art::EDFilter::doEndJob(), art::EDAnalyzer::doEndJob(), and art::RootOutput::endJob().

126 {
127  if (!moduleContext_)
128  return;
129 
130  // If none of the branches have missing consumes statements, exit early.
131  if (std::all_of(cbegin(missingConsumes_),
132  cend(missingConsumes_),
133  [](auto const& perBranch) { return perBranch.empty(); }))
134  return;
135 
136  constexpr cet::HorizontalRule rule{60};
137  mf::LogPrint log{"MTdiagnostics"};
138  log << '\n'
139  << rule('=') << '\n'
140  << "The following consumes (or mayConsume) statements are missing from\n"
141  << module_context(moduleDescription_) << '\n'
142  << rule('-') << '\n';
143 
144  cet::for_all_with_index(
145  missingConsumes_, [&log](std::size_t const i, auto const& perBranch) {
146  for (auto const& pi : perBranch) {
147  log << " "
148  << assemble_consumes_statement(static_cast<BranchType>(i), pi)
149  << '\n';
150  }
151  });
152  log << rule('=');
153 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139
void art::Consumer::validateConsumedProduct ( BranchType const  bt,
ProductInfo const &  pi 
)
protectedinherited

Definition at line 101 of file Consumer.cc.

References art::errors::ProductRegistrationFailure.

103 {
104  // Early exits if consumes tracking has been disabled or if the
105  // consumed product is an allowed consumable.
106  if (!moduleContext_)
107  return;
108 
109  if (cet::binary_search_all(consumables_[bt], pi))
110  return;
111 
112  if (requireConsumes_) {
114  "Consumer: an error occurred during validation of a "
115  "retrieved product\n\n")
116  << "The following consumes (or mayConsume) statement is missing from\n"
117  << module_context(moduleDescription_) << ":\n\n"
118  << " " << assemble_consumes_statement(bt, pi) << "\n\n";
119  }
120 
121  missingConsumes_[bt].insert(pi);
122 }
cet::exempt_ptr< ModuleDescription const > moduleDescription_
Definition: Consumer.h:140
bool requireConsumes_
Definition: Consumer.h:137
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr T pi()
Returns the constant pi (up to 35 decimal digits of precision)
ConsumableProducts consumables_
Definition: Consumer.h:138
bool moduleContext_
Definition: Consumer.h:136
ConsumableProductSets missingConsumes_
Definition: Consumer.h:139

Member Data Documentation

std::string lar_pandora::CollectionMerging::m_AllHitProducerLabel
private

Label of the primary hit producer.

Definition at line 43 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_AllHitsCRProducerLabel
private

Label of the pandora instance that ran CR reco on all hits.

Definition at line 31 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_AllHitsCRShowerProducerLabel
private

Label of the shower producer using the pandora instance that ran CR reco on all hits.

Definition at line 33 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_AllHitsCRTrackProducerLabel
private

Label of the track producer using the pandora instance that ran CR reco on all hits.

Definition at line 32 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_ClearCRTagProducerLabel
private

Label of the unabiguous CR tag producer.

Definition at line 46 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitProducerLabel
private

Label of the CR removed hit producer.

Definition at line 44 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitsCRProducerLabel
private

Label of the pandora instance that ran CR reco on CR removed hits.

Definition at line 35 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitsCRShowerProducerLabel
private

Label of the shower producer using the pandora instance that ran CR reco on CR removed hits.

Definition at line 37 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitsCRTrackProducerLabel
private

Label of the track producer using the pandora instance that ran CR reco on CR removed hits.

Definition at line 36 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitsNuProducerLabel
private

Label of the pandora instance that ran Nu reco on CR removed hits.

Definition at line 39 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitsNuShowerProducerLabel
private

Label of the shower producer using the pandora instance that ran Nu reco on CR removed hits.

Definition at line 41 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_CRRemHitsNuTrackProducerLabel
private

Label of the track producer using the pandora instance that ran Nu reco on CR removed hits.

Definition at line 40 of file CollectionMerging_module.cc.

Referenced by produce().

std::string lar_pandora::CollectionMerging::m_NuIdCRTagProducerLabel
private

Label of the neutrino-ID CR tag producer.

Definition at line 47 of file CollectionMerging_module.cc.

Referenced by produce().

bool lar_pandora::CollectionMerging::m_ShouldProduceNeutrinos
private

If we should produce collections related to neutrino top-level PFParticles.

Definition at line 49 of file CollectionMerging_module.cc.

Referenced by produce().

bool lar_pandora::CollectionMerging::m_ShouldProduceT0s
private

If we should produce T0s (relevant when stitching over multiple drift volumes)

Definition at line 50 of file CollectionMerging_module.cc.

Referenced by CollectionMerging(), and produce().


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