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

#include "Run.h"

Inheritance diagram for art::Run:
art::ProductRetriever

Public Member Functions

 ~Run ()
 
 Run (RunPrincipal const &srp, ModuleContext const &mc, std::optional< ProductInserter > inserter=std::nullopt, RangeSet const &rs=RangeSet::invalid())
 
 Run (Run const &)=delete
 
 Run (Run &&)=delete
 
Runoperator= (Run const &)=delete
 
Runoperator= (Run &&)=delete
 
RunID id () const
 
RunNumber_t run () const
 
Timestamp const & beginTime () const
 
Timestamp const & endTime () const
 
ProcessHistory const & processHistory () const
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance={})
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > semantic)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, FragmentSemantic< Level::Run > semantic)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, RangedFragmentSemantic< Level::Run > semantic)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance, FullSemantic< Level::Run >)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance, FragmentSemantic< Level::Run >)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance, RangedFragmentSemantic< Level::Run > semantic)
 

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_
 
RunPrincipal const & runPrincipal_
 
RangeSet rangeSet_
 

Friends

class detail::Analyzer
 
class detail::Filter
 
class detail::Producer
 
class ProducingService
 

Detailed Description

Definition at line 37 of file Run.h.

Constructor & Destructor Documentation

art::Run::~Run ( )
default
art::Run::Run ( RunPrincipal const &  srp,
ModuleContext const &  mc,
std::optional< ProductInserter inserter = std::nullopt,
RangeSet const &  rs = RangeSet::invalid() 
)
explicit

Definition at line 10 of file Run.cc.

References art::InRun, inserter_, rangeSet_, and runPrincipal_.

14  : ProductRetriever{InRun, srp, mc, false}
15  , inserter_{std::move(inserter)}
16  , runPrincipal_{srp}
17  , rangeSet_{rs}
18  {}
RangeSet rangeSet_
Definition: Run.h:116
ProductRetriever(BranchType bt, Principal const &p, ModuleContext const &mc, bool recordParents)
std::optional< ProductInserter > inserter_
Definition: Run.h:112
RunPrincipal const & runPrincipal_
Definition: Run.h:113
art::Run::Run ( Run const &  )
delete
art::Run::Run ( Run &&  )
delete

Member Function Documentation

Timestamp const & art::Run::beginTime ( ) const

Definition at line 33 of file Run.cc.

References art::RunPrincipal::beginTime(), and runPrincipal_.

Referenced by artg4tk::CheckInteractions::beginRun(), artg4tk::CheckProtonProduction::beginRun(), and art::Tracer::preBeginRun().

34  {
35  return runPrincipal_.beginTime();
36  }
Timestamp const & beginTime() const
Definition: RunPrincipal.cc:36
RunPrincipal const & runPrincipal_
Definition: Run.h:113
void art::Run::commitProducts ( )
private

Definition at line 51 of file Run.cc.

References inserter_.

52  {
53  assert(inserter_);
54  inserter_->commitProducts();
55  }
std::optional< ProductInserter > inserter_
Definition: Run.h:112
Timestamp const & art::Run::endTime ( ) const

Definition at line 39 of file Run.cc.

References art::RunPrincipal::endTime(), and runPrincipal_.

40  {
41  return runPrincipal_.endTime();
42  }
Timestamp const & endTime() const
Definition: RunPrincipal.cc:42
RunPrincipal const & runPrincipal_
Definition: Run.h:113
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::ClusterAna::analyze(), cluster::ClusterPCA::analyze(), caldata::CalWireAna::analyze(), opreco::OpticalRecoAna::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(), event::EventCheater::produce(), cosmic::CosmicClusterTagger::produce(), shwf::ShowerCheater::produce(), trk::TrackContainmentTagger::produce(), trkf::FeatureTracker::produce(), cosmic::CosmicTrackTagger::produce(), hit::TTHitFinder::produce(), trkf::SpacePointCheater::produce(), trkf::SpacePointFinder::produce(), apa::APAHitFinder::produce(), hit::RawHitFinder::produce(), cosmic::CosmicPFParticleTagger::produce(), sppt::TTSpacePointFinder::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(), cluster::EndPointModule::produce(), caldata::CalWireT962::produce(), cluster::LineMerger::produce(), reco3d::SpacePointSolver::produce(), calo::TrackCalorimetry::produce(), CRHitRemoval::produce(), shower::TCShower::produce(), cosmic::CosmicPCAxisTagger::produce(), trkf::SpacePts::produce(), ShowerReco3D::produce(), trkf::Track3Dreco::produce(), t0::MCParticleShowerMatching::produce(), t0::MCParticleTrackMatching::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(), trkf::Track3DKalman::produce(), shwf::ShowerReco::produce(), phot::PDFastSimANN::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::PPFXThinKaonWeightCalc::GetWeight(), evwgh::PPFXThinNucAWeightCalc::GetWeight(), evwgh::PPFXThinNeutronPionWeightCalc::GetWeight(), evwgh::PPFXCVWeightCalc::GetWeight(), evwgh::PPFXTotAbsorpWeightCalc::GetWeight(), evwgh::PPFXWeightCalc::GetWeight(), evwgh::PPFXMIPPPionWeightCalc::GetWeight(), evwgh::PPFXOtherWeightCalc::GetWeight(), evwgh::PPFXTargAttenWeightCalc::GetWeight(), evwgh::PPFXMIPPKaonWeightCalc::GetWeight(), evwgh::PPFXThinNucWeightCalc::GetWeight(), evwgh::PPFXThinPionWeightCalc::GetWeight(), evwgh::PPFXThinMesonWeightCalc::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::ShowerStartPositionCheater::CalculateElement(), ShowerRecoTools::ShowerTrackFinderCheater::CalculateElement(), ShowerRecoTools::Shower3DCylinderTrackHitFinder::CalculateElement(), ShowerRecoTools::ShowerTrackHitDirection::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(), spacecharge::ShiftEdepSCE::produce(), opdet::OpMCDigi::produce(), evwgh::EventWeight::produce(), NuSliceHitsProducer::produce(), cluster::DBCluster3D::produce(), cluster::HoughLineFinder::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
Run& art::Run::operator= ( Run const &  )
delete
Run& art::Run::operator= ( Run &&  )
delete
ProcessHistory const & art::Run::processHistory ( ) const

Definition at line 45 of file Run.cc.

References art::Principal::processHistory(), and runPrincipal_.

46  {
48  }
ProcessHistory const & processHistory() const
Definition: Principal.cc:247
RunPrincipal const & runPrincipal_
Definition: Run.h:113
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance = {} 
)
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
FullSemantic< Level::Run semantic 
)

Definition at line 130 of file Run.h.

References put().

131  {
132  return put(std::move(edp), "", semantic);
133  }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: Run.h:121
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
FragmentSemantic< Level::Run semantic 
)

Definition at line 137 of file Run.h.

References put().

139  {
140  return put(std::move(edp), "", semantic);
141  }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: Run.h:121
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
RangedFragmentSemantic< Level::Run semantic 
)

Definition at line 145 of file Run.h.

References put().

147  {
148  return put(std::move(edp), "", std::move(semantic));
149  }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: Run.h:121
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance,
FullSemantic< Level::Run  
)

Definition at line 153 of file Run.h.

References art::RangeSet::forRun(), and inserter_.

156  {
157  assert(inserter_);
158  return inserter_->put(std::move(edp), instance, RangeSet::forRun(id()));
159  }
const std::string instance
std::optional< ProductInserter > inserter_
Definition: Run.h:112
static RangeSet forRun(RunID)
Definition: RangeSet.cc:51
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance,
FragmentSemantic< Level::Run  
)

Definition at line 163 of file Run.h.

References art::RangeSet::collapse(), inserter_, art::RangeSet::is_full_run(), art::errors::ProductPutFailure, and rangeSet_.

166  {
167  static_assert(
169  "\n\n"
170  "art error: A Run product put with the semantic 'RunFragment'\n"
171  " must be able to be aggregated. Please add the appropriate\n"
172  " void aggregate(T const&)\n"
173  " function to your class, or contact artists@fnal.gov.\n");
174  assert(inserter_);
175  if (rangeSet_.collapse().is_full_run()) {
176  throw Exception{errors::ProductPutFailure, "Run::put"}
177  << "\nCannot put a product corresponding to a full Run using\n"
178  << "art::runFragment(). This can happen if you attempted to\n"
179  << "put a product at beginRun using art::runFragment().\n"
180  << "Please use either:\n"
181  << " art::fullRun(), or\n"
182  << " art::runFragment(art::RangeSet const&)\n"
183  << "or contact artists@fnal.gov for assistance.\n";
184  }
185  return inserter_->put(std::move(edp), instance, rangeSet_);
186  }
const std::string instance
RangeSet rangeSet_
Definition: Run.h:116
RangeSet & collapse()
Definition: RangeSet.cc:262
bool is_full_run() const
Definition: RangeSet.cc:123
double value
Definition: spectrum.C:18
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ProductInserter > inserter_
Definition: Run.h:112
template<typename PROD >
PutHandle< PROD > art::Run::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance,
RangedFragmentSemantic< Level::Run semantic 
)

Definition at line 190 of file Run.h.

References inserter_, art::errors::ProductPutFailure, and art::RangedFragmentSemantic< Level >::rs.

193  {
194  static_assert(
196  "\n\n"
197  "art error: A Run product put with the semantic 'RunFragment'\n"
198  " must be able to be aggregated. Please add the appropriate\n"
199  " void aggregate(T const&)\n"
200  " function to your class, or contact artists@fnal.gov.\n");
201  assert(inserter_);
202  if (semantic.rs.collapse().is_full_run()) {
203  throw Exception{errors::ProductPutFailure, "Run::put"}
204  << "\nCannot put a product corresponding to a full Run using\n"
205  << "art::runFragment(art::RangeSet&). Please use:\n"
206  << " art::fullRun()\n"
207  << "or contact artists@fnal.gov for assistance.\n";
208  }
209  if (!semantic.rs.is_valid()) {
210  throw Exception{errors::ProductPutFailure, "Run::put"}
211  << "\nCannot put a product with an invalid RangeSet.\n"
212  << "Please contact artists@fnal.gov.\n";
213  }
214  return inserter_->put(std::move(edp), instance, semantic.rs);
215  }
const std::string instance
double value
Definition: spectrum.C:18
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::optional< ProductInserter > inserter_
Definition: Run.h:112
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
RunNumber_t art::Run::run ( ) const

Definition at line 27 of file Run.cc.

References id(), and art::RunID::run().

Referenced by detinfo::LArPropertiesServiceStandard::preBeginRun(), and spacecharge::SpaceChargeServiceStandard::preBeginRun().

28  {
29  return id().run();
30  }
RunID id() const
Definition: Run.cc:21
RunNumber_t run() const
Definition: RunID.h:64

Friends And Related Function Documentation

friend class detail::Analyzer
friend

Definition at line 107 of file Run.h.

friend class detail::Filter
friend

Definition at line 108 of file Run.h.

friend class detail::Producer
friend

Definition at line 109 of file Run.h.

friend class ProducingService
friend

Definition at line 110 of file Run.h.

Member Data Documentation

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

Definition at line 112 of file Run.h.

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

RangeSet art::Run::rangeSet_
private

Definition at line 116 of file Run.h.

Referenced by put(), and Run().

RunPrincipal const& art::Run::runPrincipal_
private

Definition at line 113 of file Run.h.

Referenced by beginTime(), endTime(), id(), processHistory(), and Run().


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