LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
lar_pandora::StandardPandora Class Reference

StandardPandora class. More...

Inheritance diagram for lar_pandora::StandardPandora:
lar_pandora::LArPandora lar_pandora::ILArPandora 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

 StandardPandora (fhicl::ParameterSet const &pset)
 Constructor. More...
 
 ~StandardPandora ()
 Destructor. More...
 
void beginJob ()
 
void produce (art::Event &evt)
 
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
 

Protected Attributes

std::string m_configFile
 The config file. More...
 
bool m_shouldRunAllHitsCosmicReco
 Steering: whether to run all hits cosmic-ray reconstruction. More...
 
bool m_shouldRunStitching
 Steering: whether to stitch cosmic-ray muons crossing between volumes. More...
 
bool m_shouldRunCosmicHitRemoval
 Steering: whether to remove hits from tagged cosmic-rays. More...
 
bool m_shouldRunSlicing
 Steering: whether to slice events into separate regions for processing. More...
 
bool m_shouldRunNeutrinoRecoOption
 Steering: whether to run neutrino reconstruction for each slice. More...
 
bool m_shouldRunCosmicRecoOption
 Steering: whether to run cosmic-ray reconstruction for each slice. More...
 
bool m_shouldPerformSliceId
 Steering: whether to identify slices and select most appropriate pfos. More...
 
bool m_shouldProduceAllOutcomes
 Steering: whether to produce all reconstruction outcomes. More...
 
bool m_printOverallRecoStatus
 Steering: whether to print current operation status messages. More...
 
const pandora::Pandora * m_pPrimaryPandora
 The address of the primary pandora instance. More...
 

Private Member Functions

void CreatePandoraInstances ()
 Create pandora instances. More...
 
void ConfigurePandoraInstances ()
 Configure pandora instances. More...
 
void RunPandoraInstances ()
 Run all associated pandora instances. More...
 
void ResetPandoraInstances ()
 Reset all associated pandora instances. More...
 
void DeletePandoraInstances ()
 Delete pandora instances. More...
 
void ProvideExternalSteeringParameters (const pandora::Pandora *const pPandora) const
 Pass external steering parameters, read from fhicl parameter set, to LArMaster Pandora algorithm. More...
 

Detailed Description

StandardPandora class.

Definition at line 19 of file StandardPandora_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::StandardPandora::StandardPandora ( fhicl::ParameterSet const &  pset)

Constructor.

Parameters
psetthe parameter set

Definition at line 71 of file StandardPandora_module.cc.

71  :
72  LArPandora(pset)
73 {
74 }
LArPandora(fhicl::ParameterSet const &pset)
Constructor.
Definition: LArPandora.cxx:45
lar_pandora::StandardPandora::~StandardPandora ( )

Destructor.

Definition at line 78 of file StandardPandora_module.cc.

References DeletePandoraInstances().

79 {
80  this->DeletePandoraInstances();
81 }
void DeletePandoraInstances()
Delete pandora instances.

Member Function Documentation

void lar_pandora::LArPandora::beginJob ( )
virtualinherited

Reimplemented from art::EDProducer.

Definition at line 120 of file LArPandora.cxx.

References lar_pandora::ILArPandora::ConfigurePandoraInstances(), lar_pandora::LArPandoraInput::CreatePandoraDetectorGaps(), lar_pandora::ILArPandora::CreatePandoraInstances(), lar_pandora::LArPandoraInput::CreatePandoraLArTPCs(), lar_pandora::LArPandoraGeometry::LoadDetectorGaps(), lar_pandora::LArPandoraGeometry::LoadGeometry(), lar_pandora::LArPandora::m_driftVolumeMap, lar_pandora::LArPandora::m_enableDetectorGaps, lar_pandora::LArPandora::m_inputSettings, lar_pandora::LArPandora::m_outputSettings, lar_pandora::LArPandoraInput::Settings::m_pPrimaryPandora, lar_pandora::LArPandoraOutput::Settings::m_pPrimaryPandora, and lar_pandora::ILArPandora::m_pPrimaryPandora.

121 {
122  LArDriftVolumeList driftVolumeList;
124 
125  this->CreatePandoraInstances();
126 
127  if (!m_pPrimaryPandora)
128  throw cet::exception("LArPandora") << " LArPandora::beginJob - failed to create primary Pandora instance " << std::endl;
129 
132 
133  // Pass basic LArTPC information to pandora instances
135 
136  // If using global drift volume approach, pass details of gaps between daughter volumes to the pandora instance
138  {
139  LArDetectorGapList listOfGaps;
141  LArPandoraInput::CreatePandoraDetectorGaps(m_inputSettings, driftVolumeList, listOfGaps);
142  }
143 
144  // Parse Pandora settings xml files
146 }
static void CreatePandoraDetectorGaps(const Settings &settings, const LArDriftVolumeList &driftVolumeList, const LArDetectorGapList &listOfGaps)
Create pandora line gaps to cover dead regions between TPCs in a global drift volume approach...
const pandora::Pandora * m_pPrimaryPandora
std::vector< LArDetectorGap > LArDetectorGapList
std::vector< LArDriftVolume > LArDriftVolumeList
const pandora::Pandora * m_pPrimaryPandora
static void LoadGeometry(LArDriftVolumeList &outputVolumeList, LArDriftVolumeMap &outputVolumeMap)
Load drift volume geometry.
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:82
LArDriftVolumeMap m_driftVolumeMap
The map from volume id to drift volume.
Definition: LArPandora.h:71
virtual void CreatePandoraInstances()=0
Create pandora instances.
bool m_enableDetectorGaps
Whether to pass detector gap information to Pandora instances.
Definition: LArPandora.h:64
LArPandoraInput::Settings m_inputSettings
The lar pandora input settings.
Definition: LArPandora.h:68
static void CreatePandoraLArTPCs(const Settings &settings, const LArDriftVolumeList &driftVolumeList)
Create pandora LArTPCs to represent the different drift volumes in use.
LArPandoraOutput::Settings m_outputSettings
The lar pandora output settings.
Definition: LArPandora.h:69
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
virtual void ConfigurePandoraInstances()=0
Configure pandora instances.
static void LoadDetectorGaps(LArDetectorGapList &listOfGaps)
Load the 2D gaps that go with the chosen geometry.
void lar_pandora::StandardPandora::ConfigurePandoraInstances ( )
privatevirtual

Configure pandora instances.

Implements lar_pandora::ILArPandora.

Definition at line 100 of file StandardPandora_module.cc.

References lar_pandora::LArPandora::m_configFile, lar_pandora::ILArPandora::m_pPrimaryPandora, and ProvideExternalSteeringParameters().

101 {
102  cet::search_path sp("FW_SEARCH_PATH");
103  std::string fullConfigFileName;
104 
105  if (!sp.find_file(m_configFile, fullConfigFileName))
106  throw cet::exception("StandardPandora") << " ConfigurePrimaryPandoraInstance - Failed to find xml configuration file " << m_configFile << " in FW search path";
107 
109  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::ReadSettings(*m_pPrimaryPandora, fullConfigFileName));
110 }
void ProvideExternalSteeringParameters(const pandora::Pandora *const pPandora) const
Pass external steering parameters, read from fhicl parameter set, to LArMaster Pandora algorithm...
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:82
std::string m_configFile
The config file.
Definition: LArPandora.h:39
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
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()
void lar_pandora::StandardPandora::CreatePandoraInstances ( )
privatevirtual

Create pandora instances.

Implements lar_pandora::ILArPandora.

Definition at line 85 of file StandardPandora_module.cc.

References MultiPandoraApi::AddPrimaryPandoraInstance(), lar_pandora::ILArPandora::m_pPrimaryPandora, LArContent::RegisterAlgorithms(), and LArContent::RegisterBasicPlugins().

86 {
87  m_pPrimaryPandora = new pandora::Pandora();
88  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, LArContent::RegisterAlgorithms(*m_pPrimaryPandora));
89  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, LArContent::RegisterBasicPlugins(*m_pPrimaryPandora));
90 
91  // ATTN Potentially ill defined, unless coordinate system set up to ensure that all drift volumes have same wire angles and pitches
92  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::SetPseudoLayerPlugin(*m_pPrimaryPandora, new lar_content::LArPseudoLayerPlugin));
93  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::SetLArTransformationPlugin(*m_pPrimaryPandora, new lar_content::LArRotationalTransformationPlugin));
94 
96 }
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:82
static void AddPrimaryPandoraInstance(const pandora::Pandora *const pPrimaryPandora)
Declare a new primary pandora instance and receive the relevant multi pandora book-keeping instance...
static pandora::StatusCode RegisterBasicPlugins(const pandora::Pandora &pandora)
Register the basic lar content plugins with pandora.
Definition: LArContent.cc:388
static pandora::StatusCode RegisterAlgorithms(const pandora::Pandora &pandora)
Register all the lar content algorithms and tools with pandora.
Definition: LArContent.cc:372
LarPandoraPseudoLayerPlugin class.
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
void lar_pandora::StandardPandora::DeletePandoraInstances ( )
privatevirtual

Delete pandora instances.

Implements lar_pandora::ILArPandora.

Definition at line 128 of file StandardPandora_module.cc.

References MultiPandoraApi::DeletePandoraInstances(), and lar_pandora::ILArPandora::m_pPrimaryPandora.

Referenced by ~StandardPandora().

129 {
131 }
static void DeletePandoraInstances(const pandora::Pandora *const pPrimaryPandora)
Delete all pandora instances associated with (and including) a specified primary pandora instance...
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:82
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  }
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::LArPandora::produce ( art::Event evt)
virtualinherited

Implements art::EDProducer.

Definition at line 150 of file LArPandora.cxx.

References lar_pandora::LArPandora::CreatePandoraInput(), lar_pandora::LArPandora::ProcessPandoraOutput(), lar_pandora::ILArPandora::ResetPandoraInstances(), and lar_pandora::ILArPandora::RunPandoraInstances().

151 {
152  IdToHitMap idToHitMap;
153  this->CreatePandoraInput(evt, idToHitMap);
154  this->RunPandoraInstances();
155  this->ProcessPandoraOutput(evt, idToHitMap);
156  this->ResetPandoraInstances();
157 }
void CreatePandoraInput(art::Event &evt, IdToHitMap &idToHitMap)
Create pandora input hits, mc particles etc.
Definition: LArPandora.cxx:161
std::map< int, art::Ptr< recob::Hit > > IdToHitMap
Definition: ILArPandora.h:20
void ProcessPandoraOutput(art::Event &evt, const IdToHitMap &idToHitMap)
Process pandora output particle flow objects.
Definition: LArPandora.cxx:217
virtual void ResetPandoraInstances()=0
Reset all associated pandora instances.
virtual void RunPandoraInstances()=0
Run all associated pandora instances.
void lar_pandora::StandardPandora::ProvideExternalSteeringParameters ( const pandora::Pandora *const  pPandora) const
private

Pass external steering parameters, read from fhicl parameter set, to LArMaster Pandora algorithm.

Parameters
pPandorathe address of the relevant pandora instance

Definition at line 135 of file StandardPandora_module.cc.

References lar_pandora::LArPandora::m_printOverallRecoStatus, lar_pandora::LArPandora::m_shouldPerformSliceId, lar_pandora::LArPandora::m_shouldRunAllHitsCosmicReco, lar_content::MasterAlgorithm::ExternalSteeringParameters::m_shouldRunAllHitsCosmicReco, lar_pandora::LArPandora::m_shouldRunCosmicHitRemoval, lar_pandora::LArPandora::m_shouldRunCosmicRecoOption, lar_pandora::LArPandora::m_shouldRunNeutrinoRecoOption, lar_pandora::LArPandora::m_shouldRunSlicing, and lar_pandora::LArPandora::m_shouldRunStitching.

Referenced by ConfigurePandoraInstances().

136 {
137  auto *const pEventSteeringParameters = new lar_content::MasterAlgorithm::ExternalSteeringParameters;
139  pEventSteeringParameters->m_shouldRunStitching = m_shouldRunStitching;
140  pEventSteeringParameters->m_shouldRunCosmicHitRemoval = m_shouldRunCosmicHitRemoval;
141  pEventSteeringParameters->m_shouldRunSlicing = m_shouldRunSlicing;
142  pEventSteeringParameters->m_shouldRunNeutrinoRecoOption = m_shouldRunNeutrinoRecoOption;
143  pEventSteeringParameters->m_shouldRunCosmicRecoOption = m_shouldRunCosmicRecoOption;
144  pEventSteeringParameters->m_shouldPerformSliceId = m_shouldPerformSliceId;
145  pEventSteeringParameters->m_printOverallRecoStatus = m_printOverallRecoStatus;
146  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, pandora::ExternallyConfiguredAlgorithm::SetExternalParameters(*pPandora, "LArMaster", pEventSteeringParameters));
147 }
bool m_shouldRunAllHitsCosmicReco
Steering: whether to run all hits cosmic-ray reconstruction.
Definition: LArPandora.h:41
bool m_shouldRunCosmicHitRemoval
Steering: whether to remove hits from tagged cosmic-rays.
Definition: LArPandora.h:43
pandora::InputBool m_shouldRunAllHitsCosmicReco
Whether to run all hits cosmic-ray reconstruction.
bool m_shouldRunNeutrinoRecoOption
Steering: whether to run neutrino reconstruction for each slice.
Definition: LArPandora.h:45
bool m_printOverallRecoStatus
Steering: whether to print current operation status messages.
Definition: LArPandora.h:49
bool m_shouldRunCosmicRecoOption
Steering: whether to run cosmic-ray reconstruction for each slice.
Definition: LArPandora.h:46
bool m_shouldRunStitching
Steering: whether to stitch cosmic-ray muons crossing between volumes.
Definition: LArPandora.h:42
bool m_shouldRunSlicing
Steering: whether to slice events into separate regions for processing.
Definition: LArPandora.h:44
bool m_shouldPerformSliceId
Steering: whether to identify slices and select most appropriate pfos.
Definition: LArPandora.h:47
void lar_pandora::StandardPandora::ResetPandoraInstances ( )
privatevirtual

Reset all associated pandora instances.

Implements lar_pandora::ILArPandora.

Definition at line 121 of file StandardPandora_module.cc.

References lar_pandora::ILArPandora::m_pPrimaryPandora, and Reset().

122 {
123  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::Reset(*m_pPrimaryPandora));
124 }
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:82
ntupleExperimental Reset()
void lar_pandora::StandardPandora::RunPandoraInstances ( )
privatevirtual

Run all associated pandora instances.

Implements lar_pandora::ILArPandora.

Definition at line 114 of file StandardPandora_module.cc.

References lar_pandora::ILArPandora::m_pPrimaryPandora, and ProcessEvent().

115 {
116  PANDORA_THROW_RESULT_IF(pandora::STATUS_CODE_SUCCESS, !=, PandoraApi::ProcessEvent(*m_pPrimaryPandora));
117 }
void ProcessEvent(G4int iProp, size_t nEv)
Definition: errprop.cc:172
const pandora::Pandora * m_pPrimaryPandora
The address of the primary pandora instance.
Definition: ILArPandora.h:82
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::LArPandora::m_configFile
protectedinherited

The config file.

Definition at line 39 of file LArPandora.h.

Referenced by ConfigurePandoraInstances().

const pandora::Pandora* lar_pandora::ILArPandora::m_pPrimaryPandora
protectedinherited
bool lar_pandora::LArPandora::m_printOverallRecoStatus
protectedinherited

Steering: whether to print current operation status messages.

Definition at line 49 of file LArPandora.h.

Referenced by ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldPerformSliceId
protectedinherited

Steering: whether to identify slices and select most appropriate pfos.

Definition at line 47 of file LArPandora.h.

Referenced by ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldProduceAllOutcomes
protectedinherited

Steering: whether to produce all reconstruction outcomes.

Definition at line 48 of file LArPandora.h.

Referenced by lar_pandora::LArPandora::LArPandora(), and lar_pandora::LArPandora::ProcessPandoraOutput().

bool lar_pandora::LArPandora::m_shouldRunAllHitsCosmicReco
protectedinherited

Steering: whether to run all hits cosmic-ray reconstruction.

Definition at line 41 of file LArPandora.h.

Referenced by ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldRunCosmicHitRemoval
protectedinherited

Steering: whether to remove hits from tagged cosmic-rays.

Definition at line 43 of file LArPandora.h.

Referenced by ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldRunCosmicRecoOption
protectedinherited

Steering: whether to run cosmic-ray reconstruction for each slice.

Definition at line 46 of file LArPandora.h.

Referenced by lar_pandora::LArPandora::LArPandora(), and ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldRunNeutrinoRecoOption
protectedinherited

Steering: whether to run neutrino reconstruction for each slice.

Definition at line 45 of file LArPandora.h.

Referenced by lar_pandora::LArPandora::LArPandora(), and ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldRunSlicing
protectedinherited

Steering: whether to slice events into separate regions for processing.

Definition at line 44 of file LArPandora.h.

Referenced by lar_pandora::LArPandora::LArPandora(), and ProvideExternalSteeringParameters().

bool lar_pandora::LArPandora::m_shouldRunStitching
protectedinherited

Steering: whether to stitch cosmic-ray muons crossing between volumes.

Definition at line 42 of file LArPandora.h.

Referenced by lar_pandora::LArPandora::LArPandora(), and ProvideExternalSteeringParameters().


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