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

#include "SubRun.h"

Inheritance diagram for art::SubRun:
art::ProductRetriever

Public Member Functions

 ~SubRun ()
 
 SubRun (SubRunPrincipal const &srp, ModuleContext const &mc, std::optional< ProductInserter > inserter=std::nullopt, RangeSet const &rs=RangeSet::invalid())
 
 SubRun (SubRun const &)=delete
 
 SubRun (SubRun &&)=delete
 
SubRunoperator= (SubRun const &)=delete
 
SubRunoperator= (SubRun &&)=delete
 
SubRunID id () const
 
RunNumber_t run () const
 
SubRunNumber_t subRun () const
 
Timestamp const & beginTime () const
 
Timestamp const & endTime () const
 
ProcessHistory const & processHistory () const
 
Run const & getRun () 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::SubRun > semantic)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, FragmentSemantic< Level::SubRun > semantic)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, RangedFragmentSemantic< Level::SubRun > semantic)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance, FullSemantic< Level::SubRun >)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance, FragmentSemantic< Level::SubRun >)
 
template<typename PROD >
PutHandle< PROD > put (std::unique_ptr< PROD > &&edp, std::string const &instance, RangedFragmentSemantic< Level::SubRun > 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_
 
SubRunPrincipal const & subRunPrincipal_
 
Run const run_
 
RangeSet rangeSet_
 

Friends

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

Detailed Description

Definition at line 39 of file SubRun.h.

Constructor & Destructor Documentation

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

Definition at line 13 of file SubRun.cc.

References inserter_, art::InSubRun, rangeSet_, run_, and subRunPrincipal_.

17  : ProductRetriever{InSubRun, srp, mc, false}
18  , inserter_{std::move(inserter)}
19  , subRunPrincipal_{srp}
20  , run_{srp.runPrincipal().makeRun(mc)}
21  , rangeSet_{rs}
22  {}
SubRunPrincipal const & subRunPrincipal_
Definition: SubRun.h:117
RangeSet rangeSet_
Definition: SubRun.h:121
ProductRetriever(BranchType bt, Principal const &p, ModuleContext const &mc, bool recordParents)
Run const run_
Definition: SubRun.h:118
std::optional< ProductInserter > inserter_
Definition: SubRun.h:116
art::SubRun::SubRun ( SubRun const &  )
delete
art::SubRun::SubRun ( SubRun &&  )
delete

Member Function Documentation

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

Definition at line 43 of file SubRun.cc.

References art::SubRunPrincipal::beginTime(), and subRunPrincipal_.

Referenced by art::Tracer::preBeginSubRun().

44  {
45  return subRunPrincipal_.beginTime();
46  }
SubRunPrincipal const & subRunPrincipal_
Definition: SubRun.h:117
Timestamp const & beginTime() const
void art::SubRun::commitProducts ( )
private

Definition at line 67 of file SubRun.cc.

References inserter_.

68  {
69  assert(inserter_);
70  inserter_->commitProducts();
71  }
std::optional< ProductInserter > inserter_
Definition: SubRun.h:116
Timestamp const & art::SubRun::endTime ( ) const

Definition at line 49 of file SubRun.cc.

References art::SubRunPrincipal::endTime(), and subRunPrincipal_.

50  {
51  return subRunPrincipal_.endTime();
52  }
SubRunPrincipal const & subRunPrincipal_
Definition: SubRun.h:117
Timestamp const & endTime() const
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(), opreco::OpticalRecoAna::analyze(), cluster::ClusterAna::analyze(), cluster::ClusterPCA::analyze(), caldata::CalWireAna::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(), cosmic::CosmicClusterTagger::produce(), shwf::ShowerCheater::produce(), trk::TrackContainmentTagger::produce(), event::EventCheater::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(), CRHitRemoval::produce(), cosmic::CosmicPCAxisTagger::produce(), calo::TrackCalorimetry::produce(), shower::TCShower::produce(), trkf::SpacePts::produce(), ShowerReco3D::produce(), t0::MCParticleTrackMatching::produce(), trkf::Track3Dreco::produce(), t0::MCParticleShowerMatching::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(), shwf::ShowerReco::produce(), phot::PDFastSimANN::produce(), trkf::Track3DKalman::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::PPFXTargAttenWeightCalc::GetWeight(), evwgh::PPFXThinMesonWeightCalc::GetWeight(), evwgh::PPFXThinNucAWeightCalc::GetWeight(), evwgh::PPFXThinNeutronPionWeightCalc::GetWeight(), evwgh::PPFXCVWeightCalc::GetWeight(), evwgh::PPFXTotAbsorpWeightCalc::GetWeight(), evwgh::PPFXWeightCalc::GetWeight(), evwgh::PPFXMIPPPionWeightCalc::GetWeight(), evwgh::PPFXOtherWeightCalc::GetWeight(), evwgh::PPFXMIPPKaonWeightCalc::GetWeight(), evwgh::PPFXThinNucWeightCalc::GetWeight(), evwgh::PPFXThinPionWeightCalc::GetWeight(), evwgh::PPFXThinKaonWeightCalc::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  }
Run const & art::SubRun::getRun ( ) const

Definition at line 61 of file SubRun.cc.

References run_.

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

62  {
63  return run_;
64  }
Run const run_
Definition: SubRun.h:118
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::ShowerTrackHitDirection::CalculateElement(), ShowerRecoTools::ShowerStartPositionCheater::CalculateElement(), ShowerRecoTools::ShowerTrackFinderCheater::CalculateElement(), ShowerRecoTools::Shower3DCylinderTrackHitFinder::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(), opdet::OpMCDigi::produce(), evwgh::EventWeight::produce(), spacecharge::ShiftEdepSCE::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
SubRunID art::SubRun::id ( ) const

Definition at line 25 of file SubRun.cc.

References art::SubRunPrincipal::subRunID(), and subRunPrincipal_.

Referenced by sim::POTaccumulator::endSubRun(), art::Tracer::preBeginSubRun(), run(), and subRun().

26  {
27  return subRunPrincipal_.subRunID();
28  }
SubRunPrincipal const & subRunPrincipal_
Definition: SubRun.h:117
SubRunID subRunID() const
SubRun& art::SubRun::operator= ( SubRun const &  )
delete
SubRun& art::SubRun::operator= ( SubRun &&  )
delete
ProcessHistory const & art::SubRun::processHistory ( ) const

Definition at line 55 of file SubRun.cc.

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

56  {
58  }
SubRunPrincipal const & subRunPrincipal_
Definition: SubRun.h:117
ProcessHistory const & processHistory() const
Definition: Principal.cc:247
template<typename PROD >
PutHandle< PROD > art::SubRun::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance = {} 
)

Definition at line 126 of file SubRun.h.

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

Referenced by evgen::GENIEGen::endSubRun(), and put().

127  {
128  assert(inserter_);
129  // Should be protected when a SubRun is shared among threads.
130  return inserter_->put(std::move(edp), instance, rangeSet_.collapse());
131  }
const std::string instance
RangeSet rangeSet_
Definition: SubRun.h:121
RangeSet & collapse()
Definition: RangeSet.cc:262
std::optional< ProductInserter > inserter_
Definition: SubRun.h:116
template<typename PROD >
PutHandle< PROD > art::SubRun::put ( std::unique_ptr< PROD > &&  edp,
FullSemantic< Level::SubRun semantic 
)

Definition at line 135 of file SubRun.h.

References put().

137  {
138  return put(std::move(edp), "", semantic);
139  }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: SubRun.h:126
template<typename PROD >
PutHandle< PROD > art::SubRun::put ( std::unique_ptr< PROD > &&  edp,
FragmentSemantic< Level::SubRun semantic 
)

Definition at line 143 of file SubRun.h.

References put().

145  {
146  return put(std::move(edp), "", semantic);
147  }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: SubRun.h:126
template<typename PROD >
PutHandle< PROD > art::SubRun::put ( std::unique_ptr< PROD > &&  edp,
RangedFragmentSemantic< Level::SubRun semantic 
)

Definition at line 151 of file SubRun.h.

References put().

153  {
154  return put(std::move(edp), "", std::move(semantic));
155  }
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
Definition: SubRun.h:126
template<typename PROD >
PutHandle< PROD > art::SubRun::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance,
FullSemantic< Level::SubRun  
)

Definition at line 159 of file SubRun.h.

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

162  {
163  assert(inserter_);
164  return inserter_->put(std::move(edp), instance, RangeSet::forSubRun(id()));
165  }
const std::string instance
static RangeSet forSubRun(SubRunID)
Definition: RangeSet.cc:57
std::optional< ProductInserter > inserter_
Definition: SubRun.h:116
template<typename PROD >
PutHandle< PROD > art::SubRun::put ( std::unique_ptr< PROD > &&  edp,
std::string const &  instance,
FragmentSemantic< Level::SubRun  
)

Definition at line 169 of file SubRun.h.

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

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

Definition at line 196 of file SubRun.h.

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

199  {
200  static_assert(
202  "\n\n"
203  "art error: A SubRun product put with the semantic 'SubRunFragment'\n"
204  " must be able to be aggregated. Please add the appropriate\n"
205  " void aggregate(T const&)\n"
206  " function to your class, or contact artists@fnal.gov.\n");
207  assert(inserter_);
208  if (semantic.rs.collapse().is_full_subRun()) {
209  throw Exception{errors::ProductPutFailure, "SubRun::put"}
210  << "\nCannot put a product corresponding to a full SubRun using\n"
211  << "art::subRunFragment(art::RangeSet&). Please use:\n"
212  << " art::fullSubRun()\n"
213  << "or contact artists@fnal.gov for assistance.\n";
214  }
215  if (!semantic.rs.is_valid()) {
216  throw Exception{errors::ProductPutFailure, "SubRun::put"}
217  << "\nCannot put a product with an invalid RangeSet.\n"
218  << "Please contact artists@fnal.gov.\n";
219  }
220  return inserter_->put(std::move(edp), instance, semantic.rs);
221  }
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: SubRun.h:116
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::SubRun::run ( ) const

Definition at line 31 of file SubRun.cc.

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

Referenced by lcvn::LArNuCVNZlibMaker::endSubRun().

32  {
33  return id().run();
34  }
RunNumber_t run() const
Definition: SubRunID.h:85
SubRunID id() const
Definition: SubRun.cc:25
RunNumber_t art::SubRun::subRun ( ) const

Definition at line 37 of file SubRun.cc.

References id(), and art::SubRunID::subRun().

Referenced by rwgt::ReweightAna::endSubRun(), and lcvn::LArNuCVNZlibMaker::endSubRun().

38  {
39  return id().subRun();
40  }
SubRunID id() const
Definition: SubRun.cc:25
SubRunNumber_t subRun() const
Definition: SubRunID.h:91

Friends And Related Function Documentation

friend class detail::Analyzer
friend

Definition at line 111 of file SubRun.h.

friend class detail::Filter
friend

Definition at line 112 of file SubRun.h.

friend class detail::Producer
friend

Definition at line 113 of file SubRun.h.

friend class ProducingService
friend

Definition at line 114 of file SubRun.h.

Member Data Documentation

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

Definition at line 116 of file SubRun.h.

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

RangeSet art::SubRun::rangeSet_
private

Definition at line 121 of file SubRun.h.

Referenced by put(), and SubRun().

Run const art::SubRun::run_
private

Definition at line 118 of file SubRun.h.

Referenced by getRun(), and SubRun().

SubRunPrincipal const& art::SubRun::subRunPrincipal_
private

Definition at line 117 of file SubRun.h.

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


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