LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
art::Results Class Referencefinal

#include "Results.h"

Inheritance diagram for art::Results:
art::ProductRetriever

Public Member Functions

 ~Results ()
 
 Results (ResultsPrincipal const &p, ModuleContext const &mc, std::optional< ProductInserter > inserter=std::nullopt)
 
 Results (Results const &)=delete
 
 Results (Results &&)=delete
 
Resultsoperator= (Results const &)=delete
 
Resultsoperator= (Results &&)=delete
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance={})
 

Private Member Functions

void commitProducts ()
 
template<typename PROD >
PROD const & getProduct (InputTag const &tag) const
 
template<typename PROD >
PROD const & getProduct (ProductToken< PROD > const &token) const
 
template<typename PROD >
Handle< PROD > getHandle (SelectorBase const &) const
 
template<typename PROD >
Handle< PROD > getHandle (ProductID const pid) const
 
template<typename PROD >
Handle< PROD > getHandle (InputTag const &tag) const
 
template<typename PROD >
Handle< PROD > getHandle (ProductToken< PROD > const &token) const
 
template<typename PROD >
ValidHandle< PROD > getValidHandle (InputTag const &tag) const
 
template<typename PROD >
ValidHandle< PROD > getValidHandle (ProductToken< PROD > const &token) const
 
template<typename PROD >
std::vector< InputTaggetInputTags (SelectorBase const &selector=MatchAllSelector{}) const
 
template<typename PROD >
std::vector< ProductToken< PROD > > getProductTokens (SelectorBase const &selector=MatchAllSelector{}) const
 
template<typename PROD >
std::vector< Handle< PROD > > getMany (SelectorBase const &selector=MatchAllSelector{}) const
 
template<typename PROD >
bool get (SelectorBase const &, Handle< PROD > &result) const
 
template<typename PROD >
bool get (ProductID const pid, Handle< PROD > &result) const
 
template<typename PROD >
bool getByLabel (std::string const &label, std::string const &instance, Handle< PROD > &result) const
 
template<typename PROD >
bool getByLabel (std::string const &label, std::string const &instance, std::string const &process, Handle< PROD > &result) const
 
template<typename PROD >
bool getByLabel (InputTag const &tag, Handle< PROD > &result) const
 
template<typename ELEMENT >
std::size_t getView (std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
 
template<typename ELEMENT >
std::size_t getView (std::string const &moduleLabel, std::string const &productInstanceName, std::vector< ELEMENT const * > &result) const
 
template<typename ELEMENT >
std::size_t getView (InputTag const &, std::vector< ELEMENT const * > &result) const
 
template<typename ELEMENT >
std::size_t getView (ViewToken< ELEMENT > const &, std::vector< ELEMENT const * > &result) const
 
template<typename ELEMENT >
bool getView (std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, View< ELEMENT > &result) const
 
template<typename ELEMENT >
bool getView (std::string const &moduleLabel, std::string const &productInstanceName, View< ELEMENT > &result) const
 
template<typename ELEMENT >
bool getView (InputTag const &, View< ELEMENT > &result) const
 
template<typename ELEMENT >
bool getView (ViewToken< ELEMENT > const &, View< ELEMENT > &result) const
 
std::vector< ProductIDretrievedPIDs () const
 
std::optional< Provenance const > getProductProvenance (ProductID) const
 
std::optional< fhicl::ParameterSet const > getProcessParameterSet (std::string const &process) const
 
cet::exempt_ptr< BranchDescription const > getProductDescription (ProductID) const
 
EDProductGetter const * productGetter (ProductID const pid) const
 
template<typename T >
ProductID getProductID (std::string const &instance_name="") const
 

Private Attributes

std::optional< ProductInserterinserter_
 

Friends

class ResultsProducer
 

Detailed Description

Definition at line 20 of file Results.h.

Constructor & Destructor Documentation

art::Results::~Results ( )
default
art::Results::Results ( ResultsPrincipal const &  p,
ModuleContext const &  mc,
std::optional< ProductInserter inserter = std::nullopt 
)
explicit

Definition at line 10 of file Results.cc.

References art::InResults, and inserter_.

13  : ProductRetriever{InResults, p, mc, false}, inserter_{std::move(inserter)}
14  {}
ProductRetriever(BranchType bt, Principal const &p, ModuleContext const &mc, bool recordParents)
std::optional< ProductInserter > inserter_
Definition: Results.h:66
art::Results::Results ( Results const &  )
delete
art::Results::Results ( Results &&  )
delete

Member Function Documentation

void art::Results::commitProducts ( )
private

Definition at line 17 of file Results.cc.

References inserter_.

Referenced by put().

18  {
19  assert(inserter_);
20  inserter_->commitProducts();
21  }
std::optional< ProductInserter > inserter_
Definition: Results.h:66
template<typename PROD >
bool art::ProductRetriever::get ( SelectorBase const &  sel,
Handle< PROD > &  result 
) const
inherited

Definition at line 417 of file ProductRetriever.h.

Referenced by art::Observer::getTriggerResults(), and art::detail::ProcessAndEventSelector::triggerResults().

418  {
419  result = getHandle<PROD>(sel);
420  return static_cast<bool>(result);
421  }
template<typename PROD >
bool art::ProductRetriever::get ( ProductID const  pid,
Handle< PROD > &  result 
) const
inherited

Definition at line 425 of file ProductRetriever.h.

426  {
427  result = getHandle<PROD>(pid);
428  return static_cast<bool>(result);
429  }
template<typename PROD >
bool art::ProductRetriever::getByLabel ( std::string const &  label,
std::string const &  instance,
Handle< PROD > &  result 
) const
inherited

Definition at line 444 of file ProductRetriever.h.

Referenced by lar::util::details::FindAllP< Source, Dest >::Add(), reco3d::PlotSpacePoints::analyze(), opdet::OpDigiAna::analyze(), opdet::FIFOHistogramAna::analyze(), opdet::OpFlashMCTruthAna::analyze(), cheat::CheckBackTracking::analyze(), calo::PrintCalorimetry::analyze(), opdet::OpFlashSimpleAna::analyze(), shower::TCShowerAnalysis::analyze(), opdet::OpHitAna::analyze(), opdet::OpFlashAna::analyze(), pid::PIDAAnalyzer::analyze(), trk::TrackContainmentAnalyzer::analyze(), MCBTDemo::analyze(), vertex::AggregateVertexAna::analyze(), detsim::SimWireAna::analyze(), shower::TCShowerElectronLikelihood::analyze(), shower::TCShowerTemplateMaker::analyze(), detsim::WienerFilterAna::analyze(), larg4::ISCalcAna::analyze(), microboone::CosmicRemovalAna::analyze(), vertex::FeatureVertexFinderAna::analyze(), cluster::HoughLineFinderAna::analyze(), opdet::FlashHypothesisAna::analyze(), hit::MagDriftAna::analyze(), pfpf::PFPAna::analyze(), calo::CaloChecker::analyze(), pdsp::CheckCNNScore::analyze(), cluster::ClusterPCA::analyze(), caldata::CalWireAna::analyze(), opreco::OpticalRecoAna::analyze(), cluster::ClusterAna::analyze(), lar_pandora::ConsolidatedPFParticleAnalysisTemplate::analyze(), opdet::LEDCalibrationAna::analyze(), hit::GausHitFinderAna::analyze(), hit::HitAnaModule::analyze(), cluster::DBclusterAna::analyze(), hit::HitFinderAna::analyze(), trkf::SpacePointAna::analyze(), cluster::ClusterTrackAna::analyze(), cheat::RecoCheckAna::analyze(), rwgt::ReweightAna::analyze(), nnet::EvaluateROIEff::analyze(), NuShowerEff::analyze(), nnet::RawWaveformDump::analyze(), nnet::PointIdEffTest::analyze(), nnet::RawWaveformClnSigDump::analyze(), ems::MultiEMShowers::analyze(), lar::example::AnalysisExample::analyze(), trkf::SeedAna::analyze(), trkf::TrackAna::analyze(), ClusteringValidation::ClusteringValidation::analyze(), trkf::TrackAna::anaStitch(), lar_pandora::LArPandoraHelper::BuildMCParticleHitMaps(), evd::AnalysisBaseDrawer::CalorShower(), evd::HitSelector::ChangeHit(), lar_cluster3d::StandardHit3DBuilder::CollectArtHits(), lar_cluster3d::SnippetHit3DBuilder::CollectArtHits(), lar_pandora::LArPandoraHelper::CollectClusters(), lar_pandora::LArPandoraHelper::CollectCosmicTags(), lar_pandora::LArPandoraHelper::CollectGeneratorMCParticles(), lar_pandora::LArPandoraHelper::CollectHits(), lar_pandora::LArPandoraHelper::CollectMCParticles(), lar_pandora::LArPandoraSliceIdHelper::CollectNeutrinoMCParticles(), lar_pandora::LArPandoraHelper::CollectPFParticleMetadata(), lar_pandora::LArPandoraExternalEventBuilding::CollectPFParticles(), lar_pandora::LArPandoraHelper::CollectPFParticles(), lar_pandora::LArPandoraHelper::CollectSeeds(), ems::EMShower3D::CollectShower2D(), lar_pandora::LArPandoraHelper::CollectShowers(), lar_pandora::LArPandoraHelper::CollectSimChannels(), lar_pandora::LArPandoraHelper::CollectSpacePoints(), lar_pandora::LArPandoraHelper::CollectT0s(), lar_pandora::LArPandoraHelper::CollectTracks(), lar_pandora::LArPandoraHelper::CollectVertices(), lar_pandora::LArPandoraHelper::CollectWires(), ems::MultiEMShowers::convCluster(), t0::IndirectHitParticleAssns::CreateHitParticleAssociations(), t0::DirectHitParticleAssns::CreateHitParticleAssociations(), evdb_tool::DrawSimPhoton3D::Draw(), evdb_tool::DrawLArVoxel3D::Draw(), evdb_tool::DrawSimEnergyDeposit3D::drawAll(), evd::AnalysisBaseDrawer::DrawDeDx(), evd::AnalysisBaseDrawer::DrawKineticEnergy(), evdb_tool::DrawSimEnergyDeposit3D::drawMCPartAssociated(), evd::RecoBaseDrawer::DrawTrackVertexAssns2D(), lcvn::LArNuCVNZlibMaker::endSubRun(), sim::POTaccumulator::endSubRun(), filt::LArG4ParticleFilter::filter(), filt::FinalStateParticleFilter::filter(), simfilter::FilterNoDirtNeutrinos::filter(), filter::MuonFilter::filter(), trkf::StitchAlg::FindHeadsAndTails(), anab::FVectorReader< T, N >::FVectorReader(), trkf::Track3DKalmanHit::getAllHits(), lar_pandora::LArPandoraHelper::GetAssociatedHits(), lar_pandora::LArPandoraSliceIdHelper::GetBeamNeutrinoMCTruth(), trkf::Track3DKalmanHit::getClusteredHits(), evd::RecoBaseDrawer::GetClusters(), evd::RecoBaseDrawer::GetEdges(), evd::RecoBaseDrawer::GetEndPoint2D(), evd::RecoBaseDrawer::GetEvents(), lar_pandora::LArPandoraSliceIdHelper::GetHitOrigins(), trkf::SeedFinderModule::GetHitsFromEvent(), evd::RecoBaseDrawer::GetOpFlashes(), evd::RecoBaseDrawer::GetPFParticles(), trkf::Track3DKalmanHit::getPFParticleStuff(), lar_pandora::LArPandoraSliceIdHelper::GetPFParticleToHitsMap(), evd::RecoBaseDrawer::GetSeeds(), sim::SimListUtils::GetSimPhotonsCollection(), evd::RecoBaseDrawer::GetSlices(), trkf::SeedFinderModule::GetSortedHitsFromClusters(), evd::RecoBaseDrawer::GetSpacePoints(), evd::RecoBaseDrawer::GetVertices(), quad::GetVtxByAssns(), evd::RecoBaseDrawer::GetWires(), lar_cluster3d::SpacePointHit3DBuilder::Hit3DBuilder(), lar_pandora::LArPandoraEventDump::PandoraData::LoadCollection(), evgb::MCTruthAndFriendsItr::MCTruthAndFriendsItr(), mvapid::MVAAlg::PrepareEvent(), wc::CellTree::processCalib(), DUNE::NeutrinoShowerEff::processEff(), DUNE::MuonTrackingEff::processEff(), DUNE::NeutrinoTrackingEff::processEff(), wc::CellTree::processMC(), wc::CellTree::processOpFlash(), wc::CellTree::processOpHit(), wc::CellTree::processRaw(), wc::CellTree::processSimChannel(), wc::CellTree::processSpacePointTruthDepo(), wc::CellTree::processTrigger(), opdet::OpticalRawDigitReformatter::produce(), pid::Chi2ParticleID::produce(), cosmic::TrackPFParticleMatch::produce(), MCReco::produce(), vertex::VertexCheater::produce(), hit::DisambigCheater::produce(), hit::MCHitFinder::produce(), trk::TrackContainmentTagger::produce(), event::EventCheater::produce(), cosmic::CosmicClusterTagger::produce(), shwf::ShowerCheater::produce(), trkf::FeatureTracker::produce(), cosmic::CosmicTrackTagger::produce(), hit::TTHitFinder::produce(), trkf::SpacePointCheater::produce(), trkf::SpacePointFinder::produce(), hit::RawHitFinder::produce(), apa::APAHitFinder::produce(), sppt::TTSpacePointFinder::produce(), cosmic::CosmicPFParticleTagger::produce(), trkf::TrackCheater::produce(), hit::RFFHitFinder::produce(), hit::FFTHitFinder::produce(), cluster::ClusterCheater::produce(), shwf::ShowerFinder::produce(), trkf::TrackStitcher::produce(), noisefilteralg::WireCellNoiseFilter::produce(), vertex::PrimaryVertexFinder::produce(), cluster::DBcluster::produce(), caldata::CalWire::produce(), cosmic::BeamFlashTrackMatchTagger::produce(), caldata::CalWireT962::produce(), cluster::EndPointModule::produce(), cluster::LineMerger::produce(), reco3d::SpacePointSolver::produce(), shower::TCShower::produce(), calo::TrackCalorimetry::produce(), cosmic::CosmicPCAxisTagger::produce(), CRHitRemoval::produce(), trkf::SpacePts::produce(), ShowerReco3D::produce(), t0::MCParticleShowerMatching::produce(), t0::MCParticleTrackMatching::produce(), trkf::Track3Dreco::produce(), cluster::BlurredClustering::produce(), nnet::WaveformRoiFinder::produce(), sce::SCECorrection::produce(), cluster::TrajCluster::produce(), trkf::MCSFitProducer::produce(), ems::EMShower3D::produce(), phot::PDFastSimPVS::produce(), trkf::CCTrackMaker::produce(), phot::PDFastSimANN::produce(), trkf::Track3DKalman::produce(), shwf::ShowerReco::produce(), hit::GausHitFinder::produce(), cluster::SmallClusterFinder::produce(), trkf::TrackKalmanCheater::produce(), quad::QuadVtx::produce(), hit::DPRawHitFinder::produce(), CRHitRemovalByPCA::produce(), vertex::VertexFinder2D::produce(), lbne::PhotonCounterT0Matching::produce(), NuGraphInference::produce(), vertex::FeatureVertexFinder::produce(), shower::EMShower::produce(), trkf::PMAlgTrajFitter::produce(), detsim::DriftElectronstoPlane::produce(), t0::MCTruthT0Matching::produce(), calo::Calorimetry::produce(), trkf::Track3DKalmanSPS::produce(), detsim::SimDriftElectrons::produce(), trkf::KalmanFilterTrajectoryFitter::produce(), calo::GnocchiCalorimetry::produce(), phot::PDFastSimPAR::produce(), opdet::OpHitFinder::produce(), trkf::CosmicTracker::produce(), larg4::LArG4::produce(), evd::details::RawDigitCacheDataClass::ReadProduct(), evd::InfoTransfer::Rebuild(), cheat::PhotonBackTracker::Rebuild(), evd::HitSelector::SaveHits(), evd::HitSelector::SaveSeedLines(), cluster::ClusterMergeHelper::SetClusters(), nnet::TrainingDataAlg::setDataEventData(), tss::TrackShowerHits::sortHits(), and evd::details::RawDigitCacheDataClass::Update().

447  {
448  result = getHandle<PROD>({moduleLabel, instance});
449  return static_cast<bool>(result);
450  }
const std::string instance
template<typename PROD >
bool art::ProductRetriever::getByLabel ( std::string const &  label,
std::string const &  instance,
std::string const &  process,
Handle< PROD > &  result 
) const
inherited

Definition at line 433 of file ProductRetriever.h.

437  {
438  result = getHandle<PROD>({moduleLabel, productInstanceName, processName});
439  return static_cast<bool>(result);
440  }
template<typename PROD >
bool art::ProductRetriever::getByLabel ( InputTag const &  tag,
Handle< PROD > &  result 
) const
inherited

Definition at line 454 of file ProductRetriever.h.

455  {
456  result = getHandle<PROD>(tag);
457  return static_cast<bool>(result);
458  }
template<typename PROD >
Handle< PROD > art::ProductRetriever::getHandle ( SelectorBase const &  sel) const
inherited
template<typename PROD >
Handle< PROD > art::ProductRetriever::getHandle ( ProductID const  pid) const
inherited

Definition at line 244 of file ProductRetriever.h.

245  {
246  auto qr = getByProductID_(pid);
247  return Handle<PROD>{qr};
248  }
GroupQueryResult getByProductID_(ProductID productID) const
template<typename PROD >
Handle< PROD > art::ProductRetriever::getHandle ( InputTag const &  tag) const
inherited

Definition at line 252 of file ProductRetriever.h.

253  {
254  auto qr = getByLabel_(WrappedTypeID::make<PROD>(), tag);
255  return Handle<PROD>{qr};
256  }
GroupQueryResult getByLabel_(WrappedTypeID const &wrapped, InputTag const &tag) const
template<typename PROD >
Handle< PROD > art::ProductRetriever::getHandle ( ProductToken< PROD > const &  token) const
inherited

Definition at line 260 of file ProductRetriever.h.

References art::ProductToken< T >::inputTag().

261  {
262  return getHandle<PROD>(token.inputTag());
263  }
template<typename PROD >
std::vector< InputTag > art::ProductRetriever::getInputTags ( SelectorBase const &  selector = MatchAllSelector{}) const
inherited

Definition at line 283 of file ProductRetriever.h.

284  {
285  return getInputTags_(WrappedTypeID::make<PROD>(), selector);
286  }
std::vector< InputTag > getInputTags_(WrappedTypeID const &wrapped, SelectorBase const &selector) const
template<typename PROD >
std::vector< Handle< PROD > > art::ProductRetriever::getMany ( SelectorBase const &  selector = MatchAllSelector{}) const
inherited

Definition at line 303 of file ProductRetriever.h.

Referenced by opdet::PhotonInf::analyze(), opdet::SimPhotonCounter::analyze(), nnet::RawWaveformDump::analyze(), nnet::RawWaveformClnSigDump::analyze(), artg4tk::dataFromRunOrService(), evd::RecoBaseDrawer::DrawShower3D(), evd::RecoBaseDrawer::DrawShowerOrtho(), evd::RecoBaseDrawer::DrawTrack3D(), evd::RecoBaseDrawer::DrawTrackOrtho(), simfilter::FilterCryostatNus::filter(), simfilter::FilterGenInTime::filter(), artg4tk::PrimaryEventActionService::generatePrimaries(), evdb_tool::DrawLArVoxel3D::GetMCTruth(), evd::SimulationDrawer::GetMCTruth(), evwgh::PPFXThinMesonWeightCalc::GetWeight(), evwgh::PPFXThinNeutronPionWeightCalc::GetWeight(), evwgh::PPFXCVWeightCalc::GetWeight(), evwgh::PPFXTotAbsorpWeightCalc::GetWeight(), evwgh::PPFXWeightCalc::GetWeight(), evwgh::PPFXMIPPPionWeightCalc::GetWeight(), evwgh::PPFXOtherWeightCalc::GetWeight(), evwgh::PPFXTargAttenWeightCalc::GetWeight(), evwgh::PPFXThinKaonWeightCalc::GetWeight(), evwgh::PPFXMIPPKaonWeightCalc::GetWeight(), evwgh::PPFXThinNucWeightCalc::GetWeight(), evwgh::PPFXThinPionWeightCalc::GetWeight(), evwgh::PPFXThinNucAWeightCalc::GetWeight(), larg4::IonAndScint::inputCollections(), larg4::larg4Main::inputCollections(), evgb::MCTruthAndFriendsItr::MCTruthAndFriendsItr(), geo::AuxDetGeometry::preBeginRun(), sim::GenericCRT::produce(), sim::PhotonHitConverter::produce(), larg4::LArG4::produce(), geo::GeometryConfigurationWriter::readRunData(), and evdb::ScanFrame::Record().

304  {
305  auto const qrs = getMany_(WrappedTypeID::make<PROD>(), sel);
306  std::vector<Handle<PROD>> products;
307  products.reserve(qrs.size());
308  cet::transform_all(qrs, back_inserter(products), [](auto const& qr) {
309  return Handle<PROD>{qr};
310  });
311  return products;
312  }
std::vector< GroupQueryResult > getMany_(WrappedTypeID const &wrapped, SelectorBase const &sel) const
std::optional< fhicl::ParameterSet const > art::ProductRetriever::getProcessParameterSet ( std::string const &  process) const
inherited

Definition at line 53 of file ProductRetriever.cc.

References fhicl::ParameterSetRegistry::get(), art::ProcessHistory::getConfigurationForProcess(), art::ProductRetriever::mutex_, art::ProductRetriever::principal_, and art::Principal::processHistory().

54  {
55  std::lock_guard lock{mutex_};
56  auto const config =
58  if (!config) {
59  return std::nullopt;
60  }
61 
62  if (fhicl::ParameterSet ps;
63  fhicl::ParameterSetRegistry::get(config->parameterSetID(), ps)) {
64  return std::make_optional(std::move(ps));
65  }
66  return std::nullopt;
67  }
static collection_type const & get() noexcept
Principal const & principal_
std::recursive_mutex mutex_
ProcessHistory const & processHistory() const
Definition: Principal.cc:247
std::optional< ProcessConfiguration > getConfigurationForProcess(std::string const &name) const
template<typename PROD >
PROD const & art::ProductRetriever::getProduct ( InputTag const &  tag) const
inherited
template<typename PROD >
PROD const & art::ProductRetriever::getProduct ( ProductToken< PROD > const &  token) const
inherited

Definition at line 228 of file ProductRetriever.h.

229  {
230  return *getValidHandle(token);
231  }
ValidHandle< PROD > getValidHandle(InputTag const &tag) const
cet::exempt_ptr< BranchDescription const > art::ProductRetriever::getProductDescription ( ProductID  pid) const
inherited

Definition at line 95 of file ProductRetriever.cc.

References art::Principal::getProductDescription(), and art::ProductRetriever::principal_.

96  {
98  }
Principal const & principal_
cet::exempt_ptr< BranchDescription const > getProductDescription(ProductID const pid, bool const alwaysEnableLookupOfProducedProducts=false) const
Definition: Principal.cc:779
template<typename PROD >
ProductID art::ProductRetriever::getProductID ( std::string const &  instance_name = "") const
inherited
std::optional< Provenance const > art::ProductRetriever::getProductProvenance ( ProductID  pid) const
inherited

Definition at line 78 of file ProductRetriever.cc.

References art::Principal::getByProductID(), art::ProductRetriever::principal_, and art::GroupQueryResult::result().

79  {
80  auto gqr = principal_.getByProductID(pid);
81  if (gqr.failed()) {
82  return std::nullopt;
83  }
84 
85  auto group = gqr.result();
86  if (!group->productProvenance()) {
87  // This can happen if someone tries to access the provenance
88  // before the product has been produced.
89  return std::nullopt;
90  }
91  return std::make_optional<Provenance const>(group);
92  }
Principal const & principal_
cet::exempt_ptr< Group > result() const
GroupQueryResult getByProductID(ProductID const pid) const
Definition: Principal.cc:839
template<typename PROD >
std::vector< ProductToken< PROD > > art::ProductRetriever::getProductTokens ( SelectorBase const &  selector = MatchAllSelector{}) const
inherited

Definition at line 290 of file ProductRetriever.h.

291  {
292  auto const tags = getInputTags<PROD>(selector);
293  std::vector<ProductToken<PROD>> tokens;
294  tokens.reserve(tags.size());
295  cet::transform_all(tags, back_inserter(tokens), [](auto const& tag) {
296  return ProductToken<PROD>{tag};
297  });
298  return tokens;
299  }
template<typename PROD >
ValidHandle< PROD > art::ProductRetriever::getValidHandle ( InputTag const &  tag) const
inherited

Definition at line 268 of file ProductRetriever.h.

References art::ValidHandle< T >::product().

Referenced by quad::EvalVtx::analyze(), hit::MCHitAnaExample::analyze(), detsim::SimDriftedElectronClusterAna::analyze(), larg::LArSimChannelAna::analyze(), vertex::FeatureVertexFinderAna::analyze(), ShowerQuality::analyze(), recob::DumpVertices::analyze(), hit::HitAnaModule::analyze(), nnet::WaveformDenoiseTest::analyze(), nnet::NoiseWaveformDump::analyze(), nnet::EvaluateROIEff::analyze(), sim::DumpMCTruth::analyze(), recob::DumpPCAxes::analyze(), recob::DumpSeeds::analyze(), recob::DumpSpacePoints::analyze(), sim::DumpGTruth::analyze(), hit::DumpHits::analyze(), recob::DumpClusters::analyze(), nnet::RawWaveformDump::analyze(), nnet::PointIdEffTest::analyze(), detsim::DumpRawDigits::analyze(), caldata::DumpWires::analyze(), nnet::RawWaveformClnSigDump::analyze(), recob::DumpPFParticles::analyze(), recob::DumpTracks::analyze(), ShowerRecoTools::ShowerExampleTool::CalculateElement(), ShowerRecoTools::ShowerLengthPercentile::CalculateElement(), ShowerRecoTools::ShowerTrackTrajToSpacePoint::CalculateElement(), ShowerRecoTools::ShowerTrackFinderCheater::CalculateElement(), ShowerRecoTools::Shower3DCylinderTrackHitFinder::CalculateElement(), ShowerRecoTools::ShowerTrackHitDirection::CalculateElement(), ShowerRecoTools::ShowerStartPositionCheater::CalculateElement(), ShowerRecoTools::ShowerPCAPropergationStartPosition::CalculateElement(), ShowerRecoTools::ShowerPFPVertexStartPosition::CalculateElement(), ShowerRecoTools::Shower2DLinearRegressionTrackHitFinder::CalculateElement(), ShowerRecoTools::ShowerLinearEnergy::CalculateElement(), ShowerRecoTools::ShowerDirectionCheater::CalculateElement(), ShowerRecoTools::ShowerTrackPCADirection::CalculateElement(), ShowerRecoTools::ShowerNumElectronsEnergy::CalculateElement(), ShowerRecoTools::ShowerPCADirection::CalculateElement(), ShowerRecoTools::ShowerIncrementalTrackHitFinder::CalculateElement(), ShowerRecoTools::ShowerTrajPointdEdx::CalculateElement(), shower::LArPandoraShowerCheatingAlg::CheatDebugEVD(), nnet::EmTrack< N >::classify_hits(), t0::IndirectHitParticleAssns::CreateHitParticleAssociations(), t0::DirectHitParticleAssns::CreateHitParticleAssociations(), shower::LArPandoraShowerAlg::DebugEVD(), simfilter::FilterNoMCParticles::filter(), simfilter::FilterSimPhotonTime::filter(), cluster::SmallClusterFilter::filter(), simfilter::FilterSimPhotonLiteTime::filter(), anab::FVectorReader< T, N >::FVectorReader(), quad::GetFirstVertex(), trkmkr::KalmanFilterFitTrackMaker::initEvent(), nnet::EmTrack< N >::make_clusters(), nnet::EmTrack< N >::make_tracks(), MCReco::MakeMCEdep(), lar_cluster3d::StandardHit3DBuilder::makeRawDigitAssns(), lar_cluster3d::SnippetHit3DBuilder::makeRawDigitAssns(), lar_cluster3d::StandardHit3DBuilder::makeWireAssns(), lar_cluster3d::SnippetHit3DBuilder::makeWireAssns(), MCReco::produce(), hit::HitFinder::produce(), trkf::TCTrack::produce(), reco::shower::LArPandoraModularShowerCreation::produce(), cluster::LineCluster::produce(), opdet::OpFlashFinder::produce(), cluster::ClusterCrawler::produce(), hit::HitCheater::produce(), evwgh::EventWeight::produce(), spacecharge::ShiftEdepSCE::produce(), opdet::OpMCDigi::produce(), NuSliceHitsProducer::produce(), cluster::HoughLineFinder::produce(), cluster::DBCluster3D::produce(), TrackProducerFromTrack::produce(), TrackProducerFromTrackTrajectory::produce(), calo::ShowerCalorimetry::produce(), cluster::TrajCluster::produce(), TrackProducerFromPFParticle::produce(), trkf::VertexFitter::produce(), nnet::EmTrack< N >::produce(), nnet::ParticleDecayId::produce(), t0::MCTruthT0Matching::produce(), nnet::EmTrackClusterId2out::produce(), nnet::EmTrackClusterId::produce(), nnet::EmTrackMichelId::produce(), trkf::KalmanFilterTrajectoryFitter::produce(), trkf::PMAlgTrackMaker::produce(), sim::MergeSimSources::produce(), phot::PhotonLibraryPropagation::produce(), and trkf::KalmanFilterFinalTrackFitter::produce().

269  {
270  auto h = getHandle<PROD>(tag);
271  return ValidHandle{h.product(), h.productGetter(), *h.provenance()};
272  }
template<typename PROD >
ValidHandle< PROD > art::ProductRetriever::getValidHandle ( ProductToken< PROD > const &  token) const
inherited

Definition at line 276 of file ProductRetriever.h.

References art::ProductToken< T >::inputTag().

277  {
278  return getValidHandle<PROD>(token.inputTag());
279  }
template<typename ELEMENT >
std::size_t art::ProductRetriever::getView ( std::string const &  moduleLabel,
std::string const &  productInstanceName,
std::string const &  processName,
std::vector< ELEMENT const * > &  result 
) const
inherited

Definition at line 316 of file ProductRetriever.h.

Referenced by larg4::LArG4Ana::analyze(), pmtana::PMTAna::analyze(), opdet::SimPhotonCounter::analyze(), evd::RecoBaseDrawer::CountHits(), cluster::ClusterMatchAlg::FillMCInfo(), filter::ADCFilter::filter(), evd::RecoBaseDrawer::GetHits(), sim::SimListUtils::GetLArVoxelList(), evd::SimulationDrawer::GetParticle(), evd::RecoBaseDrawer::GetShowers(), evd::RecoBaseDrawer::GetTracks(), opdet::OpticalRawDigitReformatter::produce(), event::EventCheater::produce(), hit::HitCheater::produce(), detsim::SimWire::produce(), and opdet::OpHitFinder::produce().

320  {
321  std::lock_guard lock{mutex_};
322  std::size_t const orig_size = result.size();
323  auto grp = getContainerForView_(TypeID{typeid(ELEMENT)},
324  moduleLabel,
325  productInstanceName,
326  ProcessTag{processName, md_.processName()});
327  if (recordParents_) {
328  recordAsParent_(grp);
329  }
330  auto const view = grp->uniqueProduct()->getView();
331  std::vector<ELEMENT const*> castedView;
332  for (auto p : view) {
333  castedView.push_back(static_cast<ELEMENT const*>(p));
334  }
335  result = std::move(castedView);
336  return result.size() - orig_size;
337  }
void recordAsParent_(cet::exempt_ptr< Group const > grp) const
std::string const & processName() const
ModuleDescription const & md_
std::recursive_mutex mutex_
cet::exempt_ptr< Group const > getContainerForView_(TypeID const &, std::string const &moduleLabel, std::string const &productInstanceName, ProcessTag const &processTag) const
template<typename ELEMENT >
std::size_t art::ProductRetriever::getView ( std::string const &  moduleLabel,
std::string const &  productInstanceName,
std::vector< ELEMENT const * > &  result 
) const
inherited

Definition at line 341 of file ProductRetriever.h.

344  {
345  return getView(moduleLabel, productInstanceName, {}, result);
346  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
template<typename ELEMENT >
std::size_t art::ProductRetriever::getView ( InputTag const &  tag,
std::vector< ELEMENT const * > &  result 
) const
inherited

Definition at line 350 of file ProductRetriever.h.

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

352  {
353  return getView(tag.label(), tag.instance(), tag.process(), result);
354  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
template<typename ELEMENT >
std::size_t art::ProductRetriever::getView ( ViewToken< ELEMENT > const &  token,
std::vector< ELEMENT const * > &  result 
) const
inherited

Definition at line 358 of file ProductRetriever.h.

References art::ViewToken< Element >::inputTag().

360  {
361  return getView(token.inputTag(), result);
362  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
template<typename ELEMENT >
bool art::ProductRetriever::getView ( std::string const &  moduleLabel,
std::string const &  productInstanceName,
std::string const &  processName,
View< ELEMENT > &  result 
) const
inherited

Definition at line 366 of file ProductRetriever.h.

370  {
371  std::lock_guard lock{mutex_};
372  auto grp = getContainerForView_(TypeID{typeid(ELEMENT)},
373  moduleLabel,
374  productInstanceName,
375  ProcessTag{processName, md_.processName()});
376  if (recordParents_) {
377  recordAsParent_(grp);
378  }
379  auto const view = grp->uniqueProduct()->getView();
380  std::vector<ELEMENT const*> castedView;
381  for (auto p : view) {
382  castedView.push_back(static_cast<ELEMENT const*>(p));
383  }
384  result =
385  View{std::move(castedView), grp->productID(), grp->uniqueProduct()};
386  return true;
387  }
void recordAsParent_(cet::exempt_ptr< Group const > grp) const
std::string const & processName() const
ModuleDescription const & md_
std::recursive_mutex mutex_
cet::exempt_ptr< Group const > getContainerForView_(TypeID const &, std::string const &moduleLabel, std::string const &productInstanceName, ProcessTag const &processTag) const
template<typename ELEMENT >
bool art::ProductRetriever::getView ( std::string const &  moduleLabel,
std::string const &  productInstanceName,
View< ELEMENT > &  result 
) const
inherited

Definition at line 391 of file ProductRetriever.h.

394  {
395  return getView(moduleLabel, productInstanceName, {}, result);
396  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
template<typename ELEMENT >
bool art::ProductRetriever::getView ( InputTag const &  tag,
View< ELEMENT > &  result 
) const
inherited

Definition at line 400 of file ProductRetriever.h.

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

401  {
402  return getView(tag.label(), tag.instance(), tag.process(), result);
403  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
template<typename ELEMENT >
bool art::ProductRetriever::getView ( ViewToken< ELEMENT > const &  token,
View< ELEMENT > &  result 
) const
inherited

Definition at line 407 of file ProductRetriever.h.

References art::ViewToken< Element >::inputTag().

409  {
410  return getView(token.inputTag(), result);
411  }
std::size_t getView(std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName, std::vector< ELEMENT const * > &result) const
Results& art::Results::operator= ( Results const &  )
delete
Results& art::Results::operator= ( Results &&  )
delete
template<typename PROD >
PutHandle<PROD> art::Results::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance = {} 
)
inline

Definition at line 54 of file Results.h.

References commitProducts(), inserter_, and instance.

54  {})
55  {
56  assert(inserter_);
57  return inserter_->put(std::move(edp), instance);
58  }
const std::string instance
std::optional< ProductInserter > inserter_
Definition: Results.h:66
std::vector< ProductID > art::ProductRetriever::retrievedPIDs ( ) const
inherited

Definition at line 70 of file ProductRetriever.cc.

References util::begin(), util::end(), art::ProductRetriever::mutex_, and art::ProductRetriever::retrievedProducts_.

Referenced by art::Event::commitProducts().

71  {
72  std::lock_guard lock{mutex_};
73  return std::vector<ProductID>(begin(retrievedProducts_),
75  }
std::set< ProductID > retrievedProducts_
decltype(auto) constexpr end(T &&obj)
ADL-aware version of std::end.
Definition: StdUtils.h:77
std::recursive_mutex mutex_
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Definition: StdUtils.h:69

Friends And Related Function Documentation

friend class ResultsProducer
friend

Definition at line 64 of file Results.h.

Member Data Documentation

std::optional<ProductInserter> art::Results::inserter_
private

Definition at line 66 of file Results.h.

Referenced by commitProducts(), put(), and Results().


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