LArSoft  v08_20_00
Liquid Argon Software toolkit - http://larsoft.org/
art Namespace Reference

Namespaces

 actions
 
 detail
 
 errors
 
 ExceptionDetail
 
 fp_detail
 
 friendlyname
 
 hlt
 
 input
 
 InputSourceFactory
 
 productstatus
 
 PtrRemapperDetail
 
 rootNames
 
 stats
 
 test
 

Classes

class  ActionTable
 
class  ActivityRegistry
 
class  AndHelper
 
class  Assns
 
class  Assns< L, R, void >
 
struct  AssnsNode
 
class  AutoInputSourceMutexSentryShutdown
 
class  AutoShutdownSharedResourcesRegistry
 
class  BasicOptionsHandler
 
class  BasicOutputOptionsHandler
 
class  BasicPostProcessor
 
class  BasicSourceOptionsHandler
 
class  BlockingPrescaler
 
class  BoolCache
 
class  BranchChildren
 
class  BranchDescription
 
struct  BranchKey
 
struct  CannotFillView
 
class  CatalogInterface
 
class  ClosedRangeSetHandler
 
class  ClosingCriteria
 
class  Compare_Run_SubRun_EventEntry
 
class  ComparePtrs
 
class  ComposedSelectorWrapper
 
class  const_AssnsIter
 
class  ConstPtrCache
 
class  ConsumesInfo
 
class  DatabaseConnection
 
class  DataFlow
 
class  DataViewImpl
 
class  debugging_allocator
 
class  DebugOptionsHandler
 
struct  DebugTasksValue
 
struct  DebugValue
 
class  DecrepitRelicInputSourceImplementation
 
class  DelayedReader
 
struct  DoMakePartner
 
struct  DoNotMakePartner
 
struct  DoNotSetPtr
 
struct  DoSetPtr
 
class  EDAnalyzer
 
class  EDFilter
 
class  EDProducer
 
class  EDProduct
 
class  EDProductGetter
 
class  EmptyEvent
 
class  EmptyEventTimestampPlugin
 
class  EndPathExecutor
 
class  EndPathFunctor
 
class  EndPathRunnerFunctor
 
class  Event
 
class  EventAuxiliary
 
class  EventID
 
class  EventIDFilter
 
class  EventIDMatcher
 
class  EventPrincipal
 
struct  EventProcessHistoryID
 
class  EventProcessor
 
class  EventRange
 
class  EventSelector
 
struct  EventSummary
 
class  ExecutionCounts
 
class  FileBlock
 
class  FileCatalog
 
class  FileCatalogItem
 
class  FileCatalogMetadata
 
class  FileCatalogMetadataPlugin
 
class  FileCatalogOptionsHandler
 
class  FileDumperOutput
 
struct  FileFormatVersion
 
class  FileIndex
 
class  FileProperties
 
class  FileStatsCollector
 
class  FileTransfer
 
class  FindMany
 
class  FindMany< ProdB, void >
 
class  FindManyP
 
class  FindManyP< ProdB, void >
 
class  FindOne
 
class  FindOne< ProdB, void >
 
class  FindOneP
 
class  FindOneP< ProdB, void >
 
class  FloatingPointControl
 
struct  FragmentSemantic
 
struct  FullSemantic
 
class  Globals
 
class  GlobalSignal
 
class  GlobalSignal< SRTYPE, ResultType(Args...)>
 
class  Granularity
 
class  Group
 
class  GroupQueryResult
 
class  GroupSelector
 
class  GroupSelectorRules
 
class  Handle
 
struct  has_fillView
 
struct  enable_if_function_exists_t< void(T::*)(std::vector< void const * > &), &T::fillView >
 
struct  has_mapped_type
 
struct  has_mapped_type< T, cet::enable_if_type_exists_t< typename T::mapped_type > >
 
struct  has_setPtr
 
struct  has_setPtr< cet::map_vector< T > >
 
struct  has_setPtr< std::deque< T, A > >
 
struct  has_setPtr< std::list< T, A > >
 
struct  has_setPtr< std::set< T, A > >
 
struct  has_setPtr< std::vector< bool, A > >
 
struct  has_setPtr< std::vector< T, A > >
 
struct  has_value_type
 
struct  has_value_type< T, cet::enable_if_type_exists_t< typename T::value_type > >
 
class  Hash
 
class  History
 
class  HLTGlobalStatus
 
class  HLTPathStatus
 
struct  IDNumber
 
struct  IDNumber< Level::Event >
 
struct  IDNumber< Level::Run >
 
struct  IDNumber< Level::SubRun >
 
class  InputFileCatalog
 
class  InputSource
 
struct  InputSourceDescription
 
class  InputSourceMutexSentry
 
class  InputTag
 
struct  key_traits
 
struct  key_traits< std::pair< U, V > >
 
struct  key_traits< std::string >
 
class  LocalSignal
 
class  LocalSignal< STYPE, ResultType(Args...)>
 
class  MallocOptionSetter
 
struct  MallocOpts
 
class  MatchAllSelector
 
struct  MaybeFillView
 
struct  MaybeFillView< cet::map_vector< T > >
 
struct  MaybeFillView< std::deque< T, A > >
 
struct  MaybeFillView< std::list< T, A > >
 
struct  MaybeFillView< std::set< T, A > >
 
struct  MaybeFillView< std::vector< bool, A > >
 
struct  MaybeFillView< std::vector< T, A > >
 
struct  MaybeFillView< T, std::enable_if_t< has_fillView< T >::value > >
 
class  MaybeIncrementCounts
 
class  MaybeIncrementCounts< Level::Event, T >
 
class  MemoryTracker
 
class  MFStatusUpdater
 
struct  MinimalToolConfig
 
class  MixFilter
 
class  MixFilterTable
 
class  MixHelper
 
class  MixIOPolicy
 
class  MixOp
 
class  MixOpBase
 
class  Modifier
 
class  ModuleBase
 
class  ModuleContext
 
class  ModuleDescription
 
struct  ModuleInPathSummary
 
class  ModuleLabelSelector
 
class  NoDelayedReader
 
class  NotHelper
 
class  Observer
 
class  OpenRangeSetHandler
 
class  OptionsHandler
 
class  OrHelper
 
class  OutputFileInfo
 
class  OutputHandle
 
class  OutputModule
 
struct  OutputModuleDescription
 
class  OutputWorker
 
struct  ParameterSetBlob
 
class  Parentage
 
class  Path
 
class  PathContext
 
class  PathManager
 
class  PathsDoneFunctor
 
class  PathsInfo
 
struct  PathSummary
 
class  PerScheduleContainer
 
class  PostCloseFileRenamer
 
class  Prescaler
 
struct  prevent_recursion
 
struct  prevent_recursion< Sampled< T > >
 
class  Principal
 
class  PrincipalBase
 
class  ProcessAllEventsFunctor
 
class  ProcessConfiguration
 
class  ProcessHistory
 
class  ProcessingFrame
 
class  ProcessingOptionsHandler
 
class  ProcessNameSelector
 
class  ProcessTag
 
class  ProdToProdMapBuilder
 
class  ProducerTable
 
class  ProducingService
 
class  ProducingServiceSignals
 
class  ProductID
 
class  ProductInfo
 
class  ProductInstanceNameSelector
 
class  ProductProvenance
 
struct  ProductRegistry
 
class  ProductRegistryHelper
 
struct  productSize
 
struct  productSize< cet::map_vector< E >, false >
 
struct  productSize< PtrVector< E >, false >
 
struct  productSize< std::deque< E >, false >
 
struct  productSize< std::list< E >, false >
 
struct  productSize< std::set< E >, false >
 
struct  productSize< std::vector< E >, false >
 
struct  productSize< T, false >
 
struct  productSize< T, true >
 
struct  ProductTable
 
class  ProductTables
 
class  ProductToken
 
class  Provenance
 
class  ProvenanceCheckerOutput
 
class  ProvenanceDumper
 
class  ProvenanceDumper< DETAIL, cet::enable_if_type_exists_t< typename DETAIL::Config > >
 
struct  ProvenanceDumperConfig
 
struct  ProvenanceDumperConfig< DETAIL, cet::enable_if_type_exists_t< typename DETAIL::Config > >
 
class  Ptr
 
class  PtrMaker
 
class  PtrRemapper
 
class  PtrVector
 
class  PtrVectorBase
 
class  RandomNumberGenerator
 
class  RandomNumberSaver
 
struct  RangedFragmentSemantic
 
class  RangeSet
 
class  RangeSetHandler
 
class  ReadAndProcessEventFunctor
 
class  RefCore
 
class  ReplicatedAnalyzer
 
class  ReplicatedFilter
 
class  ReplicatedProducer
 
class  Results
 
class  ResultsAuxiliary
 
class  ResultsPrincipal
 
class  ResultsProducer
 
class  RNGsnapshot
 
class  RPManager
 
struct  RPParams
 
class  RPWorker
 
class  RPWorkerT
 
class  Run
 
class  RunAuxiliary
 
class  RunID
 
class  RunPrincipal
 
class  Sampled
 
struct  SampledEventInfo
 
struct  SampledInfo
 
class  Schedule
 
class  ScheduleContext
 
class  ScheduleID
 
class  ScheduleIteration
 
class  Scheduler
 
class  Selector
 
class  SelectorBase
 
class  ServiceHandle
 
class  ServiceRegistry
 
class  ServicesManager
 
class  ServiceTable
 
class  SharedAnalyzer
 
class  SharedFilter
 
class  SharedProducer
 
class  SharedResourcesRegistry
 
class  SortInvalidFirst
 
class  Source
 
struct  Source_generator
 
struct  Source_wantFileServices
 
class  SourceHelper
 
class  SubRun
 
class  SubRunAuxiliary
 
class  SubRunID
 
class  SubRunPrincipal
 
class  Suffixes
 
class  SummedValue
 
struct  SupportsView
 
struct  value
 
struct  SupportsView< T, std::enable_if_t< has_mapped_type< T >::value > >
 
class  thread_safe_registry_via_id
 
class  Timestamp
 
class  TimeTracker
 
class  ToolConfigTable
 
class  Tracer
 
class  Transient
 
class  TriggerNamesService
 
struct  TriggerReport
 
class  TriggerResultInserter
 
class  TriggerResults
 
class  TrivialFileDelivery
 
class  TrivialFileTransfer
 
struct  tuple_element
 
struct  tuple_element< I, AssnsNode< L, R, D > >
 
class  TypeID
 
struct  TypeIDCleanup
 
class  TypeLabel
 
class  UpdateOutputCallbacks
 
class  ValidHandle
 
class  View
 
class  ViewToken
 
class  Worker
 
class  WorkerInPath
 
class  WorkerInPathDoneFunctor
 
struct  WorkerParams
 
struct  WorkerSummary
 
class  WorkerT
 
struct  WrappedTypeID
 
class  Wrapper
 

Typedefs

using OptionsHandlers = std::vector< std::unique_ptr< art::OptionsHandler >>
 
using ProductListUpdatedCallback = std::function< void(ProductTables const &)>
 
using module_label_t = std::string
 
using WorkerMap = std::map< std::string, std::unique_ptr< Worker >>
 
using MixOpList = std::vector< std::unique_ptr< MixOpBase >>
 
template<typename PROD , typename OPROD = PROD>
using MixFunc = std::function< bool(std::vector< PROD const * > const &, OPROD &, PtrRemapper const &)>
 
using SpecProdList = std::vector< std::shared_ptr< EDProduct const >>
 
using EventIDIndex = std::map< FileIndex::EntryNumber_t, EventID >
 
using SubRunIDIndex = std::map< SubRunID, FileIndex::EntryNumber_t >
 
using RunIDIndex = std::map< SubRunID, FileIndex::EntryNumber_t >
 
using EventIDSequence = std::vector< EventID >
 
using EntryNumberSequence = std::vector< FileIndex::EntryNumber_t >
 
using EventAuxiliarySequence = std::vector< EventAuxiliary >
 
using DataFlowDumper = ProvenanceDumper< DataFlow >
 
using CountingStatistics = ExecutionCounts< stats::Visited, stats::Run, stats::Passed, stats::Failed, stats::ExceptionThrown >
 
using ProcessConfigurationRegistry = thread_safe_registry_via_id< ProcessConfigurationID, ProcessConfiguration >
 
using ProcessConfigurationMap = ProcessConfigurationRegistry::collection_type
 
using ProcessHistoryRegistry = thread_safe_registry_via_id< ProcessHistoryID, ProcessHistory >
 
using Selections = ProductDescriptionsByID
 
using SelectionsArray = std::array< Selections, NumBranchTypes >
 
template<typename T >
using tool_return_type = typename detail::tool_type< T >::return_type
 
template<std::size_t I, typename Node >
using tuple_element_t = typename tuple_element< I, Node >::type
 
using product_typeids_t = std::map< product_metatype, TypeID >
 
using ProductDescriptions = std::vector< BranchDescription >
 
using ProductDescriptionsByID = std::map< ProductID, BranchDescription >
 
typedef fhicl::ParameterSetID EventSelectionID
 
typedef std::vector< EventSelectionIDEventSelectionIDVector
 
template<Level L>
using IDNumber_t = typename IDNumber< L >::type
 
using EventNumber_t = IDNumber_t< Level::Event >
 
using SubRunNumber_t = IDNumber_t< Level::SubRun >
 
using RunNumber_t = IDNumber_t< Level::Run >
 
typedef std::map< fhicl::ParameterSetID, ParameterSetBlobParameterSetMap
 
typedef Hash< ParentageTypeParentageID
 
typedef thread_safe_registry_via_id< ParentageID, ParentageParentageRegistry
 
using ProcessConfigurations = std::vector< ProcessConfiguration >
 
typedef Hash< ProcessConfigurationTypeProcessConfigurationID
 
typedef std::map< ProcessHistoryID const, ProcessHistoryProcessHistoryMap
 
typedef Hash< ProcessHistoryTypeProcessHistoryID
 
typedef std::map< BranchKey, BranchDescriptionProductList
 
using ProductProvenances = std::vector< ProductProvenance >
 
using ProductStatus = unsigned char
 
typedef std::string ReleaseVersion
 
using SampledRunInfo = std::map< std::string, SampledInfo< RunID >>
 
using SampledSubRunInfo = std::map< std::string, SampledInfo< SubRunID >>
 
using TimeValue_t = std::uint64_t
 
using ProcessLookup = std::map< std::string, std::vector< ProductID >>
 
using ViewLookup_t = ProcessLookup
 
using TypeLabelLookup_t = std::map< TypeLabel, BranchDescription >
 
using ProductLookup_t = std::map< std::string, ProcessLookup >
 
using AvailableProducts_t = std::unordered_set< ProductID, ProductID::Hash >
 
using Exception = cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate >
 

Enumerations

enum  OutputFileStatus { OutputFileStatus::Open, OutputFileStatus::Switching, OutputFileStatus::Closed }
 
enum  FileCatalogStatus { FileCatalogStatus::SUCCESS, FileCatalogStatus::NO_MORE_FILES, FileCatalogStatus::DELIVERY_ERROR, FileCatalogStatus::TRANSFER_ERROR }
 
enum  BranchActionType { BranchActionBegin, BranchActionEnd, BranchActionProcess }
 
enum  FileDisposition {
  FileDisposition::PENDING = -1, FileDisposition::TRANSFERRED, FileDisposition::CONSUMED, FileDisposition::SKIPPED,
  FileDisposition::INCOMPLETE
}
 
enum  ServiceScope { ServiceScope::LEGACY, ServiceScope::GLOBAL, ServiceScope::PER_SCHEDULE }
 
enum  ModuleType {
  ModuleType::non_art, ModuleType::producer, ModuleType::filter, ModuleType::analyzer,
  ModuleType::output_module, ModuleType::producing_service
}
 
enum  ModuleThreadingType { ModuleThreadingType::illegal, ModuleThreadingType::legacy, ModuleThreadingType::shared, ModuleThreadingType::replicated }
 
enum  suffix_type : std::size_t {
  suffix_type::module, suffix_type::plugin, suffix_type::service, suffix_type::source,
  suffix_type::tool, suffix_type::mfPlugin, suffix_type::mfStatsPlugin
}
 
enum  Transition {
  Transition::BeginJob, Transition::EndJob, Transition::BeginFile, Transition::EndFile,
  Transition::BeginRun, Transition::EndRun, Transition::BeginSubRun, Transition::EndSubRun,
  Transition::BeginEvent, Transition::EndEvent
}
 
enum  Verbosity { Silent = 0, Concise = 2, Normal = 5, Detailed = 10 }
 
enum  Direction : int { Direction::Forward = 1, Direction::Reverse = -1 }
 
enum  BranchType {
  InEvent, InSubRun, InRun, InResults,
  NumBranchTypes
}
 
enum  HashedTypes {
  ModuleDescriptionType, ParameterSetType, ProcessHistoryType, ProcessConfigurationType,
  EntryDescriptionType, ParentageType
}
 
enum  Persistable { Persistable::Yes, Persistable::No }
 
enum  Level {
  Level::Job = 0, Level::InputFile, Level::Run, Level::SubRun,
  Level::Event, Level::NumNestingLevels, Level::ReadyToAdvance
}
 
enum  product_metatype {
  product_metatype::Normal, product_metatype::LeftRight = Normal, product_metatype::RightLeft, product_metatype::LeftRightData,
  product_metatype::RightLeftData
}
 

Functions

bool find_config (std::string const &filename, std::string const &search_path_spec, std::string &full_path)
 
template<typename T , typename... Args>
void add_opt (T &t, Args &&...args)
 
int run_art (int argc, char **argv, bpo::options_description &in_desc, cet::filepath_maker &lookupPolicy, OptionsHandlers &&handlers)
 
int run_art_string_config (string const &config_string)
 
int run_art_common_ (fhicl::ParameterSet const &main_pset, std::map< std::string, detail::ModuleKeyAndType > const &enabled_modules)
 
std::ostream & operator<< (std::ostream &os, const GroupSelector &gs)
 
 MFSU_0_ARG_UPDATER_DEFN (PostBeginJob)
 
 MFSU_0_ARG_UPDATER_DEFN (PostEndJob)
 
 MFSU_1_ARG_UPDATER_DEFN (PostSourceConstruction)
 
 MFSU_1_ARG_UPDATER_DEFN (PreSourceEvent)
 
 MFSU_2_ARG_UPDATER_DEFN (PostSourceEvent)
 
 MFSU_0_ARG_UPDATER_DEFN (PreSourceSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostSourceSubRun)
 
 MFSU_0_ARG_UPDATER_DEFN (PreSourceRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostSourceRun)
 
 MFSU_0_ARG_UPDATER_DEFN (PreOpenFile)
 
 MFSU_1_ARG_UPDATER_DEFN (PostOpenFile)
 
 MFSU_0_ARG_UPDATER_DEFN (PreCloseFile)
 
 MFSU_0_ARG_UPDATER_DEFN (PostCloseFile)
 
 MFSU_2_ARG_UPDATER_DEFN (PreProcessEvent)
 
 MFSU_2_ARG_UPDATER_DEFN (PostProcessEvent)
 
 MFSU_1_ARG_UPDATER_DEFN (PreBeginRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostBeginRun)
 
 MFSU_2_ARG_UPDATER_DEFN (PreEndRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostEndRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PreBeginSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostBeginSubRun)
 
 MFSU_2_ARG_UPDATER_DEFN (PreEndSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostEndSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PreProcessPath)
 
 MFSU_2_ARG_UPDATER_DEFN (PostProcessPath)
 
 MFSU_1_ARG_UPDATER_DEFN (PrePathBeginRun)
 
 MFSU_2_ARG_UPDATER_DEFN (PostPathBeginRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PrePathEndRun)
 
 MFSU_2_ARG_UPDATER_DEFN (PostPathEndRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PrePathBeginSubRun)
 
 MFSU_2_ARG_UPDATER_DEFN (PostPathBeginSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PrePathEndSubRun)
 
 MFSU_2_ARG_UPDATER_DEFN (PostPathEndSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleConstruction)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleConstruction)
 
 MFSU_2_ARG_UPDATER_DEFN (PostBeginJobWorkers)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleBeginJob)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleBeginJob)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleEndJob)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleEndJob)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModule)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModule)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleBeginRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleBeginRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleEndRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleEndRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleBeginSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleBeginSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PreModuleEndSubRun)
 
 MFSU_1_ARG_UPDATER_DEFN (PostModuleEndSubRun)
 
std::ostream & operator<< (std::ostream &os, Granularity const &b)
 
std::ostream & operator<< (std::ostream &os, OutputFileStatus const ofs)
 
template<typename UserConfig , typename ImplicitConfig >
std::ostream & operator<< (std::ostream &os, ProducerTable< UserConfig, ImplicitConfig > const &t)
 
template<>
void EventProcessor::begin< Level::Job > ()
 
template<>
void EventProcessor::begin< Level::InputFile > ()
 
template<>
void EventProcessor::begin< Level::Run > ()
 
template<>
void EventProcessor::begin< Level::SubRun > ()
 
template<>
void EventProcessor::finalize< Level::SubRun > ()
 
template<>
void EventProcessor::finalize< Level::Run > ()
 
template<>
void EventProcessor::finalize< Level::InputFile > ()
 
template<>
void EventProcessor::finalize< Level::Job > ()
 
template<>
void EventProcessor::finalizeContainingLevels< Level::SubRun > ()
 
template<>
void EventProcessor::finalizeContainingLevels< Level::Event > ()
 
template<>
void EventProcessor::recordOutputModuleClosureRequests< Level::Run > ()
 
template<>
void EventProcessor::recordOutputModuleClosureRequests< Level::SubRun > ()
 
template<>
void EventProcessor::recordOutputModuleClosureRequests< Level::Event > ()
 
ostream & operator<< (ostream &os, FileProperties const &fp)
 
std::ostream & operator<< (std::ostream &, MixHelper::Mode)
 
RangeSet rangeSetFor (RunPrincipal const &rp)
 
RangeSet rangeSetFor (SubRunPrincipal const &srp)
 
template<typename T , typename P >
std::enable_if_t<!detail::range_sets_supported(P::branch_type)> put_product_in_principal (std::unique_ptr< T > &&product, P &principal, std::string const &module_label, std::string const &instance_name={})
 
template<typename T , typename P >
std::enable_if_t< detail::range_sets_supported(P::branch_type)> put_product_in_principal (std::unique_ptr< T > &&product, P &principal, std::string const &module_label, std::string const &instance_name={}, RangeSet &&rs=RangeSet::invalid())
 
static void markAncestors (ProductProvenance const &iInfo, EventPrincipal &e, std::map< ProductID, bool > &oMap, std::set< ProductID > &oMapperMissing)
 
template<typename PROD >
std::ostream & operator<< (std::ostream &os, Handle< PROD > const &h)
 
template<class T >
void swap (Handle< T > &a, Handle< T > &b)
 
template<class T >
void swap (ValidHandle< T > &a, ValidHandle< T > &b)
 
template<class T >
void convert_handle (GroupQueryResult const &, Handle< T > &)
 
template<class T >
std::enable_if_t< detail::is_handle< T >::value, RangeSet const & > range_of_validity (T const &h)
 
template<class T , class U >
std::enable_if_t< detail::are_handles< T, U >::value, bool > same_ranges (T const &a, U const &b)
 
template<class T , class U >
std::enable_if_t< detail::are_handles< T, U >::value, bool > disjoint_ranges (T const &a, U const &b)
 
template<class T , class U >
std::enable_if_t< detail::are_handles< T, U >::value, bool > overlapping_ranges (T const &a, U const &b)
 
void swap (OutputHandle &a, OutputHandle &b)
 
bool operator< (ProductInfo const &a, ProductInfo const &b)
 
ostream & operator<< (ostream &os, ProductInfo::ConsumableType const ct)
 
ostream & operator<< (ostream &os, ProductInfo const &info)
 
bool operator== (Provenance const &a, Provenance const &b)
 
ostream & operator<< (ostream &os, Provenance const &p)
 
template<class A , class B >
std::enable_if_t< std::is_base_of_v< art::SelectorBase, A > &&std::is_base_of_v< art::SelectorBase, B >, art::AndHelper< A, B > > operator&& (A const &a, B const &b)
 
template<class A , class B >
std::enable_if_t< std::is_base_of_v< art::SelectorBase, A > &&std::is_base_of_v< art::SelectorBase, B >, art::OrHelper< A, B > > operator|| (A const &a, B const &b)
 
template<class A >
std::enable_if_t< std::is_base_of_v< art::SelectorBase, A >, art::NotHelper< A > > operator! (A const &a)
 
template<class T , class U >
bool same_ranges (SummedValue< T > const &a, SummedValue< U > const &b)
 
template<class T , class U >
bool disjoint_ranges (SummedValue< T > const &a, SummedValue< U > const &b)
 
template<class T , class U >
bool overlapping_ranges (SummedValue< T > const &a, SummedValue< U > const &b)
 
std::string translateFileDeliveryStatus (FileDeliveryStatus stat)
 
std::string translateFileDisposition (FileDisposition fd)
 
std::string translateFileTransferStatus (FileTransferStatus stat)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, ServiceTable< T > const &t)
 
template<typename CONTAINER >
std::enable_if_t< detail::has_two_arg_insert< CONTAINER >::value > concatContainers (CONTAINER &out, CONTAINER const &in)
 
template<typename CONTAINER >
std::enable_if_t< detail::has_three_arg_insert< CONTAINER >::value > concatContainers (CONTAINER &out, CONTAINER const &in)
 
template<typename COLLECTION >
void flattenCollections (std::vector< COLLECTION const * > const &in, COLLECTION &out)
 
template<typename COLLECTION , typename OFFSETS >
void flattenCollections (std::vector< COLLECTION const * > const &in, COLLECTION &out, OFFSETS &offsets)
 
template<typename T >
void flattenCollections (std::vector< PtrVector< T > const * > const &in, PtrVector< T > &out)
 
template<typename T , typename OFFSETS >
void flattenCollections (std::vector< PtrVector< T > const * > const &in, PtrVector< T > &out, OFFSETS &offsets)
 
template<class X , class Y >
bool operator== (debugging_allocator< X > const &, debugging_allocator< Y > const &) throw ()
 
template<class X , class Y >
bool operator!= (debugging_allocator< X > const &, debugging_allocator< Y > const &) throw ()
 
bool operator< (EventProcessHistoryID const &lh, EventProcessHistoryID const &rh)
 
std::ostream & operator<< (std::ostream &os, ModuleDescription const &p)
 
bool is_modifier (ModuleType const mt)
 
bool is_observer (ModuleType const mt)
 
std::string to_string (ModuleType const mt)
 
void ensureTable (fhicl::intermediate_table &table, std::string const &fhicl_spec)
 
void printArtException (cet::exception const &e, char const *prog)
 
void printBadAllocException (char const *prog)
 
void printStdException (std::exception const &e, char const *prog)
 
void printUnknownException (char const *prog)
 
template<typename T >
std::enable_if_t< std::is_class< T >::value, tool_return_type< T > > make_tool (fhicl::ParameterSet const &pset)
 
template<typename T >
std::enable_if_t< std::is_function< T >::value, tool_return_type< T > > make_tool (fhicl::ParameterSet const &pset, std::string const &function_tool_type)
 
template<typename T , typename TableConfig >
tool_return_type< T > make_tool (TableConfig const &tc, std::string const &function_tool_type)
 
std::ostream & operator<< (std::ostream &ost, const MallocOpts &opts)
 
std::string parent_path (std::string const &path)
 
std::ostream & operator<< (std::ostream &os, suffix_type const st)
 
template<typename T1 , typename T2 >
std::enable_if_t< std::is_same< T1, T2 >::value||std::is_base_of< T1, T2 >::value||std::is_base_of< T2, T1 >::value, bool > pointersEqual (T1 *t1, T2 *t2)
 
template<typename T1 , typename T2 >
std::enable_if_t<!std::is_same< T1, T2 >::value &&!std::is_base_of< T1, T2 >::value &&!std::is_base_of< T2, T1 >::value, bool > pointersEqual (T1 *, T2 *)
 
constexpr auto fullRun ()
 
constexpr auto fullSubRun ()
 
constexpr auto runFragment ()
 
constexpr auto subRunFragment ()
 
auto runFragment (RangeSet const &rs)
 
auto subRunFragment (RangeSet const &rs)
 
bool is_glob (std::string const &pattern)
 
std::string glob2reg (std::string pattern)
 
std::vector< std::vector< std::string >::const_iteratorregexMatch (std::vector< std::string > const &strings, std::regex const &regexp)
 
std::vector< std::vector< std::string >::const_iteratorregexMatch (std::vector< std::string > const &strings, std::string const &pattern)
 
bool operator!= (ScheduleID const left, ScheduleID const right) noexcept
 
bool operator<= (ScheduleID const left, ScheduleID const right) noexcept
 
bool operator> (ScheduleID const left, ScheduleID const right) noexcept
 
bool operator>= (ScheduleID const left, ScheduleID const right) noexcept
 
ostream & operator<< (ostream &os, ScheduleID const sid)
 
size_t tbb_hasher (ScheduleID const sid)
 
std::string unique_filename (std::string stem, std::string extension=".root")
 
void setupSignals (bool want_sigint_enabled)
 
std::string const & getReleaseVersion ()
 
template<typename A , typename B , typename D , typename F >
void for_each_group (art::Assns< A, B, D > const &assns, F func)
 Helper functions to access associations in order. More...
 
template<typename A , typename B , typename D , typename F >
void for_each_group_with_left (art::Assns< A, B, D > const &assns, F func)
 
template<typename A , typename B , typename D , typename F >
void for_each_pair (art::Assns< A, B, D > const &assns, F func)
 
template<Direction Dir>
constexpr int signed_one ()
 
template<Direction Dir>
constexpr auto index_for_dereferencing (std::size_t const i)
 
template<typename L , typename R , typename D , Direction Dir>
constexpr auto const & left (const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
 
template<typename L , typename R , typename D , Direction Dir>
constexpr auto const & right (const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
 
template<typename T , typename L , typename R , typename D >
auto const & get (AssnsNode< L, R, D > const &r)
 
template<typename Collection >
void getElementAddresses (Collection const &coll, std::type_info const &iToType, std::vector< unsigned long > const &indices, std::vector< void const * > &oPtr)
 
template<typename T >
void getElementAddresses (cet::map_vector< T > const &obj, std::type_info const &iToType, std::vector< unsigned long > const &indices, std::vector< void const * > &oPtr)
 
ostream & operator<< (ostream &ost, const HLTGlobalStatus &hlt)
 
std::ostream & operator<< (std::ostream &ost, HLTGlobalStatus const &hlt)
 
template<typename T , typename U >
std::enable_if_t< std::is_same_v< T, U >||std::is_base_of_v< T, U >||std::is_base_of_v< U, T >, bool > operator== (Ptr< T > const &lhs, Ptr< U > const &rhs)
 
template<typename T , typename U >
std::enable_if_t< std::is_same_v< T, U >||std::is_base_of_v< T, U >||std::is_base_of_v< U, T >, bool > operator!= (Ptr< T > const &lhs, Ptr< U > const &rhs)
 
template<typename T , typename U >
std::enable_if_t< std::is_same_v< T, U >||std::is_base_of_v< T, U >||std::is_base_of_v< U, T >, bool > operator< (Ptr< T > const &lhs, Ptr< U > const &rhs)
 
template<typename T , typename H >
void fill_ptr_vector (std::vector< Ptr< T >> &ptrs, H const &h)
 
template<typename T , typename H >
void fill_ptr_list (std::list< Ptr< T >> &ptrs, H const &h)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, Ptr< T > const &p)
 
template<typename T >
void swap (PtrVector< T > &, PtrVector< T > &)
 
bool operator== (RefCore const &lhs, RefCore const &rhs)
 
bool operator!= (RefCore const &lhs, RefCore const &rhs)
 
bool operator< (RefCore const &lhs, RefCore const &rhs)
 
void swap (RefCore &lhs, RefCore &rhs)
 
auto sampled_from (std::string process_name)
 
template<class COLLECTION >
void setPtr (COLLECTION const &coll, std::type_info const &iToType, unsigned long iIndex, void const *&oPtr)
 
template<typename T >
void setPtr (cet::map_vector< T > const &obj, std::type_info const &iToType, unsigned long iIndex, void const *&oPtr)
 
void swap (TriggerResults &lhs, TriggerResults &rhs)
 
bool operator< (BranchDescription const &a, BranchDescription const &b)
 
bool combinable (BranchDescription const &a, BranchDescription const &b)
 
bool operator== (BranchDescription const &a, BranchDescription const &b)
 
std::ostream & operator<< (std::ostream &os, BranchDescription const &p)
 
std::ostream & operator<< (std::ostream &os, BranchKey const &bk)
 
bool operator< (BranchKey const &a, BranchKey const &b)
 
bool operator== (BranchKey const &a, BranchKey const &b)
 
bool operator!= (BranchKey const &a, BranchKey const &b)
 
std::string const & BranchTypeToString (BranchType const bt)
 
std::string const & BranchTypeToProductTreeName (BranchType const bt)
 
std::string const & BranchTypeToMetaDataTreeName (BranchType const bt)
 
std::string const & BranchTypeToAuxiliaryBranchName (BranchType const bt)
 
std::string const & productProvenanceBranchName (BranchType const bt)
 
std::string const & BranchTypeToMajorIndexName (BranchType const bt)
 
std::string const & BranchTypeToMinorIndexName (BranchType const bt)
 
std::ostream & operator<< (std::ostream &os, BranchType const branchType)
 
template<typename F >
void for_each_branch_type (F f)
 
std::string canonicalProductName (std::string const &friendlyClassName, std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName)
 
ostream & operator<< (ostream &os, const EventAuxiliary &p)
 
std::ostream & operator<< (std::ostream &os, EventID const &iID)
 
ostream & operator<< (ostream &os, EventRange const &r)
 
bool operator== (FileFormatVersion const &a, FileFormatVersion const &b)
 
bool operator!= (FileFormatVersion const &a, FileFormatVersion const &b)
 
std::ostream & operator<< (std::ostream &os, FileFormatVersion const &ff)
 
bool operator< (FileIndex::Element const &lh, FileIndex::Element const &rh)
 
bool operator> (FileIndex::Element const &lh, FileIndex::Element const &rh)
 
bool operator>= (FileIndex::Element const &lh, FileIndex::Element const &rh)
 
bool operator<= (FileIndex::Element const &lh, FileIndex::Element const &rh)
 
bool operator== (FileIndex::Element const &lh, FileIndex::Element const &rh)
 
bool operator!= (FileIndex::Element const &lh, FileIndex::Element const &rh)
 
ostream & operator<< (ostream &os, FileIndex::Element const &el)
 
ostream & operator<< (ostream &os, FileIndex const &fileIndex)
 
template<int I>
void swap (Hash< I > &a, Hash< I > &b)
 
template<int I>
std::ostream & operator<< (std::ostream &os, Hash< I > const &h)
 
template<Level L = Level::Event>
constexpr bool is_valid (IDNumber_t< L > const id) noexcept
 
std::ostream & operator<< (std::ostream &os, ParameterSetBlob const &blob)
 
ostream & operator<< (ostream &os, Parentage const &)
 
bool operator== (Parentage const &a, Parentage const &b)
 
bool operator!= (Parentage const &a, Parentage const &b)
 
bool operator!= (ProcessConfiguration const &a, ProcessConfiguration const &b)
 
bool operator< (ProcessConfiguration const &a, ProcessConfiguration const &b)
 
bool operator== (ProcessConfiguration const &a, ProcessConfiguration const &b)
 
std::ostream & operator<< (std::ostream &os, ProcessConfiguration const &pc)
 
void swap (ProcessHistory &a, ProcessHistory &b)
 
bool operator== (ProcessHistory const &a, ProcessHistory const &b)
 
bool operator!= (ProcessHistory const &a, ProcessHistory const &b)
 
bool isAncestor (ProcessHistory const &a, ProcessHistory const &b)
 
bool isDescendant (ProcessHistory const &a, ProcessHistory const &b)
 
ostream & operator<< (ostream &ost, ProcessHistory const &ph)
 
std::ostream & operator<< (std::ostream &os, ProductID const id)
 
auto make_product_descriptions (ProductList const &productList)
 
ostream & operator<< (ostream &os, ProductProvenance const &p)
 
bool operator== (ProductProvenance const &a, ProductProvenance const &b) noexcept
 
bool operator!= (ProductProvenance const &a, ProductProvenance const &b) noexcept
 
bool operator< (ProductProvenance const &a, ProductProvenance const &b) noexcept
 
bool operator== (RangeSet const &l, RangeSet const &r)
 
bool same_ranges (RangeSet const &l, RangeSet const &r)
 
bool disjoint_ranges (RangeSet const &l, RangeSet const &r)
 
void throw_if_not_disjoint (RunNumber_t const rn, EventRange const &left, EventRange const &right) noexcept(false)
 
bool overlapping_ranges (RangeSet const &l, RangeSet const &r)
 
ostream & operator<< (ostream &os, RangeSet const &rs)
 
ostream & operator<< (ostream &os, const RunAuxiliary &p)
 
std::ostream & operator<< (std::ostream &os, art::RunID const &iID)
 
std::ostream & operator<< (std::ostream &os, SampledEventInfo const &eventInfo)
 
ostream & operator<< (ostream &os, SubRunAuxiliary const &p)
 
std::ostream & operator<< (std::ostream &os, SubRunID const &iID)
 
std::string to_iso_string_assuming_unix_epoch (Timestamp const &ts)
 
bool operator< (TypeLabel const &a, TypeLabel const &b)
 
std::ostream & operator<< (std::ostream &os, TypeLabel const &tl)
 
template<typename WANTED_POINTER , typename InputIterator >
WANTED_POINTER ensurePointer (InputIterator it)
 
bool operator!= (InputTag const &left, InputTag const &right)
 
void decode (std::any const &a, InputTag &tag)
 
ostream & operator<< (ostream &os, InputTag const &tag)
 
constexpr auto underlying_value (Level const l) noexcept
 
constexpr auto highest_level () noexcept
 
constexpr auto level_up (Level const l) noexcept
 
constexpr auto most_deeply_nested_level () noexcept
 
constexpr auto level_down (Level const l) noexcept
 
constexpr bool is_above_most_deeply_nested_level (Level const l) noexcept
 
constexpr bool is_most_deeply_nested_level (Level const l) noexcept
 
constexpr bool is_highest_level (Level const l) noexcept
 
constexpr bool is_level_contained_by (Level const l1, Level const l2) noexcept
 
std::ostream & operator<< (std::ostream &os, Level const l)
 
bool operator> (TypeID const &a, TypeID const &b)
 
bool operator!= (TypeID const &a, TypeID const &b)
 
void swap (TypeID &left, TypeID &right)
 
ostream & operator<< (ostream &os, TypeID const &tid)
 
string name_of_template_arg (string const &template_instance, size_t desired_arg)
 
string name_of_assns_partner (string assns_type_name)
 
string name_of_assns_base (string assns_type_name)
 
string name_of_unwrapped_product (string const &wrapped_name)
 
bool is_instantiation_of (std::string const &type_name, std::string const &template_name)
 
bool is_instantiation_of (TypeID const &tid, std::string const &template_name)
 
bool is_assns (std::string const &type_name)
 
bool is_assns (TypeID const &tid)
 
std::string uniform_type_name (std::type_info const &tid)
 
std::string uniform_type_name (std::string name)
 
std::string wrappedClassName (std::string const &className)
 
std::string const & getCanvasReleaseVersion ()
 

Variables

AutoInputSourceMutexSentryShutdown autoInputSourceMutexSentryShutdown
 
template<typename T >
detail::SharedResource_t SharedResource {typeid(T).name(), true}
 
std::atomic< int > shutdown_flag {0}
 
DebugValue debugit
 
DebugTasksValue debugTasks
 
struct art::TypeIDCleanup typeIDCleaner_
 

Detailed Description

An art event visitor component takes a reference to an art::Event object. Components with this interface will typically implement a sink or a source WCT interface.

Note, this is a Wire Cell Toolkit Interface class which depends on external types so is not kept in wire-cell-iface. See that package for in-toolkit WCT interfaces.

https://github.com/WireCell/wire-cell-iface/tree/master/inc/WireCellIface

A wcls::MainTool is a main entry point to the WCT from LS

See the WCLS_tool as the likely only implementation.

Fixme: maybe need to pick a less generic name for this tool?

Typedef Documentation

using art::AvailableProducts_t = typedef std::unordered_set<ProductID, ProductID::Hash>

Definition at line 24 of file type_aliases.h.

Definition at line 26 of file DataFlowDumper_module.cc.

using art::EntryNumberSequence = typedef std::vector<FileIndex::EntryNumber_t>

Definition at line 27 of file MixTypes.h.

using art::EventAuxiliarySequence = typedef std::vector<EventAuxiliary>

Definition at line 28 of file MixTypes.h.

Definition at line 23 of file MixTypes.h.

using art::EventIDSequence = typedef std::vector<EventID>

Definition at line 26 of file MixTypes.h.

Definition at line 118 of file IDNumber.h.

Definition at line 18 of file EventSelectionID.h.

using art::Exception = typedef cet::coded_exception<errors::ErrorCodes, ExceptionDetail::translate>

Definition at line 66 of file Exception.h.

template<Level L>
using art::IDNumber_t = typedef typename IDNumber<L>::type

Definition at line 109 of file IDNumber.h.

template<typename PROD , typename OPROD = PROD>
using art::MixFunc = typedef std::function< bool(std::vector<PROD const*> const&, OPROD&, PtrRemapper const&)>

Definition at line 19 of file MixTypes.h.

using art::MixOpList = typedef std::vector<std::unique_ptr<MixOpBase>>

Definition at line 22 of file MixIOPolicy.h.

using art::module_label_t = typedef std::string

Definition at line 29 of file WorkerInPath.h.

using art::OptionsHandlers = typedef std::vector<std::unique_ptr<art::OptionsHandler>>

Definition at line 10 of file OptionsHandlers.h.

Definition at line 8 of file ParameterSetMap.h.

Definition at line 8 of file ParentageID.h.

using art::ProcessConfigurations = typedef std::vector<ProcessConfiguration>

Definition at line 49 of file ProcessConfiguration.h.

Definition at line 8 of file ProcessHistoryID.h.

Definition at line 158 of file ProcessHistory.h.

using art::ProcessLookup = typedef std::map<std::string, std::vector<ProductID>>

Definition at line 17 of file type_aliases.h.

using art::product_typeids_t = typedef std::map<product_metatype, TypeID>

Definition at line 39 of file fwd.h.

using art::ProductDescriptions = typedef std::vector<BranchDescription>

Definition at line 283 of file BranchDescription.h.

Definition at line 284 of file BranchDescription.h.

Definition at line 15 of file ProductList.h.

using art::ProductListUpdatedCallback = typedef std::function<void(ProductTables const&)>

Definition at line 54 of file UpdateOutputCallbacks.h.

using art::ProductLookup_t = typedef std::map<std::string, ProcessLookup>

Definition at line 23 of file type_aliases.h.

using art::ProductProvenances = typedef std::vector<ProductProvenance>

Definition at line 52 of file ProductProvenance.h.

using art::ProductStatus = typedef unsigned char

Definition at line 6 of file ProductStatus.h.

typedef std::string art::ReleaseVersion

Definition at line 6 of file ReleaseVersion.h.

Definition at line 25 of file MixTypes.h.

Definition at line 120 of file IDNumber.h.

using art::SampledRunInfo = typedef std::map<std::string, SampledInfo<RunID>>

Definition at line 38 of file SampledInfo.h.

using art::SampledSubRunInfo = typedef std::map<std::string, SampledInfo<SubRunID>>

Definition at line 39 of file SampledInfo.h.

Definition at line 11 of file Selections.h.

using art::SelectionsArray = typedef std::array<Selections, NumBranchTypes>

Definition at line 12 of file Selections.h.

using art::SpecProdList = typedef std::vector<std::shared_ptr<EDProduct const>>

Definition at line 21 of file MixTypes.h.

Definition at line 24 of file MixTypes.h.

Definition at line 119 of file IDNumber.h.

using art::TimeValue_t = typedef std::uint64_t

Definition at line 8 of file Timestamp.h.

template<typename T >
using art::tool_return_type = typedef typename detail::tool_type<T>::return_type

Definition at line 15 of file make_tool.h.

template<std::size_t I, typename Node >
using art::tuple_element_t = typedef typename tuple_element<I, Node>::type

Definition at line 56 of file AssnsNode.h.

Definition at line 20 of file type_aliases.h.

Definition at line 18 of file type_aliases.h.

using art::WorkerMap = typedef std::map<std::string, std::unique_ptr<Worker>>

Definition at line 11 of file WorkerMap.h.

Enumeration Type Documentation

Enumerator
BranchActionBegin 
BranchActionEnd 
BranchActionProcess 

Definition at line 7 of file BranchActionType.h.

Enumerator
InEvent 
InSubRun 
InRun 
InResults 
NumBranchTypes 

Definition at line 18 of file BranchType.h.

enum art::Direction : int
strong
Enumerator
Forward 
Reverse 

Definition at line 13 of file AssnsIter.h.

Enumerator
SUCCESS 
NO_MORE_FILES 
DELIVERY_ERROR 
TRANSFER_ERROR 

Definition at line 26 of file InputFileCatalog.h.

enum art::FileDisposition
strong
Enumerator
PENDING 
TRANSFERRED 
CONSUMED 
SKIPPED 
INCOMPLETE 

Definition at line 14 of file FileDisposition.h.

Enumerator
ModuleDescriptionType 
ParameterSetType 
ProcessHistoryType 
ProcessConfigurationType 
EntryDescriptionType 
ParentageType 

Definition at line 11 of file HashedTypes.h.

enum art::Level
strong
Enumerator
Job 
InputFile 
Run 
SubRun 
Event 
NumNestingLevels 
ReadyToAdvance 

Definition at line 13 of file Level.h.

enum art::ModuleType
strong
Enumerator
non_art 
producer 
filter 
analyzer 
output_module 
producing_service 

Definition at line 11 of file ModuleType.h.

enum art::Persistable
strong
Enumerator
Yes 
No 

Definition at line 5 of file Persistable.h.

enum art::product_metatype
strong
Enumerator
Normal 
LeftRight 
RightLeft 
LeftRightData 
RightLeftData 

Definition at line 5 of file product_metatype.h.

enum art::ServiceScope
strong
Enumerator
LEGACY 
GLOBAL 
PER_SCHEDULE 

Definition at line 7 of file ServiceScope.h.

enum art::suffix_type : std::size_t
strong
Enumerator
module 
plugin 
service 
source 
tool 
mfPlugin 
mfStatsPlugin 

Definition at line 61 of file PluginSuffixes.h.

enum art::Transition
strong
Enumerator
BeginJob 
EndJob 
BeginFile 
EndFile 
BeginRun 
EndRun 
BeginSubRun 
EndSubRun 
BeginEvent 
EndEvent 

Definition at line 7 of file Transition.h.

Enumerator
Silent 
Concise 
Normal 
Detailed 

Definition at line 5 of file Verbosity.h.

5 { Silent = 0, Concise = 2, Normal = 5, Detailed = 10 };

Function Documentation

std::string const & art::BranchTypeToAuxiliaryBranchName ( BranchType const  bt)

Definition at line 83 of file BranchType.cc.

84  {
85  return select(
86  bt,
87  {&eventAuxiliary, &subRunAuxiliary, &runAuxiliary, &resultsAuxiliary});
88  }
std::string const & art::BranchTypeToMajorIndexName ( BranchType const  bt)

Definition at line 101 of file BranchType.cc.

102  {
103  return select(bt, {&eventMajorIndex, &subRunMajorIndex, &runMajorIndex});
104  }
std::string const & art::BranchTypeToMetaDataTreeName ( BranchType const  bt)

Definition at line 77 of file BranchType.cc.

78  {
79  return select(bt, {&eventMeta, &subRunMeta, &runMeta, &resultsMeta});
80  }
std::string const & art::BranchTypeToMinorIndexName ( BranchType const  bt)

Definition at line 107 of file BranchType.cc.

108  {
109  return select(bt, {&eventMinorIndex, &subRunMinorIndex, &runMinorIndex});
110  }
std::string const & art::BranchTypeToProductTreeName ( BranchType const  bt)

Definition at line 71 of file BranchType.cc.

72  {
73  return select(bt, {&events, &subRuns, &runs, &resultsTree});
74  }
std::string const & art::BranchTypeToString ( BranchType const  bt)

Definition at line 65 of file BranchType.cc.

Referenced by art::ConsumesInfo::assemble_consumes_statement(), operator<<(), and art::FileDumperOutput::printPrincipal().

66  {
67  return select(bt, {&event, &subRun, &run, &results});
68  }
Event finding and building.
std::string art::canonicalProductName ( std::string const &  friendlyClassName,
std::string const &  moduleLabel,
std::string const &  productInstanceName,
std::string const &  processName 
)

Definition at line 9 of file canonicalProductName.cc.

Referenced by art::BranchKey::branchName(), art::BranchDescription::fluffTransients_(), art::DataViewImpl::getProductDescription_(), art::DataViewImpl::getProductID(), art::ProductID::invalid(), art::MixOp< Prod, OProd >::outgoingProductID(), and put_product_in_principal().

13 {
14  std::string result;
15  result.reserve(friendlyClassName.size() + moduleLabel.size() +
16  productInstanceName.size() + processName.size() + 4);
17  result += friendlyClassName;
18  result += underscore;
19  result += moduleLabel;
20  result += underscore;
21  result += productInstanceName;
22  result += underscore;
23  result += processName;
24  result += period;
25  // It is *absolutely* needed to have the trailing period on the branch
26  // name, as this gives instruction to ROOT to split this branch in the
27  // modern (v4+) way vs the old way (v3-).
28 
29  return result;
30 }
bool art::combinable ( BranchDescription const &  a,
BranchDescription const &  b 
)

Definition at line 307 of file BranchDescription.cc.

References art::BranchDescription::branchType(), art::BranchDescription::friendlyClassName(), art::BranchDescription::moduleLabel(), art::BranchDescription::processName(), art::BranchDescription::producedClassName(), art::BranchDescription::productID(), and art::BranchDescription::productInstanceName().

Referenced by art::OutputModule::doSelectProducts(), and art::Principal::fillGroup().

308  {
309  return (a.branchType() == b.branchType()) &&
310  (a.processName() == b.processName()) &&
311  (a.producedClassName() == b.producedClassName()) &&
312  (a.friendlyClassName() == b.friendlyClassName()) &&
313  (a.productInstanceName() == b.productInstanceName()) &&
314  (a.moduleLabel() == b.moduleLabel()) &&
315  (a.productID() == b.productID());
316  }
template<typename CONTAINER >
std::enable_if_t<detail::has_two_arg_insert<CONTAINER>::value> art::concatContainers ( CONTAINER &  out,
CONTAINER const &  in 
)
template<typename CONTAINER >
std::enable_if_t<detail::has_three_arg_insert<CONTAINER>::value> art::concatContainers ( CONTAINER &  out,
CONTAINER const &  in 
)
template<class T >
void art::convert_handle ( GroupQueryResult const &  orig,
Handle< T > &  result 
)

Definition at line 242 of file Handle.h.

References art::Handle< T >::swap().

243 {
244  Handle<T> h{orig};
245  result.swap(h);
246 }
void art::decode ( std::any const &  a,
InputTag tag 
)

Definition at line 115 of file InputTag.cc.

References fhicl::detail::decode(), fhicl::detail::is_sequence(), and tmp.

Referenced by fhicl::ParameterSet::get_one_().

116  {
118  vector<string> tmp;
119  fhicl::detail::decode(a, tmp);
120  if (tmp.size() == 2)
121  tag = {tmp.at(0), tmp.at(1)};
122  else if (tmp.size() == 3)
123  tag = {tmp.at(0), tmp.at(1), tmp.at(2)};
124  else {
125  ostringstream errmsg;
126  errmsg << "When converting to InputTag by a sequence, FHiCL entries "
127  "must follow the convention:\n\n"
128  << " [ label, instance ], or\n"
129  << " [ label, instance, process_name ].\n\n";
130  errmsg << "FHiCL entries provided: [ ";
131  for (auto ca = tmp.begin(); ca != tmp.cend(); ++ca) {
132  errmsg << *ca;
133  if (ca != tmp.cend() - 1) {
134  errmsg << ", ";
135  }
136  }
137  errmsg << " ]";
138  throw length_error(errmsg.str());
139  }
140  } else {
141  string tmp;
142  fhicl::detail::decode(a, tmp);
143  tag = tmp;
144  }
145  }
Float_t tmp
Definition: plot.C:37
void decode(std::any const &, std::string &)
bool is_sequence(std::any const &val)
Definition: coding.h:49
template<class T , class U >
std::enable_if_t<detail::are_handles<T, U>::value, bool> art::disjoint_ranges ( T const &  a,
U const &  b 
)
template<class T , class U >
bool art::disjoint_ranges ( SummedValue< T > const &  a,
SummedValue< U > const &  b 
)

Definition at line 182 of file SummedValue.h.

References disjoint_ranges(), and art::SummedValue< T >::rangeOfValidity().

183  {
184  return disjoint_ranges(a.rangeOfValidity(), b.rangeOfValidity());
185  }
bool disjoint_ranges(SummedValue< T > const &a, SummedValue< U > const &b)
Definition: SummedValue.h:182
bool art::disjoint_ranges ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 415 of file RangeSet.cc.

References art::RangeSet::collapse(), art::RangeSet::empty(), art::RangeSet::has_disjoint_ranges(), art::RangeSet::is_valid(), art::RangeSet::ranges(), and art::RangeSet::run().

416  {
417  if (!(l.is_valid() && r.is_valid())) {
418  return false;
419  }
420  if (!l.has_disjoint_ranges() || !r.has_disjoint_ranges())
421  return false;
422 
423  if (l.run() != r.run())
424  return true;
425 
426  // If we get here, the run numbers of both ranges are guaranteed to
427  // be the same.
428 
429  // Empty RangeSets are disjoint wrt. other RangeSets. Must handle
430  // this case separately than l == r case.
431  if (l.empty() || r.empty())
432  return true;
433 
434  // If we get this far, then neither RangeSet is empty.
435  if (l == r)
436  return false;
437 
438  RangeSet ltmp{l};
439  RangeSet rtmp{r};
440  auto const& lranges = ltmp.collapse().ranges();
441  auto const& rranges = rtmp.collapse().ranges();
442 
443  std::vector<EventRange> merged;
444  std::merge(lranges.begin(),
445  lranges.end(),
446  rranges.begin(),
447  rranges.end(),
448  back_inserter(merged));
449 
450  return disjoint(merged);
451  }
template<typename WANTED_POINTER , typename InputIterator >
WANTED_POINTER art::ensurePointer ( InputIterator  it)
inline

Definition at line 77 of file ensurePointer.h.

References art::errors::LogicError.

Referenced by art::detail::IPRHelper< ProdA, ProdB, Data, DATACOLL, EVENT >::operator()().

77  {
78  static_assert(std::is_pointer_v<WANTED_POINTER>,
79  "Supplied template argument is not a pointer.");
80  return detail::EnsurePointer<
81  WANTED_POINTER,
82  typename std::iterator_traits<InputIterator>::value_type>{}(*it);
83 }
84 catch (std::bad_cast&) {
85  throw Exception(errors::LogicError, "ensurePointer")
86  << "Iterator value type "
87  << cet::demangle_symbol(
88  typeid(typename std::iterator_traits<InputIterator>::value_type)
89  .name())
90  << " and wanted pointer type "
91  << cet::demangle_symbol(typeid(WANTED_POINTER).name())
92  << " are incompatible.\n";
93 }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
void art::ensureTable ( fhicl::intermediate_table table,
std::string const &  fhicl_spec 
)

Definition at line 6 of file ensureTable.cc.

References fhicl::intermediate_table::exists(), and fhicl::intermediate_table::putEmptyTable().

Referenced by art::BasicOutputOptionsHandler::doCheckOptions(), and art::FileCatalogOptionsHandler::doProcessOptions().

7 {
8  if (!table.exists(name)) {
9  table.putEmptyTable(name);
10  }
11 }
bool putEmptyTable(std::string const &name, bool in_prolog=false)
bool exists(std::string const &name) const
template<>
void art::EventProcessor::begin< Level::InputFile > ( )
inline

Definition at line 325 of file EventProcessor.cc.

References art::EventProcessor::openInputFile().

326  {
327  openInputFile();
328  }
template<>
void art::EventProcessor::begin< Level::Job > ( )
inline

Definition at line 317 of file EventProcessor.cc.

References art::EventProcessor::beginJob(), and art::EventProcessor::timer_.

318  {
319  timer_->start();
320  beginJob();
321  }
void beginJob()
Definition: Breakpoints.cc:14
template<>
void art::EventProcessor::begin< Level::Run > ( )

Definition at line 332 of file EventProcessor.cc.

References art::EventProcessor::beginRun(), art::EventProcessor::finalizeRunEnabled_, art::EventProcessor::handleEmptyRuns_, and art::EventProcessor::readRun().

333  {
334  finalizeRunEnabled_ = true;
335  readRun();
336  if (handleEmptyRuns_) {
337  beginRun();
338  }
339  }
template<>
void art::EventProcessor::begin< Level::SubRun > ( )

Definition at line 343 of file EventProcessor.cc.

References art::EventProcessor::beginRunIfNotDoneAlready(), art::EventProcessor::beginSubRun(), art::EventProcessor::finalizeSubRunEnabled_, art::EventProcessor::handleEmptySubRuns_, art::EventProcessor::readSubRun(), and art::EventProcessor::runPrincipal_.

344  {
345  finalizeSubRunEnabled_ = true;
346  assert(runPrincipal_);
347  assert(runPrincipal_->runID().isValid());
348  readSubRun();
349  if (handleEmptySubRuns_) {
350  beginRunIfNotDoneAlready();
351  beginSubRun();
352  }
353  }

Definition at line 397 of file EventProcessor.cc.

References art::EventProcessor::closeAllFiles(), art::EventProcessor::closeInputFile(), Job, and art::EventProcessor::nextLevel_.

398  {
399  if (nextLevel_.load() == Level::Job) {
400  closeAllFiles();
401  } else {
402  closeInputFile();
403  }
404  }
template<>
void art::EventProcessor::finalize< Level::Job > ( )

Definition at line 408 of file EventProcessor.cc.

References art::EventProcessor::endJob(), and art::EventProcessor::timer_.

409  {
410  endJob();
411  timer_->stop();
412  }
template<>
void art::EventProcessor::finalize< Level::Run > ( )

Definition at line 377 of file EventProcessor.cc.

References art::EventProcessor::beginRunCalled_, art::EventProcessor::endRun(), art::EventProcessor::finalizeRunEnabled_, art::EventProcessor::openSomeOutputFiles(), art::EventProcessor::runPrincipal_, art::EventProcessor::setRunAuxiliaryRangeSetID(), and art::EventProcessor::writeRun().

378  {
379  assert(runPrincipal_);
380  if (!finalizeRunEnabled_) {
381  return;
382  }
383  if (runPrincipal_->runID().isFlush()) {
384  return;
385  }
386  openSomeOutputFiles();
387  setRunAuxiliaryRangeSetID();
388  if (beginRunCalled_) {
389  endRun();
390  }
391  writeRun();
392  finalizeRunEnabled_ = false;
393  }

Definition at line 357 of file EventProcessor.cc.

References art::EventProcessor::beginSubRunCalled_, art::EventProcessor::endSubRun(), art::EventProcessor::finalizeSubRunEnabled_, art::EventProcessor::openSomeOutputFiles(), art::EventProcessor::setSubRunAuxiliaryRangeSetID(), art::EventProcessor::subRunPrincipal_, and art::EventProcessor::writeSubRun().

358  {
359  assert(subRunPrincipal_);
360  if (!finalizeSubRunEnabled_) {
361  return;
362  }
363  if (subRunPrincipal_->subRunID().isFlush()) {
364  return;
365  }
366  openSomeOutputFiles();
367  setSubRunAuxiliaryRangeSetID();
368  if (beginSubRunCalled_) {
369  endSubRun();
370  }
371  writeSubRun();
372  finalizeSubRunEnabled_ = false;
373  }

Definition at line 423 of file EventProcessor.cc.

424  {
425  finalize<Level::SubRun>();
426  finalize<Level::Run>();
427  }

Definition at line 416 of file EventProcessor.cc.

417  {
418  finalize<Level::Run>();
419  }

Definition at line 447 of file EventProcessor.cc.

References art::EventProcessor::endPathExecutors_, art::Granularity::Event, and art::ScheduleID::first().

448  {
449  endPathExecutors_->at(ScheduleID::first())
450  .recordOutputClosureRequests(Granularity::Event);
451  }

Definition at line 431 of file EventProcessor.cc.

References art::EventProcessor::endPathExecutors_, art::ScheduleID::first(), and art::Granularity::Run.

432  {
433  endPathExecutors_->at(ScheduleID::first())
434  .recordOutputClosureRequests(Granularity::Run);
435  }

Definition at line 439 of file EventProcessor.cc.

References art::EventProcessor::endPathExecutors_, art::ScheduleID::first(), and art::Granularity::SubRun.

440  {
441  endPathExecutors_->at(ScheduleID::first())
442  .recordOutputClosureRequests(Granularity::SubRun);
443  }
template<typename T , typename H >
void art::fill_ptr_list ( std::list< Ptr< T >> &  ptrs,
H const &  h 
)

Definition at line 303 of file Ptr.h.

304  {
305  for (std::size_t i = 0, sz = h->size(); i != sz; ++i) {
306  ptrs.emplace_back(h, i);
307  }
308  }
template<typename T , typename H >
void art::fill_ptr_vector ( std::vector< Ptr< T >> &  ptrs,
H const &  h 
)

Definition at line 293 of file Ptr.h.

Referenced by cheat::CheckBackTracking::analyze(), cheat::RecoCheckAna::analyze(), opdet::FlashPurityCheckAna::analyze(), shower::TCShowerTemplateMaker::analyze(), shower::TCShowerElectronLikelihood::analyze(), shower::TCShowerAnalysis::analyze(), cluster::ClusterAna::analyze(), pfpf::PFPAna::analyze(), hit::MagDriftAna::analyze(), cluster::DBclusterAna::analyze(), hit::GausHitFinderAna::analyze(), NuShowerEff::analyze(), ClusteringValidation::ClusteringValidation::analyze(), evd::AnalysisBaseDrawer::CalorShower(), evd::AnalysisBaseDrawer::DrawDeDx(), evd::AnalysisBaseDrawer::DrawKineticEnergy(), simfilter::FilterNoDirtNeutrinos::filter(), trkf::BezierTrackerModule::GetHitsFromClusters(), shower::TCShower::getShowersWithoutSlices(), trkf::SeedFinderModule::GetSortedHitsFromClusters(), evd::RecoBaseDrawer::GetSpacePoints(), evwgh::GenieWeightCalc::GetWeight(), ems::MergeEMShower3D::mcinfo(), wc::CellTree::processCalib(), DUNE::NeutrinoShowerEff::processEff(), DUNE::NeutrinoTrackingEff::processEff(), DUNE::MuonTrackingEff::processEff(), wc::CellTree::processMC(), wc::CellTree::processOpFlash(), wc::CellTree::processOpHit(), wc::CellTree::processRaw(), wc::CellTree::processSpacePoint(), wc::CellTree::processTrigger(), event::EventMaker::produce(), hit::DisambigCheater::produce(), vertex::VertexCheater::produce(), shwf::ShowerCheater::produce(), event::EventCheater::produce(), apa::APAHitFinder::produce(), pid::Chi2ParticleID::produce(), sppt::TTSpacePointFinder::produce(), trkf::BezierTrackerModule::produce(), cluster::ClusterCheater::produce(), trkf::TrackCheater::produce(), cluster::SimpleLineCluster::produce(), calo::BezierCalorimetry::produce(), CRHitRemoval::produce(), cluster::DBCluster3D::produce(), evwgh::EventWeight::produce(), cluster::TrajCluster::produce(), cluster::BlurredClustering::produce(), cosmic::CosmicTrackTagger::produce(), shower::EMShower::produce(), cosmic::CosmicClusterTagger::produce(), shower::TCShower::produce(), trkf::CCTrackMaker::produce(), reco3d::SpacePointSolver::produce(), calo::Calorimetry::produce(), lbne::PhotonCounterT0Matching::produce(), trkf::PMAlgTrajFitter::produce(), t0::MCTruthT0Matching::produce(), vertex::FeatureVertexFinder::produce(), trkf::PMAlgTrackMaker::produce(), trkf::CosmicTracker::produce(), cheat::PhotonBackTracker::Rebuild(), apa::DisambigAlg::RunDisambig(), nnet::TrainingDataAlg::setDataEventData(), and tss::TrackShowerHits::sortHits().

294  {
295  for (std::size_t i = 0, sz = h->size(); i != sz; ++i) {
296  ptrs.emplace_back(h, i);
297  }
298  }
bool art::find_config ( std::string const &  filename,
std::string const &  search_path_spec,
std::string &  full_path 
)

Definition at line 13 of file find_config.cc.

References e.

16 {
17  try {
18  cet::search_path sp(search_path_spec);
19  if (!sp.find_file(filename, full_path)) {
20  return false;
21  }
22  }
23  catch (cet::exception const& e) {
24  if (e.root_cause() == "getenv") {
25  // Assume file is findable as specified.
26  full_path = filename;
27  } else {
28  throw;
29  }
30  }
31  return true;
32 }
Float_t e
Definition: plot.C:34
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename COLLECTION >
void art::flattenCollections ( std::vector< COLLECTION const * > const &  in,
COLLECTION &  out 
)

Definition at line 281 of file CollectionUtilities.h.

References concatContainers().

Referenced by art::detail::mix_offset< cet::map_vector< P > >::offset().

283 {
284  typename COLLECTION::size_type total_size = 0;
285  for (auto collptr : in) {
286  if (collptr != nullptr) {
287  total_size += collptr->size();
288  }
289  }
290  out.reserve(total_size);
291  for (auto collptr : in) {
292  if (collptr != nullptr) {
293  concatContainers(out, *collptr);
294  }
295  }
296 }
std::enable_if_t< detail::has_three_arg_insert< CONTAINER >::value > concatContainers(CONTAINER &out, CONTAINER const &in)
template<typename COLLECTION , typename OFFSETS >
void art::flattenCollections ( std::vector< COLLECTION const * > const &  in,
COLLECTION &  out,
OFFSETS &  offsets 
)

Definition at line 301 of file CollectionUtilities.h.

References in, and art::detail::mix_offset< C >::offset().

304 {
305  offsets.clear();
306  offsets.reserve(in.size());
307  typename COLLECTION::size_type current_offset{};
308  for (auto collptr : in) {
309  if (collptr == nullptr)
310  continue;
311 
312  auto const delta = detail::mix_offset<COLLECTION>::offset(*collptr);
313  offsets.push_back(current_offset);
314  current_offset += delta;
315  }
316  flattenCollections<COLLECTION>(in, out); // 1.
317 }
ifstream in
Definition: comparison.C:7
template<typename T >
void art::flattenCollections ( std::vector< PtrVector< T > const * > const &  in,
PtrVector< T > &  out 
)

Definition at line 322 of file CollectionUtilities.h.

References in, art::errors::LogicError, and art::detail::verifyPtrCollection().

324 {
325  // Extra checks are required to verify that the PtrVectors are
326  // compatible.
327  if (!detail::verifyPtrCollection(in)) {
329  << "Attempt to flatten incompatible PtrVectors "
330  << "referring to different ProductIDs.\n";
331  }
332  flattenCollections<PtrVector<T>>(in, out); // 1
333 }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
ifstream in
Definition: comparison.C:7
bool verifyPtrCollection(iterator beg, iterator end, art::ProductID id={}, art::EDProductGetter const *getter=nullptr)
template<typename T , typename OFFSETS >
void art::flattenCollections ( std::vector< PtrVector< T > const * > const &  in,
PtrVector< T > &  out,
OFFSETS &  offsets 
)

Definition at line 338 of file CollectionUtilities.h.

References in, art::errors::LogicError, and art::detail::verifyPtrCollection().

341 {
342  // Extra checks are required to verify that the PtrVectors are
343  // compatible.
344  if (!detail::verifyPtrCollection(in)) {
346  << "Attempt to flatten incompatible PtrVectors "
347  << "referring to different ProductIDs.\n";
348  }
349  flattenCollections<PtrVector<T>>(in, out, offsets); // 2.
350 }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
ifstream in
Definition: comparison.C:7
bool verifyPtrCollection(iterator beg, iterator end, art::ProductID id={}, art::EDProductGetter const *getter=nullptr)
template<typename F >
void art::for_each_branch_type ( f)

Definition at line 36 of file BranchType.h.

References f, InEvent, and NumBranchTypes.

Referenced by art::OutputModule::doSelectProducts(), art::ProductRegistryHelper::fillDescriptions(), and art::ProductRegistryHelper::registerProducts().

37  {
38  for (std::underlying_type<BranchType>::type i{InEvent}; i < NumBranchTypes;
39  ++i) {
40  auto const bt = static_cast<BranchType>(i);
41  f(bt);
42  }
43  }
TFile f
Definition: plotHisto.C:6
BranchType
Definition: BranchType.h:18
template<typename A , typename B , typename D , typename F >
void art::for_each_group ( art::Assns< A, B, D > const &  assns,
func 
)

Helper functions to access associations in order.

Template Parameters
Atype of association being read
Ftype of functor to be called on each associated group
Parameters
assnsthe association being read
funcfunctor to be called on each associated group

This function takes two input arguments, a constant reference to the association data product itself (assns), and the function (func) to be operated on each of the group of associated objects. This function represents the association data product as a range of ranges representing the right hand side in the collection, hence the function provided as the second argument should assume that it will be operating on a range of art::Ptr to the associated data products grouped by the data product they are associated with.

Example: assuming that a module with input tag stored in fTrackTag has created associations of each track to its hits, the total charge for each track can be extracted by:

auto assns = art::getValidHandle<art::Assns<recob::Track, recob::Hit>>
(fTrackTag);
std::vector<double> totalCharge;
[&totalCharge](auto hits)
{
double total = 0.;
for (auto iHit = begin(hits); iHit != end(hits); ++iHit)
total += (*iHit)->Integral();
totalCharge.push_back(total);
}
);

A number of important points need to be realised about this example:

  • the requirements of this function translate, for this example, into:
    • at the creation of the associations data product, for each track the complete sequence of hits must be associated, one hit after the other (via addSingle); if the order of the hits is relevant (it is not in this specific example), hits must be associated in that order
    • each track must have at least one associated hit;
    • the original association has to be stored with recob::Track as left key and recob::Hit as right key;
  • we use here a lambda function as func; any object behaving as a function and able to accept the range of hits as its only argument will work just as well;
  • func will be called once for every track (but if a track has no associated hit, that track will be skipped, and if a track appears in more than one association sequence, like in (T1,H1) (T1,H2) (T2,H4) (T1,H3), then that track will appear as many times);
  • func does not return any value: the results are accumulated in a new sequence;
  • func receives a range of art pointers (art::Ptr<recob::Hit>) which needs to be navigated with the begin()/end() free functions (don't specify their namespace: C++ will figure out!); double dereferencing is needed: the first (*iHit) will turn the range iterator into the pointed art::Ptr<recob::Hit>, and the second ((...)->Integral()) accesses the recob::Hit pointed by the art pointer;
  • func does not know which track the hits are associated to, and it assumes that the first sequence of hits is associated to the first track (so that its total charge will be available in totalCharge[0]), the second sequence to the second track (totalCharge[1]) and so on.

Therefore, for a assns sequence like

(T1,H1) (T1,H2) (T2,H4) (T2,H6) (T1,H5)

the function for_each_group() will execute two calls:

func({ H1, H2 })
func({ H4, H6, H5 })

dealing with the hits associated to T1 first, and T2 next.

Definition at line 111 of file AssnsAlgorithms.h.

References a1, a2, and util::values().

Referenced by util::for_each_associated_group().

112  {
113  ranges::for_each(assns | ranges::view::all |
114  ranges::view::group_by([](auto a1, auto a2) {
115  return a1.first == a2.first;
116  }) |
117  ranges::view::transform([](auto pairs) {
118  return pairs | ranges::view::values;
119  }),
120  func);
121  }
#define a2
decltype(auto) values(Coll &&coll)
Range-for loop helper iterating across the values of the specified collection.
#define a1
template<typename A , typename B , typename D , typename F >
void art::for_each_group_with_left ( art::Assns< A, B, D > const &  assns,
func 
)

Definition at line 141 of file AssnsAlgorithms.h.

References ROOT::Math::begin(), for_each_pair(), left(), and util::values().

142  {
143  for_each_pair(assns, [&func](auto rng) {
144  auto rights = rng | ranges::view::values;
145  auto lefts = rng | ranges::view::keys;
146  auto const& left = **ranges::begin(lefts);
147  func(left, rights);
148  });
149  }
decltype(auto) begin(ROOT::Math::PositionVector2D< CoordSystem, Tag > const &v)
decltype(auto) values(Coll &&coll)
Range-for loop helper iterating across the values of the specified collection.
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:96
void for_each_pair(art::Assns< A, B, D > const &assns, F func)
template<typename A , typename B , typename D , typename F >
void art::for_each_pair ( art::Assns< A, B, D > const &  assns,
func 
)

Definition at line 153 of file AssnsAlgorithms.h.

References a1, and a2.

Referenced by for_each_group_with_left().

154  {
155  ranges::for_each(assns | ranges::view::all |
156  ranges::view::group_by(
157  [](auto a1, auto a2) { return a1.first == a2.first; }),
158  func);
159  }
#define a2
#define a1
constexpr auto art::fullRun ( )

Definition at line 22 of file ProductSemantics.h.

23  {
24  return FullSemantic<Level::Run>{};
25  }
constexpr auto art::fullSubRun ( )

Definition at line 27 of file ProductSemantics.h.

28  {
29  return FullSemantic<Level::SubRun>{};
30  }
template<typename T , typename L , typename R , typename D >
auto const & art::get ( AssnsNode< L, R, D > const &  r)

Definition at line 115 of file AssnsNode.h.

116  {
117  return detail::get_helper<L, R, D>::template get_element<T>(r);
118  }
std::string const & art::getCanvasReleaseVersion ( )

Definition at line 6 of file GetReleaseVersion.cc.

6  {
7  static std::string const releaseVersion{"v3_07_03"};
8  return releaseVersion;
9  }
template<typename Collection >
void art::getElementAddresses ( Collection const &  coll,
std::type_info const &  iToType,
std::vector< unsigned long > const &  indices,
std::vector< void const * > &  oPtr 
)

Definition at line 67 of file getElementAddresses.h.

References art::detail::maybeCastObj().

Referenced by art::Wrapper< T >::do_getElementAddresses().

71 {
72  oPtr.reserve(indices.size());
73  for (auto const index : indices) {
74  auto it = coll.cbegin();
75  advance(it, index);
76  oPtr.push_back(detail::maybeCastObj(
77  detail::GetProduct<Collection>::address(it), iToType));
78  }
79 }
void const * maybeCastObj(element_type const *address, std::type_info const &tiTo)
Definition: maybeCastObj.h:21
template<typename T >
void art::getElementAddresses ( cet::map_vector< T > const &  obj,
std::type_info const &  iToType,
std::vector< unsigned long > const &  indices,
std::vector< void const * > &  oPtr 
)

Definition at line 83 of file getElementAddresses.h.

References art::detail::value_type_helper::look_past_pair(), art::detail::maybeCastObj(), art::detail::value_type_helper::starts_with_pair(), and uniform_type_name().

87 {
88  detail::value_type_helper vh;
89  std::string const wanted_type =
90  uniform_type_name(cet::demangle_symbol(iToType.name()));
91  static size_t const pos = vh.look_past_pair<T>();
92  oPtr.reserve(indices.size());
93  if ((pos < wanted_type.size()) && vh.starts_with_pair(wanted_type, pos)) {
94  // Want value_type.
95  for (auto const index : indices) {
96  auto it = obj.find(cet::map_vector_key{index});
97  auto ptr = (it == obj.cend()) ? nullptr : &*it;
98  oPtr.push_back(detail::maybeCastObj(ptr, iToType));
99  }
100  } else {
101  // Want mapped_type.
102  for (auto const index : indices) {
103  auto ptr = obj.getOrNull(cet::map_vector_key{index});
104  oPtr.push_back(detail::maybeCastObj(ptr, iToType));
105  }
106  }
107 }
void const * maybeCastObj(element_type const *address, std::type_info const &tiTo)
Definition: maybeCastObj.h:21
std::string uniform_type_name(std::type_info const &tid)
std::string art::glob2reg ( std::string  pattern)

Definition at line 19 of file RegexMatch.cc.

Referenced by regexMatch().

20  {
21  cet::replace_all(pattern, "*", ".*");
22  cet::replace_all(pattern, "?", ".");
23  return pattern;
24  }
constexpr auto art::highest_level ( )
noexcept
template<Direction Dir>
constexpr auto art::index_for_dereferencing ( std::size_t const  i)

Definition at line 87 of file AssnsIter.h.

References Forward.

88  {
89  return (Dir == Direction::Forward) ? i : i - 1;
90  }
constexpr bool art::is_above_most_deeply_nested_level ( Level const  l)
noexcept

Definition at line 56 of file Level.h.

References most_deeply_nested_level(), and underlying_value().

57  {
59  }
constexpr auto most_deeply_nested_level() noexcept
Definition: Level.h:44
constexpr auto underlying_value(Level const l) noexcept
Definition: Level.h:26
bool art::is_assns ( std::string const &  type_name)
inline

Definition at line 85 of file TypeID.h.

References is_instantiation_of(), and s.

Referenced by art::detail::createProductLookups(), is_assns(), name_of_assns_base(), and name_of_assns_partner().

86  {
87  using namespace std::string_literals;
88  return is_instantiation_of(type_name, "art::Assns"s);
89  }
Float_t s
Definition: plot.C:23
bool is_instantiation_of(TypeID const &tid, std::string const &template_name)
Definition: TypeID.h:79
bool art::is_assns ( TypeID const &  tid)
inline

Definition at line 92 of file TypeID.h.

References art::TypeID::className(), is_assns(), name_of_assns_base(), name_of_assns_partner(), name_of_template_arg(), name_of_unwrapped_product(), operator!=(), operator<<(), operator>(), and art::TypeID::swap().

93  {
94  return is_assns(tid.className());
95  }
bool is_assns(TypeID const &tid)
Definition: TypeID.h:92
bool art::is_glob ( std::string const &  pattern)

Definition at line 13 of file RegexMatch.cc.

Referenced by art::EventSelector::init().

14  {
15  return (pattern.find_first_of("*?") != std::string::npos);
16  }
constexpr bool art::is_highest_level ( Level const  l)
noexcept

Definition at line 68 of file Level.h.

References highest_level().

69  {
70  return l == highest_level();
71  }
constexpr auto highest_level() noexcept
Definition: Level.h:32
bool art::is_instantiation_of ( std::string const &  type_name,
std::string const &  template_name 
)
inline

Definition at line 72 of file TypeID.h.

Referenced by is_assns(), is_instantiation_of(), and name_of_unwrapped_product().

74  {
75  return type_name.find(template_name + '<') == 0ull;
76  }
bool art::is_instantiation_of ( TypeID const &  tid,
std::string const &  template_name 
)
inline

Definition at line 79 of file TypeID.h.

References art::TypeID::className(), and is_instantiation_of().

80  {
81  return is_instantiation_of(tid.className(), template_name);
82  }
bool is_instantiation_of(TypeID const &tid, std::string const &template_name)
Definition: TypeID.h:79
constexpr bool art::is_level_contained_by ( Level const  l1,
Level const  l2 
)
noexcept

Definition at line 74 of file Level.h.

References underlying_value().

75  {
76  return underlying_value(l1) > underlying_value(l2);
77  }
constexpr auto underlying_value(Level const l) noexcept
Definition: Level.h:26
bool art::is_modifier ( ModuleType const  mt)
inline

Definition at line 22 of file ModuleType.h.

References filter, and producer.

Referenced by art::detail::make_trigger_path_subgraphs(), and art::detail::verify_in_order_dependencies().

23  {
24  return (mt == ModuleType::producer) || (mt == ModuleType::filter);
25  }
constexpr bool art::is_most_deeply_nested_level ( Level const  l)
noexcept

Definition at line 62 of file Level.h.

References most_deeply_nested_level().

63  {
64  return l == most_deeply_nested_level();
65  }
constexpr auto most_deeply_nested_level() noexcept
Definition: Level.h:44
bool art::is_observer ( ModuleType const  mt)
inline

Definition at line 28 of file ModuleType.h.

References analyzer, and output_module.

Referenced by art::PathManager::fillSelectEventsDeps_(), and art::PathManager::PathManager().

29  {
30  return (mt == ModuleType::analyzer) || (mt == ModuleType::output_module);
31  }
template<Level L = Level::Event>
constexpr bool art::is_valid ( IDNumber_t< L > const  id)
noexcept

Definition at line 113 of file IDNumber.h.

Referenced by art::RangeSet::invalidChecksum(), art::EventRange::is_full_subRun(), art::EventRange::is_valid(), and lar::sparse_vector< float >::void_range().

114  {
115  return id != IDNumber<L>::invalid();
116  }
bool art::isAncestor ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 266 of file ProcessHistory.cc.

References art::ProcessHistory::data(), and art::ProcessHistory::size().

Referenced by isDescendant(), and art::detail::orderedProcessNamesCollection().

267  {
268  if (a.size() >= b.size()) {
269  return false;
270  }
272  for (const_iterator itA = a.data().begin(),
273  itB = b.data().begin(),
274  itAEnd = a.data().end();
275  itA != itAEnd;
276  ++itA, ++itB) {
277  if (*itA != *itB) {
278  return false;
279  }
280  }
281  return true;
282  }
intermediate_table::const_iterator const_iterator
bool art::isDescendant ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 285 of file ProcessHistory.cc.

References isAncestor().

286  {
287  return isAncestor(b, a);
288  }
bool isAncestor(ProcessHistory const &a, ProcessHistory const &b)
template<typename L , typename R , typename D , Direction Dir>
constexpr auto const& art::left ( const_AssnsIter< L, R, D, Dir > const &  a,
const_AssnsIter< L, R, D, Dir > const &  b 
)

Definition at line 96 of file AssnsIter.h.

References Forward.

Referenced by recob::TrackTrajectory::AtLeastValidTrajectoryPoints(), lar_cluster3d::ConvexHullPathFinder::breakClusterAtBigGap(), lar_cluster3d::ConvexHullPathFinder::breakClusterByKinks(), lar_cluster3d::ConvexHullPathFinder::breakClusterByKinksTrial(), lar_cluster3d::ConvexHullPathFinder::breakClusterByMaxDefect(), lar_cluster3d::ConvexHullPathFinder::breakClusterInHalf(), lar_cluster3d::ClusterPathFinder::breakIntoTinyBits(), lar_cluster3d::VoronoiPathFinder::breakIntoTinyBits(), lar_cluster3d::ClusterPathFinder::buildConvexHull(), lar_cluster3d::ConvexHullPathFinder::buildConvexHull(), lar_cluster3d::VoronoiPathFinder::buildConvexHull(), lar_cluster3d::StandardHit3DBuilder::BuildHit3D(), lar_cluster3d::kdTree::BuildKdTree(), lar_cluster3d::ClusterPathFinder::buildVoronoiDiagram(), lar_cluster3d::VoronoiPathFinder::buildVoronoiDiagram(), voronoi2d::VoronoiDiagram::ComputeFaceArea(), fhicl::detail::ValidateThenSet::delegated_parameter(), evdb_tool::DrawGausHits::Draw(), art::RangeSet::emplace_range(), cluster::TrajCluster::endJob(), lar_cluster3d::ClusterParamsBuilder::FillClusterParams(), evgen::NUANCEGen::FillHistograms(), evgen::NDKGen::FillHistograms(), evgen::GENIEGen::FillHistograms(), lar_cluster3d::MinSpanTreeAlg::FindBestPathInCluster(), voronoi2d::VoronoiDiagram::findBoundingBox(), lar_cluster3d::StandardHit3DBuilder::findGoodTriplets(), reco_tool::CandHitDerivative::findHitCandidates(), reco_tool::CandHitMorphological::findHitCandidates(), reco_tool::WaveformTools::findPeaks(), for_each_group_with_left(), mf::service::ELdestination::formSummary(), evgb::GENIEHelper::GENIEHelper(), voronoi2d::VoronoiDiagram::getConvexHull(), reco_tool::WaveformTools::getTruncatedMeanRMS(), art::TimeTracker::logToDestination_(), lar_cluster3d::Cluster3D::MakeAndSavePCAPoints(), lar_cluster3d::ClusterMergeAlg::ModifyClusters(), operator!=(), art::const_AssnsIter< L, R, D, Dir >::operator<(), util::flags::operator<(), util::flags::operator<<(), operator<=(), art::const_AssnsIter< L, R, D, Dir >::operator<=(), operator>(), art::const_AssnsIter< L, R, D, Dir >::operator>(), operator>=(), art::const_AssnsIter< L, R, D, Dir >::operator>=(), lar_cluster3d::ConvexHullPathFinder::orderHitsAlongEdge(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), nutools::dbi::Table::PrintColumns(), lar_pandora::LArPandoraEventDump::PrintProperty(), hit::GausHitFinder::produce(), boost::python::detail::proxy_group< Proxy >::replace(), lar_content::LArPcaHelper::RunPca(), lar_cluster3d::MinSpanTreeAlg::RunPrimsAlgorithm(), sort_pred(), sort_pred2(), lar_cluster3d::Cluster3D::splitClustersWithMST(), lar_cluster3d::VoronoiPathFinder::subDivideCluster(), art::MemoryTracker::summary_(), throw_if_not_disjoint(), cluster::HoughTransformCounters< KEY, COUNTER, SIZE, ALLOC, SUBCOUNTERS >::unchecked_add_range_max(), cluster::HoughTransformCounters< KEY, COUNTER, SIZE, ALLOC, SUBCOUNTERS >::unchecked_set_range(), and util::flags::Bits_t< Storage_t >::unsetBits().

98  {
99  return (Dir == Direction::Forward) ? a : b;
100  }
constexpr auto art::level_down ( Level const  l)
noexcept

Definition at line 50 of file Level.h.

References underlying_value().

51  {
52  return Level{underlying_value(l) + 1};
53  }
constexpr auto underlying_value(Level const l) noexcept
Definition: Level.h:26
Level
Definition: Level.h:13
constexpr auto art::level_up ( Level const  l)
noexcept

Definition at line 38 of file Level.h.

References underlying_value().

Referenced by most_deeply_nested_level().

39  {
40  return Level{underlying_value(l) - 1};
41  }
constexpr auto underlying_value(Level const l) noexcept
Definition: Level.h:26
Level
Definition: Level.h:13
auto art::make_product_descriptions ( ProductList const &  productList)
inline

Definition at line 19 of file ProductList.h.

20  {
21  ProductDescriptions result;
22  cet::transform_all(productList, back_inserter(result), [](auto const& pr) {
23  return pr.second;
24  });
25  return result;
26  }
std::vector< BranchDescription > ProductDescriptions
template<typename T >
std::enable_if_t<std::is_class<T>::value, tool_return_type<T> > art::make_tool ( fhicl::ParameterSet const &  pset)

Definition at line 19 of file make_tool.h.

References art::errors::Configuration, e, fhicl::ParameterSet::get(), art::Suffixes::tool(), and fhicl::detail::atom::value().

20  {
21  cet::BasicPluginFactory factory{Suffixes::tool(), "makeTool"};
22  std::string const libspec{pset.get<std::string>("tool_type")};
23  tool_return_type<T> result;
24  try {
25  result = detail::tool_type<T>::make_plugin(factory, libspec, pset);
26  }
27  catch (cet::exception const& e) {
28  throw Exception(errors::Configuration, "make_tool: ", e)
29  << "Exception caught while processing plugin spec: " << libspec << '\n';
30  }
31  return result;
32  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
Float_t e
Definition: plot.C:34
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename T >
std::enable_if_t<std::is_function<T>::value, tool_return_type<T> > art::make_tool ( fhicl::ParameterSet const &  pset,
std::string const &  function_tool_type 
)

Definition at line 36 of file make_tool.h.

References art::errors::Configuration, e, fhicl::ParameterSet::get(), and art::Suffixes::tool().

38  {
39  cet::BasicPluginFactory factory{
40  Suffixes::tool(), "toolFunction", "toolType"};
41  std::string const libspec{pset.get<std::string>("tool_type")};
42  tool_return_type<T> result;
43  try {
44  result = detail::tool_type<T>::make_plugin(
45  factory, libspec, pset, function_tool_type);
46  }
47  catch (cet::exception const& e) {
48  throw Exception(errors::Configuration, "make_tool: ", e)
49  << "Exception caught while processing plugin spec: " << libspec << '\n';
50  }
51  return result;
52  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
Float_t e
Definition: plot.C:34
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
template<typename T , typename TableConfig >
tool_return_type<T> art::make_tool ( TableConfig const &  tc,
std::string const &  function_tool_type 
)

Definition at line 56 of file make_tool.h.

57  {
58  if constexpr (std::is_class_v<T>) {
59  return make_tool<T>(tc.get_PSet());
60  } else if (std::is_function_v<T>) {
61  return make_tool<T>(tc.get_PSet(), function_tool_type);
62  }
63  }
static void art::markAncestors ( ProductProvenance const &  iInfo,
EventPrincipal e,
std::map< ProductID, bool > &  oMap,
std::set< ProductID > &  oMapperMissing 
)
static

Definition at line 52 of file ProvenanceCheckerOutput_module.cc.

References art::Principal::branchToProductProvenance(), art::ProductProvenance::parentage(), and art::Parentage::parents().

Referenced by art::ProvenanceCheckerOutput::write().

56  {
57  for (art::ProductID const parent : iInfo.parentage().parents()) {
58  // Don't look for parents if we've previously looked at the parents
59  if (oMap.find(parent) == oMap.end()) {
60  // use side effect of calling operator[] which is if the item isn't
61  // there it will add it as 'false'
62  oMap[parent];
63  cet::exempt_ptr<ProductProvenance const> pInfo =
64  e.branchToProductProvenance(parent);
65  if (pInfo.get()) {
66  markAncestors(*pInfo, e, oMap, oMapperMissing);
67  } else {
68  oMapperMissing.insert(parent);
69  }
70  }
71  }
72  }
static void markAncestors(ProductProvenance const &iInfo, EventPrincipal &e, std::map< ProductID, bool > &oMap, std::set< ProductID > &oMapperMissing)
Float_t e
Definition: plot.C:34
art::MFSU_0_ARG_UPDATER_DEFN ( PostBeginJob  )

Definition at line 85 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

86  {
87  mf::SetModuleName("PostBeginJob"s);
88  mf::SetIteration("BeforeEvents"s);
89  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PostEndJob  )

Definition at line 91 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

91 { mf::SetModuleName("PostEndJob"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreSourceSubRun  )

Definition at line 106 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

107  {
108  mf::SetModuleName("SourceSubRun"s);
109  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreSourceRun  )

Definition at line 116 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

116 { mf::SetModuleName("SourceRun"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreOpenFile  )

Definition at line 123 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

123 { mf::SetModuleName("OpenFile"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreCloseFile  )

Definition at line 127 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

127 { mf::SetModuleName("CloseFile"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PostCloseFile  )

Definition at line 129 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

130  {
131  mf::SetModuleName("PostCloseFile"s);
132  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostSourceConstruction  )

Definition at line 93 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

94  {
95  mf::SetModuleName("PostSourceConstruction"s);
96  mf::SetIteration("SourceConstruction"s);
97  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreSourceEvent  )

Definition at line 99 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

99 { mf::SetModuleName("SourceEvent"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostSourceSubRun  )

Definition at line 111 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

112  {
113  mf::SetModuleName("PostSourceSubRun"s);
114  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostSourceRun  )

Definition at line 118 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

119  {
120  mf::SetModuleName("PostSourceRun"s);
121  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostOpenFile  )

Definition at line 125 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

125 { mf::SetModuleName("PostOpenFile"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreBeginRun  )

Definition at line 147 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

148  {
149  mf::SetModuleName("BeginRun"s);
150  std::ostringstream os;
151  os << arg1.id();
152  mf::SetIteration(os.str());
153  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostBeginRun  )

Definition at line 155 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

155 { mf::SetModuleName("PostBeginRun"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostEndRun  )

Definition at line 165 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

165 { mf::SetModuleName("PostEndRun"s); }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreBeginSubRun  )

Definition at line 167 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

168  {
169  mf::SetModuleName("BeginSubRun"s);
170  std::ostringstream os;
171  os << arg1.id();
172  mf::SetIteration(os.str());
173  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostBeginSubRun  )

Definition at line 175 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

176  {
177  mf::SetModuleName("PostBeginSubRun"s);
178  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostEndSubRun  )

Definition at line 188 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

189  {
190  mf::SetModuleName("PostEndSubRun"s);
191  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreProcessPath  )

Definition at line 193 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

194  {
195  mf::SetModuleName("ProcessPath "s + arg1.pathName());
196  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathBeginRun  )

Definition at line 203 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

204  {
205  mf::SetModuleName("PathBeginRun "s + arg1);
206  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathEndRun  )

Definition at line 213 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

214  {
215  mf::SetModuleName("PathEndRun "s + arg1);
216  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathBeginSubRun  )

Definition at line 223 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

224  {
225  mf::SetModuleName("PathBeginSubRun "s + arg1);
226  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathEndSubRun  )

Definition at line 233 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

234  {
235  mf::SetModuleName("PathEndSubRun "s + arg1);
236  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleConstruction  )

Definition at line 243 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

244  {
245  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
246  "@Construction"s);
247  mf::SetIteration("ModuleConstruction"s);
248  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleConstruction  )

Definition at line 250 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

251  {
252  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
253  "@Construction"s);
254  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleBeginJob  )

Definition at line 261 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

262  {
263  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
264  "@BeginJob"s);
265  mf::SetIteration("ModuleBeginJob"s);
266  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleBeginJob  )

Definition at line 268 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

269  {
270  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
271  "@BeginJob"s);
272  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleEndJob  )

Definition at line 274 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

275  {
276  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
277  "@EndJob"s);
278  mf::SetIteration("ModuleEndJob"s);
279  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleEndJob  )

Definition at line 281 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

282  {
283  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
284  "@EndJob"s);
285  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModule  )

Definition at line 287 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

288  {
289  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
290  "@BeginModule"s);
291  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModule  )

Definition at line 293 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

294  {
295  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
296  "@EndModule"s);
297  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleBeginRun  )

Definition at line 299 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

300  {
301  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
302  "@BeginRun"s);
303  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleBeginRun  )

Definition at line 305 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

306  {
307  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
308  "@BeginRun"s);
309  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleEndRun  )

Definition at line 311 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

312  {
313  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
314  "@EndRun"s);
315  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleEndRun  )

Definition at line 317 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

318  {
319  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
320  "@EndRun"s);
321  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleBeginSubRun  )

Definition at line 323 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

324  {
325  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
326  "@BeginSubRun"s);
327  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleBeginSubRun  )

Definition at line 329 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

330  {
331  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
332  "@BeginSubRun"s);
333  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleEndSubRun  )

Definition at line 335 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

336  {
337  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
338  "@EndSubRun"s);
339  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleEndSubRun  )

Definition at line 341 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

342  {
343  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
344  "@EndSubRun"s);
345  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostSourceEvent  )

Definition at line 101 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

102  {
103  mf::SetModuleName("PostSourceEvent"s);
104  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PreProcessEvent  )

Definition at line 134 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

135  {
136  mf::SetModuleName("ProcessEvent"s);
137  std::ostringstream os;
138  os << arg1.id();
139  mf::SetIteration(os.str());
140  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostProcessEvent  )

Definition at line 142 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

143  {
144  mf::SetModuleName("PostProcessEvent"s);
145  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PreEndRun  )

Definition at line 157 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

158  {
159  mf::SetModuleName("EndRun"s);
160  std::stringstream os;
161  os << arg1;
162  mf::SetIteration(os.str());
163  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PreEndSubRun  )

Definition at line 180 of file MFStatusUpdater.cc.

References s, mf::SetIteration(), and mf::SetModuleName().

181  {
182  mf::SetModuleName("EndSubRun"s);
183  std::ostringstream os;
184  os << arg1;
185  mf::SetIteration(os.str());
186  }
Float_t s
Definition: plot.C:23
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostProcessPath  )

Definition at line 198 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

199  {
200  mf::SetModuleName("PostProcessPath "s + arg1.pathName());
201  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathBeginRun  )

Definition at line 208 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

209  {
210  mf::SetModuleName("PostPathBeginRun "s + arg1);
211  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathEndRun  )

Definition at line 218 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

219  {
220  mf::SetModuleName("PostPathEndRun "s + arg1);
221  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathBeginSubRun  )

Definition at line 228 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

229  {
230  mf::SetModuleName("PostPathBeginSubRun "s + arg1);
231  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathEndSubRun  )

Definition at line 238 of file MFStatusUpdater.cc.

References s, and mf::SetModuleName().

239  {
240  mf::SetModuleName("PostPathEndSubRun "s + arg1);
241  }
Float_t s
Definition: plot.C:23
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostBeginJobWorkers  )

Definition at line 256 of file MFStatusUpdater.cc.

References s.

257  {
258  throw cet::exception("InternalError"s) << "NOP: do not call";
259  }
Float_t s
Definition: plot.C:23
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
constexpr auto art::most_deeply_nested_level ( )
noexcept

Definition at line 44 of file Level.h.

References level_up(), and NumNestingLevels.

Referenced by is_above_most_deeply_nested_level(), is_most_deeply_nested_level(), and art::EventProcessor::readAndProcessAsync().

45  {
46  return level_up(Level::NumNestingLevels);
47  }
constexpr auto level_up(Level const l) noexcept
Definition: Level.h:38
std::string art::name_of_assns_base ( string  assns_type_name)

Definition at line 208 of file TypeID.cc.

References is_assns(), name_of_template_arg(), and s.

Referenced by art::detail::createProductLookups(), and is_assns().

209  {
210  string result;
211  if (!is_assns(assns_type_name)) {
212  return result;
213  }
214  using namespace std::string_literals;
215  static string const assns_start = "art::Assns<"s;
216  if (name_of_template_arg(assns_type_name, 2) == "void"s) {
217  // Doesn't have the base we're looking for.
218  return result;
219  }
220  result = assns_start + name_of_template_arg(assns_type_name, 0) + ',' +
221  name_of_template_arg(assns_type_name, 1) + ",void>";
222  return result;
223  }
Float_t s
Definition: plot.C:23
string name_of_template_arg(string const &template_instance, size_t desired_arg)
Definition: TypeID.cc:141
bool is_assns(std::string const &type_name)
Definition: TypeID.h:85
std::string art::name_of_assns_partner ( string  assns_type_name)

Definition at line 193 of file TypeID.cc.

References is_assns(), name_of_template_arg(), and s.

Referenced by is_assns().

194  {
195  string result;
196  if (!is_assns(assns_type_name)) {
197  return result;
198  }
199  static string const assns_start = "art::Assns<"s;
200  auto const arg0 = name_of_template_arg(assns_type_name, 0);
201  auto const arg1 = name_of_template_arg(assns_type_name, 1);
202  auto const arg2 = name_of_template_arg(assns_type_name, 2);
203  result = assns_start + arg1 + ',' + arg0 + ',' + arg2 + '>';
204  return result;
205  }
Float_t s
Definition: plot.C:23
string name_of_template_arg(string const &template_instance, size_t desired_arg)
Definition: TypeID.cc:141
bool is_assns(std::string const &type_name)
Definition: TypeID.h:85
std::string art::name_of_template_arg ( string const &  template_instance,
size_t  desired_arg 
)

Definition at line 141 of file TypeID.cc.

Referenced by is_assns(), name_of_assns_base(), name_of_assns_partner(), and name_of_unwrapped_product().

142  {
143  string result;
144  auto comma_count = 0ul;
145  auto template_level = 0ul;
146  auto arg_start = string::npos;
147  auto pos = 0ul;
148  pos = template_instance.find_first_of("<>,", pos);
149  while (pos != string::npos) {
150  switch (template_instance[pos]) {
151  case '<':
152  ++template_level;
153  if ((desired_arg == 0ul) && (template_level == 1ul)) {
154  // Found the begin of the desired template arg.
155  arg_start = pos + 1;
156  }
157  break;
158  case '>':
159  --template_level;
160  if ((desired_arg == comma_count) && (template_level == 0ul)) {
161  // Found the end of the desired template arg -- trim trailing
162  // whitespace
163  auto const arg_end =
164  template_instance.find_last_not_of(" \t", pos - 1) + 1;
165  result = template_instance.substr(arg_start, arg_end - arg_start);
166  return result;
167  }
168  break;
169  case ',':
170  if (template_level != 1ul) {
171  // Ignore arguments not at the first level.
172  break;
173  }
174  if (comma_count == desired_arg) {
175  // Found the end of the desired template arg.
176  result = template_instance.substr(arg_start, pos - arg_start);
177  return result;
178  }
179  ++comma_count;
180  if (comma_count == desired_arg) {
181  // Found the begin of the desired template arg.
182  arg_start = pos + 1;
183  }
184  break;
185  }
186  ++pos;
187  pos = template_instance.find_first_of("<>,", pos);
188  }
189  return result;
190  }
std::string art::name_of_unwrapped_product ( string const &  wrapped_name)

Definition at line 226 of file TypeID.cc.

References is_instantiation_of(), art::errors::LogicError, name_of_template_arg(), and s.

Referenced by is_assns().

227  {
228  using namespace std::string_literals;
229  if (!is_instantiation_of(wrapped_name, "art::Wrapper"s)) {
230  throw Exception(errors::LogicError, "Can't unwrap"s)
231  << "-- attempted to get unwrapped product from non-instance of art::Wrapper."s;
232  }
233  return name_of_template_arg(wrapped_name, 0);
234  }
Float_t s
Definition: plot.C:23
bool is_instantiation_of(std::string const &type_name, std::string const &template_name)
Definition: TypeID.h:72
string name_of_template_arg(string const &template_instance, size_t desired_arg)
Definition: TypeID.cc:141
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
template<class A >
std::enable_if_t< std::is_base_of_v< art::SelectorBase, A >, art::NotHelper< A > > art::operator! ( A const &  a)

Definition at line 277 of file Selector.h.

278 {
279  return art::NotHelper<A>(a);
280 }
bool art::operator!= ( BranchKey const &  a,
BranchKey const &  b 
)
inline

Definition at line 82 of file BranchKey.h.

83 {
84  return !(a == b);
85 }
bool art::operator!= ( FileFormatVersion const &  a,
FileFormatVersion const &  b 
)
inline

Definition at line 34 of file FileFormatVersion.h.

References ff, and operator<<().

35  {
36  return !(a == b);
37  }
bool art::operator!= ( ScheduleID const  left,
ScheduleID const  right 
)
noexcept

Definition at line 43 of file ScheduleID.cc.

References left(), and right().

44  {
45  return !(left == right);
46  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:104
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:96
bool art::operator!= ( ProcessConfiguration const &  a,
ProcessConfiguration const &  b 
)

Definition at line 65 of file ProcessConfiguration.cc.

66  {
67  return !(a == b);
68  }
bool art::operator!= ( Parentage const &  a,
Parentage const &  b 
)

Definition at line 70 of file Parentage.cc.

71  {
72  return !(a == b);
73  }
bool art::operator!= ( RefCore const &  lhs,
RefCore const &  rhs 
)

Definition at line 101 of file RefCore.cc.

102  {
103  return !(lhs == rhs);
104  }
template<class X , class Y >
bool art::operator!= ( debugging_allocator< X > const &  ,
debugging_allocator< Y > const &   
)
throw (
)

Definition at line 108 of file debugging_allocator.h.

Referenced by art::const_AssnsIter< L, R, D, Dir >::const_AssnsIter(), and is_assns().

110  {
111  return false;
112  }
bool art::operator!= ( ProductProvenance const &  a,
ProductProvenance const &  b 
)
noexcept

Definition at line 108 of file ProductProvenance.cc.

109  {
110  return !(a == b);
111  }
bool art::operator!= ( InputTag const &  left,
InputTag const &  right 
)

Definition at line 109 of file InputTag.cc.

References right().

110  {
111  return !(left == right);
112  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:104
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:96
bool art::operator!= ( TypeID const &  a,
TypeID const &  b 
)

Definition at line 122 of file TypeID.cc.

123  {
124  return !(a == b);
125  }
bool art::operator!= ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 260 of file ProcessHistory.cc.

261  {
262  return !(a == b);
263  }
template<typename T , typename U >
std::enable_if_t<std::is_same_v<T, U> || std::is_base_of_v<T, U> || std::is_base_of_v<U, T>, bool> art::operator!= ( Ptr< T > const &  lhs,
Ptr< U > const &  rhs 
)

Definition at line 271 of file Ptr.h.

272  {
273  return !(lhs == rhs);
274  }
bool art::operator!= ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 446 of file FileIndex.cc.

447  {
448  return lh < rh || rh < lh;
449  }
template<class A , class B >
std::enable_if_t< std::is_base_of_v< art::SelectorBase, A > &&std::is_base_of_v< art::SelectorBase, B >, art::AndHelper< A, B > > art::operator&& ( A const &  a,
B const &  b 
)

Definition at line 209 of file Selector.h.

210 {
211  return art::AndHelper<A, B>(a, b);
212 }
bool art::operator< ( EventProcessHistoryID const &  lh,
EventProcessHistoryID const &  rh 
)
inline

Definition at line 17 of file EventProcessHistoryID.h.

References art::EventProcessHistoryID::eventID_.

18  {
19  return lh.eventID_ < rh.eventID_;
20  }
bool art::operator< ( BranchKey const &  a,
BranchKey const &  b 
)
inline

Definition at line 62 of file BranchKey.h.

References art::BranchKey::branchType_, art::BranchKey::friendlyClassName_, art::BranchKey::moduleLabel_, art::BranchKey::processName_, and art::BranchKey::productInstanceName_.

63 {
64  return std::tie(a.friendlyClassName_,
65  a.moduleLabel_,
66  a.productInstanceName_,
67  a.processName_,
68  a.branchType_) < std::tie(b.friendlyClassName_,
69  b.moduleLabel_,
70  b.productInstanceName_,
71  b.processName_,
72  b.branchType_);
73 }
bool art::operator< ( TypeLabel const &  a,
TypeLabel const &  b 
)

Definition at line 45 of file TypeLabel.cc.

References art::TypeLabel::className(), art::TypeLabel::emulatedModule_, art::TypeLabel::hasEmulatedModule(), and art::TypeLabel::productInstanceName_.

46  {
47  auto const& a_class_name = a.className();
48  auto const& b_class_name = b.className();
49  auto const& a_emulated_module =
50  a.hasEmulatedModule() ? *a.emulatedModule_ : "<none>";
51  auto const& b_emulated_module =
52  b.hasEmulatedModule() ? *b.emulatedModule_ : "<none>";
53  return std::tie(a_emulated_module, a.productInstanceName_, a_class_name) <
54  std::tie(b_emulated_module, b.productInstanceName_, b_class_name);
55  }
bool art::operator< ( ProductInfo const &  a,
ProductInfo const &  b 
)

Definition at line 49 of file ProductInfo.cc.

50  {
51  auto const& boundA = tie(a.consumableType,
52  a.friendlyClassName,
53  a.label,
54  a.instance,
55  a.process.name());
56  auto const& boundB = tie(b.consumableType,
57  b.friendlyClassName,
58  b.label,
59  b.instance,
60  b.process.name());
61  return boundA < boundB;
62  }
bool art::operator< ( ProcessConfiguration const &  a,
ProcessConfiguration const &  b 
)

Definition at line 71 of file ProcessConfiguration.cc.

References art::ProcessConfiguration::parameterSetID(), art::ProcessConfiguration::processName(), and art::ProcessConfiguration::releaseVersion().

72  {
73  return std::tie(a.processName(), a.parameterSetID(), a.releaseVersion()) <
74  std::tie(b.processName(), b.parameterSetID(), b.releaseVersion());
75  }
bool art::operator< ( RefCore const &  lhs,
RefCore const &  rhs 
)

Definition at line 107 of file RefCore.cc.

References art::RefCore::id().

108  {
109  return lhs.id() < rhs.id();
110  }
bool art::operator< ( ProductProvenance const &  a,
ProductProvenance const &  b 
)
noexcept

Definition at line 116 of file ProductProvenance.cc.

117  {
118  return a.productID() < b.productID();
119  }
bool art::operator< ( BranchDescription const &  a,
BranchDescription const &  b 
)

Definition at line 247 of file BranchDescription.cc.

References art::BranchDescription::branchType(), art::BranchDescription::friendlyClassName(), art::BranchDescription::moduleLabel(), art::BranchDescription::processConfigurationIDs(), art::BranchDescription::processName(), art::BranchDescription::producedClassName(), art::BranchDescription::productID(), art::BranchDescription::productInstanceName(), and art::BranchDescription::psetIDs().

248  {
249  if (a.processName() < b.processName()) {
250  return true;
251  }
252  if (b.processName() < a.processName()) {
253  return false;
254  }
255  if (a.producedClassName() < b.producedClassName()) {
256  return true;
257  }
258  if (b.producedClassName() < a.producedClassName()) {
259  return false;
260  }
261  if (a.friendlyClassName() < b.friendlyClassName()) {
262  return true;
263  }
264  if (b.friendlyClassName() < a.friendlyClassName()) {
265  return false;
266  }
267  if (a.productInstanceName() < b.productInstanceName()) {
268  return true;
269  }
270  if (b.productInstanceName() < a.productInstanceName()) {
271  return false;
272  }
273  if (a.moduleLabel() < b.moduleLabel()) {
274  return true;
275  }
276  if (b.moduleLabel() < a.moduleLabel()) {
277  return false;
278  }
279  if (a.branchType() < b.branchType()) {
280  return true;
281  }
282  if (b.branchType() < a.branchType()) {
283  return false;
284  }
285  if (a.productID() < b.productID()) {
286  return true;
287  }
288  if (b.productID() < a.productID()) {
289  return false;
290  }
291  if (a.psetIDs() < b.psetIDs()) {
292  return true;
293  }
294  if (b.psetIDs() < a.psetIDs()) {
295  return false;
296  }
297  if (a.processConfigurationIDs() < b.processConfigurationIDs()) {
298  return true;
299  }
300  if (b.processConfigurationIDs() < a.processConfigurationIDs()) {
301  return false;
302  }
303  return false;
304  }
template<typename T , typename U >
std::enable_if_t<std::is_same_v<T, U> || std::is_base_of_v<T, U> || std::is_base_of_v<U, T>, bool> art::operator< ( Ptr< T > const &  lhs,
Ptr< U > const &  rhs 
)

Definition at line 280 of file Ptr.h.

281  {
282  // The ordering of integer keys guarantees that the ordering of Ptrs within
283  // a collection will be identical to the ordering of the referenced objects
284  // in the collection.
285  return (lhs.refCore() == rhs.refCore()) ? (lhs.key() < rhs.key()) :
286  (lhs.refCore() < rhs.refCore());
287  }
bool art::operator< ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 415 of file FileIndex.cc.

References art::FileIndex::Element::eventID_.

416  {
417  bool const result = lh.eventID_ < rh.eventID_;
418  return result;
419  }
std::ostream & art::operator<< ( std::ostream &  os,
ParameterSetBlob const &  blob 
)

Definition at line 8 of file ParameterSetBlob.cc.

References art::ParameterSetBlob::pset_.

9  {
10  os << blob.pset_;
11  return os;
12  }
std::ostream& art::operator<< ( std::ostream &  os,
OutputFileStatus const  ofs 
)
inline

Definition at line 11 of file OutputFileStatus.h.

References Closed, art::errors::LogicError, Open, and Switching.

12  {
13  switch (ofs) {
14  case OutputFileStatus::Open:
15  return os << "Open";
16  case OutputFileStatus::Switching:
17  return os << "Switching";
18  case OutputFileStatus::Closed:
19  return os << "Closed";
20  default:
22  "Unknown output file status."};
23  }
24  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::ostream & art::operator<< ( std::ostream &  os,
SubRunID const &  iID 
)

Definition at line 6 of file SubRunID.cc.

References art::SubRunID::isFlush(), art::SubRunID::isValid(), art::SubRunID::run_, and art::SubRunID::subRun_.

7 {
8  os << iID.run_ << " subRun: ";
9  if (iID.isFlush()) {
10  os << "FLUSH";
11  } else if (iID.isValid()) {
12  os << iID.subRun_;
13  } else {
14  os << "INVALID";
15  }
16  return os;
17 }
std::ostream & art::operator<< ( std::ostream &  os,
EventID const &  iID 
)

Definition at line 7 of file EventID.cc.

References art::EventID::event_, art::EventID::isFlush(), art::EventID::isValid(), and art::EventID::subRun_.

8 {
9  os << iID.subRun_ << " event: ";
10  if (iID.isFlush()) {
11  os << "FLUSH";
12  } else if (iID.isValid()) {
13  os << iID.event_;
14  } else {
15  os << "INVALID";
16  }
17  return os;
18 }
ostream & art::operator<< ( std::ostream &  os,
const GroupSelector gs 
)

Definition at line 65 of file GroupSelector.cc.

References art::GroupSelector::print().

Referenced by is_assns(), operator!=(), and art::MallocOpts::operator!=().

66 {
67  gs.print(os);
68  return os;
69 }
void print(std::ostream &os) const
std::ostream & art::operator<< ( std::ostream &  os,
art::RunID const &  iID 
)

Definition at line 6 of file RunID.cc.

References art::RunID::isFlush(), art::RunID::isValid(), and art::RunID::run_.

7 {
8  os << "run: ";
9  if (iID.isFlush()) {
10  os << "FLUSH";
11  } else if (iID.isValid()) {
12  os << iID.run_;
13  } else {
14  os << "INVALID";
15  }
16  return os;
17 }
std::ostream & art::operator<< ( std::ostream &  ost,
const MallocOpts opts 
)

Definition at line 24 of file MallocOpts.cc.

References art::MallocOpts::mmap_max_, art::MallocOpts::mmap_thr_, art::MallocOpts::top_pad_, and art::MallocOpts::trim_thr_.

25  {
26  ost << "mmap_max=" << opts.mmap_max_ << " trim_threshold=" << opts.trim_thr_
27  << " top_padding=" << opts.top_pad_
28  << " mmap_threshold=" << opts.mmap_thr_;
29  return ost;
30  }
std::ostream& art::operator<< ( std::ostream &  os,
BranchType const  branchType 
)
inline

Definition at line 29 of file BranchType.h.

References BranchTypeToString().

30  {
31  return os << BranchTypeToString(branchType);
32  }
std::string const & BranchTypeToString(BranchType const bt)
Definition: BranchType.cc:65
std::ostream & art::operator<< ( std::ostream &  os,
BranchKey const &  bk 
)

Definition at line 30 of file BranchKey.cc.

References art::BranchKey::branchType_, art::BranchKey::friendlyClassName_, art::BranchKey::moduleLabel_, art::BranchKey::processName_, and art::BranchKey::productInstanceName_.

31  {
32  os << "BranchKey(" << bk.friendlyClassName_ << ", " << bk.moduleLabel_
33  << ", " << bk.productInstanceName_ << ", " << bk.processName_ << ", "
34  << static_cast<BranchType>(bk.branchType_) << ')';
35  return os;
36  }
BranchType
Definition: BranchType.h:18
std::ostream & art::operator<< ( std::ostream &  os,
ProductID const  id 
)

Definition at line 30 of file ProductID.cc.

31  {
32  os << id.value();
33  return os;
34  }
std::ostream & art::operator<< ( std::ostream &  os,
FileFormatVersion const &  ff 
)

Definition at line 5 of file FileFormatVersion.cc.

References art::FileFormatVersion::era_, and art::FileFormatVersion::value_.

6 {
7  os << (ff.era_.empty() ? "" : (ff.era_ + ": ")) << ff.value_;
8  return os;
9 }
TFile ff[ntarg]
Definition: Style.C:26
std::ostream& art::operator<< ( std::ostream &  os,
SampledEventInfo const &  eventInfo 
)
inline

Definition at line 42 of file SampledInfo.h.

References art::SampledEventInfo::dataset, art::SampledEventInfo::id, art::SampledEventInfo::probability, and art::SampledEventInfo::weight.

43  {
44  os << "Sampled EventID: '" << eventInfo.id << "' Dataset: '"
45  << eventInfo.dataset << "' Weight: " << eventInfo.weight
46  << " Probability: " << eventInfo.probability;
47  return os;
48  }
std::ostream& art::operator<< ( std::ostream &  ost,
HLTGlobalStatus const &  hlt 
)
std::ostream & art::operator<< ( ostream &  os,
Parentage const &   
)

Definition at line 57 of file Parentage.cc.

58  {
59  // Unimplemented
60  return os;
61  }
std::ostream & art::operator<< ( std::ostream &  os,
TypeLabel const &  tl 
)

Definition at line 58 of file TypeLabel.cc.

References art::TypeLabel::className(), art::TypeLabel::emulatedModule(), art::TypeLabel::hasEmulatedModule(), art::TypeLabel::productInstanceName(), art::TypeLabel::supportsView(), and art::TypeLabel::transient().

59  {
60  os << "Emulated module: '"
61  << (tl.hasEmulatedModule() ? tl.emulatedModule() : "<none>") << "'\n"
62  << "Product instance name: '" << tl.productInstanceName() << "'\n"
63  << "Class name: '" << tl.className() << "'\n"
64  << "Supports views: '" << std::boolalpha << tl.supportsView()
65  << '\n'
66  << "Transient: '" << tl.transient();
67  return os;
68  }
std::ostream & art::operator<< ( ostream &  os,
ProductInfo::ConsumableType const  ct 
)

Definition at line 65 of file ProductInfo.cc.

References art::ProductInfo::Many, art::ProductInfo::Product, and art::ProductInfo::ViewElement.

66  {
67  switch (ct) {
68  case ProductInfo::ConsumableType::Product:
69  os << "Product";
70  break;
71  case ProductInfo::ConsumableType::ViewElement:
72  os << "ViewElement";
73  break;
74  case ProductInfo::ConsumableType::Many:
75  os << "Many";
76  break;
77  }
78  return os;
79  }
std::ostream & art::operator<< ( ostream &  os,
ScheduleID const  sid 
)

Definition at line 67 of file ScheduleID.cc.

References art::ScheduleID::id().

68  {
69  return os << sid.id();
70  }
template<typename T >
std::ostream& art::operator<< ( std::ostream &  os,
ServiceTable< T > const &  t 
)
inline

Definition at line 71 of file ServiceTable.h.

References fhicl::Table< T, KeysToIgnore >::print_allowed_configuration().

72  {
73  std::ostringstream config;
74  t.print_allowed_configuration(config, std::string(3, ' '));
75  return os << config.str();
76  }
std::ostream& art::operator<< ( std::ostream &  os,
suffix_type const  st 
)
inline

Definition at line 72 of file PluginSuffixes.h.

73  {
74  return os << static_cast<std::underlying_type_t<suffix_type>>(st);
75  }
template<typename UserConfig , typename ImplicitConfig >
std::ostream& art::operator<< ( std::ostream &  os,
ProducerTable< UserConfig, ImplicitConfig > const &  t 
)
inline

Definition at line 73 of file ProducerTable.h.

References art::ProducerTable< UserConfig, ImplicitConfig, UserKeysToIgnore >::print_allowed_configuration().

75  {
76  std::ostringstream config;
77  t.print_allowed_configuration(config, std::string(3, ' '));
78  return os << config.str();
79  }
std::ostream& art::operator<< ( std::ostream &  os,
Level const  l 
)
inline

Definition at line 80 of file Level.h.

References Event, InputFile, Job, NumNestingLevels, ReadyToAdvance, Run, SubRun, and underlying_value().

81  {
82  switch (l) {
83  case Level::Job:
84  os << "Job";
85  break;
86  case Level::InputFile:
87  os << "InputFile";
88  break;
89  case Level::Run:
90  os << "Run";
91  break;
92  case Level::SubRun:
93  os << "SubRun";
94  break;
95  case Level::Event:
96  os << "Event";
97  break;
98  case Level::NumNestingLevels:
99  os << underlying_value(Level::NumNestingLevels);
100  break;
101  case Level::ReadyToAdvance:
102  os << "ReadyToAdvance";
103  break;
104  }
105  return os;
106  }
constexpr auto underlying_value(Level const l) noexcept
Definition: Level.h:26
std::ostream & art::operator<< ( ostream &  os,
ProductInfo const &  info 
)

Definition at line 82 of file ProductInfo.cc.

83  {
84  os << "Consumable type: " << info.consumableType << '\n'
85  << "Friendly class name: " << info.friendlyClassName << '\n'
86  << "Module label: " << info.label << '\n'
87  << "Instance name: " << info.instance << '\n'
88  << "Process name: " << info.process.name() << '\n';
89  return os;
90  }
std::ostream& art::operator<< ( std::ostream &  os,
Granularity const &  b 
)
inline

Definition at line 85 of file OutputFileGranularity.h.

References art::Granularity::Event, art::Granularity::InputFile, art::Granularity::Job, art::Granularity::Run, art::Granularity::SubRun, and art::Granularity::Unset.

86  {
87  std::string token{"Unset"};
88  switch (b()) {
89  case Granularity::Event:
90  token = "Event";
91  break;
92  case Granularity::SubRun:
93  token = "SubRun";
94  break;
95  case Granularity::Run:
96  token = "Run";
97  break;
98  case Granularity::InputFile:
99  token = "InputFile";
100  break;
101  case Granularity::Job:
102  token = "Job";
103  break;
104  case Granularity::Unset:;
105  }
106  os << token;
107  return os;
108  }
constexpr BitMask< Storage > Unset(Flag_t< Storage > flag)
Returns a bit mask which unsets the specified flag.
std::ostream & art::operator<< ( std::ostream &  os,
ProcessConfiguration const &  pc 
)

Definition at line 85 of file ProcessConfiguration.cc.

References art::ProcessConfiguration::parameterSetID(), art::ProcessConfiguration::processName(), and art::ProcessConfiguration::releaseVersion().

86  {
87  os << pc.processName() << ' ' << pc.parameterSetID() << ' '
88  << pc.releaseVersion()
89  << ' '; // Retain the last space for backwards compatibility
90  return os;
91  }
std::ostream & art::operator<< ( ostream &  os,
ProductProvenance const &  p 
)

Definition at line 86 of file ProductProvenance.cc.

References art::ProductProvenance::write().

87  {
88  p.write(os);
89  return os;
90  }
std::ostream & art::operator<< ( ostream &  os,
TypeID const &  tid 
)

Definition at line 134 of file TypeID.cc.

References art::TypeID::print().

135  {
136  tid.print(os);
137  return os;
138  }
std::ostream & art::operator<< ( ostream &  os,
const EventAuxiliary p 
)

Definition at line 146 of file EventAuxiliary.cc.

References art::EventAuxiliary::write().

147  {
148  p.write(os);
149  return os;
150  }
std::ostream & art::operator<< ( std::ostream &  os,
ModuleDescription const &  p 
)

Definition at line 148 of file ModuleDescription.cc.

References art::ModuleDescription::write().

149  {
150  p.write(os);
151  return os;
152  }
std::ostream & art::operator<< ( ostream &  os,
InputTag const &  tag 
)

Definition at line 148 of file InputTag.cc.

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

149  {
150  static string const process(", process = ");
151  os << "InputTag: label = " << tag.label()
152  << ", instance = " << tag.instance()
153  << (tag.process().empty() ? string() : (process + tag.process()));
154  return os;
155  }
std::ostream & art::operator<< ( ostream &  os,
Provenance const &  p 
)

Definition at line 155 of file Provenance.cc.

References art::Provenance::write().

156  {
157  return p.write(os);
158  }
ostream& art::operator<< ( ostream &  ost,
const HLTGlobalStatus hlt 
)

Definition at line 182 of file HLTGlobalStatus.cc.

References n, s, art::HLTGlobalStatus::size(), and art::HLTGlobalStatus::state().

183  {
184  vector<string> text{"n"s, "1"s, "0"s, "e"s};
185  unsigned const n(hlt.size());
186  for (auto i = 0U; i < n; ++i) {
187  ost << text.at(hlt.state(i));
188  }
189  return ost;
190  }
Float_t s
Definition: plot.C:23
Char_t n[5]
std::ostream & art::operator<< ( ostream &  os,
SubRunAuxiliary const &  p 
)

Definition at line 188 of file SubRunAuxiliary.cc.

References art::SubRunAuxiliary::write().

189  {
190  p.write(os);
191  return os;
192  }
std::ostream & art::operator<< ( ostream &  os,
FileProperties const &  fp 
)

Definition at line 226 of file ClosingCriteria.cc.

References art::FileProperties::age(), art::FileProperties::nEvents(), art::FileProperties::nInputFiles(), art::FileProperties::nRuns(), art::FileProperties::nSubRuns(), and art::FileProperties::size().

227  {
228  os << "[nEvents: " << fp.nEvents() << ", nSubRuns: " << fp.nSubRuns()
229  << ", nRuns: " << fp.nRuns() << ", nInputFiles: " << fp.nInputFiles()
230  << ", size: " << fp.size() << ", age: " << fp.age().count() << "]";
231  return os;
232  }
FILE * fp
Definition: plot.C:36
std::ostream & art::operator<< ( ostream &  os,
const RunAuxiliary p 
)

Definition at line 229 of file RunAuxiliary.cc.

References art::RunAuxiliary::write().

230  {
231  p.write(os);
232  return os;
233  }
std::ostream & art::operator<< ( ostream &  os,
EventRange const &  r 
)

Definition at line 231 of file EventRange.cc.

References art::EventRange::begin(), art::EventRange::end(), art::EventRange::is_full_subRun(), and art::EventRange::subRun().

232  {
233  os << "SubRun: " << r.subRun();
234  if (r.is_full_subRun()) {
235  os << " (full sub-run)";
236  } else {
237  os << " Event range: [" << r.begin() << ',' << r.end() << ')';
238  }
239  return os;
240  }
template<int I>
std::ostream& art::operator<< ( std::ostream &  os,
Hash< I > const &  h 
)

Definition at line 248 of file Hash.h.

249  {
250  return h.print(os);
251  }
std::ostream & art::operator<< ( ostream &  ost,
ProcessHistory const &  ph 
)

Definition at line 291 of file ProcessHistory.cc.

292  {
293  ost << "Process History = ";
294  copy_all(ph, ostream_iterator<ProcessHistory::value_type>(ost, ";"));
295  return ost;
296  }
template<typename T >
std::ostream& art::operator<< ( std::ostream &  os,
Ptr< T > const &  p 
)

Definition at line 312 of file Ptr.h.

313  {
314  os << "(" << p.id() << ", " << p.key() << ")";
315  return os;
316  }
std::ostream & art::operator<< ( std::ostream &  os,
BranchDescription const &  p 
)

Definition at line 326 of file BranchDescription.cc.

References art::BranchDescription::write().

327  {
328  p.write(os);
329  return os;
330  }
std::ostream & art::operator<< ( std::ostream &  os,
MixHelper::Mode  mode 
)

Definition at line 121 of file MixHelper.cc.

References art::MixHelper::RANDOM_LIM_REPLACE, art::MixHelper::RANDOM_NO_REPLACE, art::MixHelper::RANDOM_REPLACE, art::MixHelper::SEQUENTIAL, and art::MixHelper::UNKNOWN.

122 {
123  switch (mode) {
124  case MixHelper::Mode::SEQUENTIAL:
125  return os << "SEQUENTIAL";
126  case MixHelper::Mode::RANDOM_REPLACE:
127  return os << "RANDOM_REPLACE";
128  case MixHelper::Mode::RANDOM_LIM_REPLACE:
129  return os << "RANDOM_LIM_REPLACE";
130  case MixHelper::Mode::RANDOM_NO_REPLACE:
131  return os << "RANDOM_NO_REPLACE";
133  return os << "UNKNOWN";
134  // No default so compiler can warn.
135  }
136  return os;
137 }
std::ostream & art::operator<< ( ostream &  os,
FileIndex::Element const &  el 
)

Definition at line 469 of file FileIndex.cc.

References art::FileIndex::Element::entry_, and art::FileIndex::Element::eventID_.

470  {
471  os << el.eventID_ << ": entry# " << el.entry_;
472  return os;
473  }
std::ostream & art::operator<< ( ostream &  os,
FileIndex const &  fileIndex 
)

Definition at line 476 of file FileIndex.cc.

References e, art::FileIndex::kEvent, art::FileIndex::kRun, and art::FileIndex::kSubRun.

477  {
478  os << "\nPrinting FileIndex contents. This includes a list of all Runs, "
479  "SubRuns\n"
480  << "and Events stored in the root file.\n\n";
481  os << setw(15) << "Run" << setw(15) << "SubRun" << setw(15) << "Event"
482  << setw(15) << "TTree Entry"
483  << "\n";
484  for (auto const& e : fileIndex) {
485  if (e.getEntryType() == FileIndex::kEvent) {
486  os << setw(15) << e.eventID_.run() << setw(15) << e.eventID_.subRun()
487  << setw(15) << e.eventID_.event() << setw(15) << e.entry_ << "\n";
488  } else if (e.getEntryType() == FileIndex::kSubRun) {
489  os << setw(15) << e.eventID_.run() << setw(15) << e.eventID_.subRun()
490  << setw(15) << " " << setw(15) << e.entry_ << " (SubRun)"
491  << "\n";
492  } else if (e.getEntryType() == FileIndex::kRun) {
493  os << setw(15) << e.eventID_.run() << setw(15) << " " << setw(15) << " "
494  << setw(15) << e.entry_ << " (Run)"
495  << "\n";
496  }
497  }
498  return os;
499  }
Float_t e
Definition: plot.C:34
std::ostream & art::operator<< ( ostream &  os,
RangeSet const &  rs 
)

Definition at line 478 of file RangeSet.cc.

References art::RangeSet::is_full_run(), art::RangeSet::ranges(), and art::RangeSet::run().

479  {
480  os << " Run: " << rs.run();
481  if (rs.is_full_run()) {
482  os << " (full run)";
483  return os;
484  }
485  for (auto const& er : rs.ranges()) {
486  os << "\n " << er;
487  }
488  return os;
489  }
template<typename PROD >
std::ostream& art::operator<< ( std::ostream &  os,
Handle< PROD > const &  h 
)

Definition at line 947 of file DataViewImpl.h.

948  {
949  os << h.product() << " " << h.provenance() << " " << h.id();
950  return os;
951  }
bool art::operator<= ( ScheduleID const  left,
ScheduleID const  right 
)
noexcept

Definition at line 49 of file ScheduleID.cc.

References left(), and right().

50  {
51  return ((left < right) || (left == right));
52  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:104
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:96
bool art::operator<= ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 434 of file FileIndex.cc.

435  {
436  return !(rh < lh);
437  }
bool art::operator== ( BranchKey const &  a,
BranchKey const &  b 
)
inline

Definition at line 76 of file BranchKey.h.

77 {
78  return !(a < b || b < a);
79 }
bool art::operator== ( FileFormatVersion const &  a,
FileFormatVersion const &  b 
)
inline

Definition at line 28 of file FileFormatVersion.h.

References art::FileFormatVersion::value_.

29  {
30  return a.value_ == b.value_;
31  }
bool art::operator== ( Parentage const &  a,
Parentage const &  b 
)

Definition at line 64 of file Parentage.cc.

References art::Parentage::parents().

65  {
66  return a.parents() == b.parents();
67  }
bool art::operator== ( ProcessConfiguration const &  a,
ProcessConfiguration const &  b 
)

Definition at line 78 of file ProcessConfiguration.cc.

References art::ProcessConfiguration::parameterSetID(), art::ProcessConfiguration::processName(), and art::ProcessConfiguration::releaseVersion().

79  {
80  return std::tie(a.processName(), a.parameterSetID(), a.releaseVersion()) ==
81  std::tie(b.processName(), b.parameterSetID(), b.releaseVersion());
82  }
bool art::operator== ( ProductProvenance const &  a,
ProductProvenance const &  b 
)
noexcept

Definition at line 93 of file ProductProvenance.cc.

94  {
95  if (a.noParentage() != b.noParentage()) {
96  return false;
97  }
98  if (a.noParentage()) {
99  return (a.productID() == b.productID()) &&
100  (a.productStatus() == b.productStatus());
101  }
102  return (a.productID() == b.productID()) &&
103  (a.productStatus() == b.productStatus()) &&
104  (a.parentageID() == b.parentageID());
105  }
bool art::operator== ( RefCore const &  lhs,
RefCore const &  rhs 
)

Definition at line 95 of file RefCore.cc.

References art::RefCore::id().

96  {
97  return lhs.id() == rhs.id();
98  }
template<class X , class Y >
bool art::operator== ( debugging_allocator< X > const &  ,
debugging_allocator< Y > const &   
)
throw (
)

Definition at line 100 of file debugging_allocator.h.

102  {
103  return true;
104  }
bool art::operator== ( Provenance const &  a,
Provenance const &  b 
)

Definition at line 139 of file Provenance.cc.

References art::Provenance::equals().

Referenced by art::const_AssnsIter< L, R, D, Dir >::const_AssnsIter(), and art::RangeSet::emplace_range().

140  {
141  return a.equals(b);
142  }
bool art::operator== ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 254 of file ProcessHistory.cc.

References art::ProcessHistory::data().

255  {
256  return a.data() == b.data();
257  }
template<typename T , typename U >
std::enable_if_t<std::is_same_v<T, U> || std::is_base_of_v<T, U> || std::is_base_of_v<U, T>, bool> art::operator== ( Ptr< T > const &  lhs,
Ptr< U > const &  rhs 
)

Definition at line 262 of file Ptr.h.

References art::Ptr< T >::key(), and art::Ptr< T >::refCore().

263  {
264  return (lhs.refCore() == rhs.refCore()) && (lhs.key() == rhs.key());
265  }
bool art::operator== ( BranchDescription const &  a,
BranchDescription const &  b 
)

Definition at line 319 of file BranchDescription.cc.

References art::BranchDescription::combinable, art::BranchDescription::processConfigurationIDs(), and art::BranchDescription::psetIDs().

320  {
321  return combinable(a, b) && (a.psetIDs() == b.psetIDs()) &&
322  (a.processConfigurationIDs() == b.processConfigurationIDs());
323  }
bool combinable(BranchDescription const &a, BranchDescription const &b)
bool art::operator== ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 400 of file RangeSet.cc.

References art::RangeSet::is_valid(), art::RangeSet::ranges(), and art::RangeSet::run().

401  {
402  if (!(l.is_valid() && r.is_valid())) {
403  return false;
404  }
405  return (l.run() == r.run()) && (l.ranges() == r.ranges());
406  }
bool art::operator== ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 440 of file FileIndex.cc.

441  {
442  return !(lh < rh || rh < lh);
443  }
bool art::operator> ( ScheduleID const  left,
ScheduleID const  right 
)
noexcept

Definition at line 55 of file ScheduleID.cc.

References left(), and right().

Referenced by art::const_AssnsIter< L, R, D, Dir >::const_AssnsIter(), and is_assns().

56  {
57  return !(left <= right);
58  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:104
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:96
bool art::operator> ( TypeID const &  a,
TypeID const &  b 
)

Definition at line 116 of file TypeID.cc.

117  {
118  return b < a;
119  }
bool art::operator> ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 422 of file FileIndex.cc.

423  {
424  return rh < lh;
425  }
bool art::operator>= ( ScheduleID const  left,
ScheduleID const  right 
)
noexcept

Definition at line 61 of file ScheduleID.cc.

References left(), and right().

Referenced by art::const_AssnsIter< L, R, D, Dir >::const_AssnsIter().

62  {
63  return !(left < right);
64  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:104
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:96
bool art::operator>= ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 428 of file FileIndex.cc.

429  {
430  return !(lh < rh);
431  }
template<class A , class B >
std::enable_if_t< std::is_base_of_v< art::SelectorBase, A > &&std::is_base_of_v< art::SelectorBase, B >, art::OrHelper< A, B > > art::operator|| ( A const &  a,
B const &  b 
)

Definition at line 245 of file Selector.h.

246 {
247  return art::OrHelper<A, B>(a, b);
248 }
template<class T , class U >
std::enable_if_t<detail::are_handles<T, U>::value, bool> art::overlapping_ranges ( T const &  a,
U const &  b 
)
template<class T , class U >
bool art::overlapping_ranges ( SummedValue< T > const &  a,
SummedValue< U > const &  b 
)

Definition at line 189 of file SummedValue.h.

References overlapping_ranges(), and art::SummedValue< T >::rangeOfValidity().

190  {
191  return overlapping_ranges(a.rangeOfValidity(), b.rangeOfValidity());
192  }
bool overlapping_ranges(SummedValue< T > const &a, SummedValue< U > const &b)
Definition: SummedValue.h:189
bool art::overlapping_ranges ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 469 of file RangeSet.cc.

References disjoint_ranges(), and art::RangeSet::is_valid().

470  {
471  if (!(l.is_valid() && r.is_valid())) {
472  return false;
473  }
474  return !disjoint_ranges(l, r);
475  }
bool disjoint_ranges(RangeSet const &l, RangeSet const &r)
Definition: RangeSet.cc:415
std::string art::parent_path ( std::string const &  path)

Definition at line 15 of file parent_path.cc.

16 {
17  std::string result;
18  boost::filesystem::path parent_path(
19  boost::filesystem::path(in_path).parent_path());
20  if (parent_path.empty()) {
21  result = ".";
22  } else {
23  result = parent_path.native();
24  }
25  return result;
26 }
std::string parent_path(std::string const &path)
Definition: parent_path.cc:15
template<typename T1 , typename T2 >
std::enable_if_t<std::is_same<T1, T2>::value || std::is_base_of<T1, T2>::value || std::is_base_of<T2, T1>::value, bool> art::pointersEqual ( T1 *  t1,
T2 *  t2 
)
inline

Definition at line 15 of file pointersEqual.h.

References t2, and fhicl::detail::atom::value().

16  {
17  return t1 == t2;
18  }
TTree * t1
Definition: plottest35.C:26
TTree * t2
Definition: plottest35.C:36
template<typename T1 , typename T2 >
std::enable_if_t<!std::is_same<T1, T2>::value && !std::is_base_of<T1, T2>::value && !std::is_base_of<T2, T1>::value, bool> art::pointersEqual ( T1 *  ,
T2 *   
)

Definition at line 26 of file pointersEqual.h.

References art::errors::LogicError.

27  {
29  << "Tried to compare two incompatible pointers.\n";
30  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
void art::printArtException ( cet::exception const &  e,
char const *  prog 
)

Definition at line 13 of file ExceptionMessages.cc.

Referenced by run_art(), and run_art_common_().

13  {
14  std::string programName(prog ? prog : "program");
15  std::string shortDesc("ArtException");
16  std::ostringstream longDesc;
17  longDesc << "cet::exception caught in " << programName << "\n"
18  << cet::trim_right_copy(e.explain_self(), " \n");
19  LogSystem(shortDesc) << longDesc.str();
20  }
21  catch (...) {
22  }
MaybeLogger_< ELseverityLevel::ELsev_severe, false > LogSystem
Float_t e
Definition: plot.C:34
void art::printBadAllocException ( char const *  prog)

Definition at line 25 of file ExceptionMessages.cc.

Referenced by run_art(), and run_art_common_().

25  {
26  std::string programName(prog ? prog : "program");
27  std::string shortDesc("std::bad_allocException");
28  std::ostringstream longDesc;
29  longDesc
30  << "std::bad_alloc exception caught in " << programName << "\n"
31  << "The job has probably exhausted the virtual memory available to "
32  "the process.";
33  LogSystem(shortDesc) << longDesc.str();
34  }
35  catch (...) {
36  }
MaybeLogger_< ELseverityLevel::ELsev_severe, false > LogSystem
void art::printStdException ( std::exception const &  e,
char const *  prog 
)

Definition at line 39 of file ExceptionMessages.cc.

Referenced by run_art(), and run_art_common_().

39  {
40  std::string programName(prog ? prog : "program");
41  std::string shortDesc("StdLibException");
42  std::ostringstream longDesc;
43  longDesc << "Standard library exception caught in " << programName << "\n"
44  << cet::trim_right_copy(e.what(), " \n");
45  LogSystem(shortDesc) << longDesc.str();
46  }
47  catch (...) {
48  }
MaybeLogger_< ELseverityLevel::ELsev_severe, false > LogSystem
Float_t e
Definition: plot.C:34
void art::printUnknownException ( char const *  prog)

Definition at line 51 of file ExceptionMessages.cc.

Referenced by run_art(), and run_art_common_().

51  {
52  std::string programName(prog ? prog : "program");
53  std::string shortDesc("UnknownException");
54  std::ostringstream longDesc;
55  longDesc << "Unknown exception caught in " << programName;
56  LogSystem(shortDesc) << longDesc.str();
57  }
58  catch (...) {
59  }
MaybeLogger_< ELseverityLevel::ELsev_severe, false > LogSystem
std::string const & art::productProvenanceBranchName ( BranchType const  bt)

Definition at line 91 of file BranchType.cc.

92  {
93  return select(bt,
94  {&eventProductProvenance,
95  &subRunProductProvenance,
96  &runProductProvenance,
97  &resultsProductProvenance});
98  }
template<typename T , typename P >
std::enable_if_t<!detail::range_sets_supported(P::branch_type)> art::put_product_in_principal ( std::unique_ptr< T > &&  product,
P &  principal,
std::string const &  module_label,
std::string const &  instance_name = {} 
)

Definition at line 43 of file put_product_in_principal.h.

References canonicalProductName(), art::errors::NullPointerError, art::productstatus::present(), and art::errors::ProductPutFailure.

Referenced by lris::LArRawInputDriver::readNext(), lris::LArRawInputDriverShortBo::readNext(), lris::LArRawInputDriverLongBo::readNext(), and lris::LArRawInputDriverJP250L::readNext().

46  {})
47  {
48  TypeID const typeID{typeid(T)};
49  if (product.get() == nullptr) {
51  << "put_product_in_principal: A null unique_ptr was passed to 'put'.\n"
52  << "The pointer is of type " << typeID << ".\n"
53  << "The specified product instance name was '" << instance_name
54  << "'.\n";
55  }
56 
57  auto const& process_name = principal.processConfiguration().processName();
58  auto const& product_name = canonicalProductName(
59  typeID.friendlyClassName(), module_label, instance_name, process_name);
60  ProductID const pid{product_name};
61  auto desc = principal.getProductDescription(pid);
62  if (!desc) {
64  "put_product_in_principal: error while trying to "
65  "retrieve product description:\n")
66  << "No product is registered for\n"
67  << " process name: '" << process_name << "'\n"
68  << " module label: '" << module_label << "'\n"
69  << " product friendly class name: '" << typeID.friendlyClassName()
70  << "'\n"
71  << " product instance name: '" << instance_name << "'\n"
72  << " branch type: '" << principal.branchType()
73  << "'\n";
74  }
75 
76  std::unique_ptr<EDProduct> wp = std::make_unique<Wrapper<T>>(move(product));
77  principal.put(
78  *desc,
79  std::make_unique<ProductProvenance const>(pid, productstatus::present()),
80  move(wp),
81  std::make_unique<RangeSet>());
82  }
std::string canonicalProductName(std::string const &friendlyClassName, std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName)
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr ProductStatus present() noexcept
Definition: ProductStatus.h:10
template<typename T , typename P >
std::enable_if_t<detail::range_sets_supported(P::branch_type)> art::put_product_in_principal ( std::unique_ptr< T > &&  product,
P &  principal,
std::string const &  module_label,
std::string const &  instance_name = {},
RangeSet &&  rs = RangeSet::invalid() 
)

Definition at line 86 of file put_product_in_principal.h.

References canonicalProductName(), art::RangeSet::invalid(), art::RangeSet::is_valid(), art::errors::NullPointerError, art::productstatus::present(), art::errors::ProductPutFailure, and rangeSetFor().

89  {},
90  RangeSet&& rs = RangeSet::invalid())
91  {
92  TypeID const typeID{typeid(T)};
93  if (product.get() == nullptr) {
95  << "put_product_in_principal: A null unique_ptr was passed to 'put'.\n"
96  << "The pointer is of type " << typeID << ".\n"
97  << "The specified product instance name was '" << instance_name
98  << "'.\n";
99  }
100 
101  auto const& process_name = principal.processConfiguration().processName();
102  auto const& product_name = canonicalProductName(
103  typeID.friendlyClassName(), module_label, instance_name, process_name);
104  ProductID const pid{product_name};
105  auto desc = principal.getProductDescription(pid);
106  if (!desc) {
108  "put_product_in_principal: error while trying to "
109  "retrieve product description:\n")
110  << "No product is registered for\n"
111  << " process name: '" << process_name << "'\n"
112  << " module label: '" << module_label << "'\n"
113  << " product friendly class name: '" << typeID.friendlyClassName()
114  << "'\n"
115  << " product instance name: '" << instance_name << "'\n"
116  << " branch type: '" << principal.branchType()
117  << "'\n";
118  }
119 
120  // If the provided RangeSet is invalid, assign it a RangeSet
121  // corresponding to the full (Sub)Run.
122  if (!rs.is_valid()) {
123  rs = rangeSetFor(principal);
124  }
125  std::unique_ptr<EDProduct> wp = std::make_unique<Wrapper<T>>(move(product));
126  principal.put(
127  *desc,
128  std::make_unique<ProductProvenance const>(pid, productstatus::present()),
129  move(wp),
130  std::make_unique<RangeSet>(rs));
131  }
RangeSet rangeSetFor(SubRunPrincipal const &srp)
std::string canonicalProductName(std::string const &friendlyClassName, std::string const &moduleLabel, std::string const &productInstanceName, std::string const &processName)
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr ProductStatus present() noexcept
Definition: ProductStatus.h:10
template<class T >
std::enable_if_t<detail::is_handle<T>::value, RangeSet const&> art::range_of_validity ( T const &  h)
RangeSet art::rangeSetFor ( RunPrincipal const &  rp)
inline

Definition at line 30 of file put_product_in_principal.h.

References art::RangeSet::forRun(), and art::Principal::runID().

Referenced by put_product_in_principal().

31  {
32  return RangeSet::forRun(rp.runID());
33  }
RangeSet art::rangeSetFor ( SubRunPrincipal const &  srp)
inline

Definition at line 36 of file put_product_in_principal.h.

References art::RangeSet::forSubRun(), and art::Principal::subRunID().

37  {
38  return RangeSet::forSubRun(srp.subRunID());
39  }
std::vector< std::vector< std::string >::const_iterator > art::regexMatch ( std::vector< std::string > const &  strings,
std::regex const &  regexp 
)

Definition at line 27 of file RegexMatch.cc.

Referenced by art::EventSelector::init(), and regexMatch().

28  {
30  for (auto i = strings.begin(), iEnd = strings.end(); i != iEnd; ++i) {
31  if (std::regex_match((*i), regexp)) {
32  matches.push_back(i);
33  }
34  }
35  return matches;
36  }
intermediate_table::const_iterator const_iterator
std::vector< std::vector< std::string >::const_iterator > art::regexMatch ( std::vector< std::string > const &  strings,
std::string const &  pattern 
)

Definition at line 39 of file RegexMatch.cc.

References glob2reg(), and regexMatch().

41  {
42  std::regex const regexp{glob2reg(pattern)};
43  return regexMatch(strings, regexp);
44  }
std::vector< std::vector< std::string >::const_iterator > regexMatch(std::vector< std::string > const &strings, std::string const &pattern)
Definition: RegexMatch.cc:39
std::string glob2reg(std::string pattern)
Definition: RegexMatch.cc:19
template<typename L , typename R , typename D , Direction Dir>
constexpr auto const& art::right ( const_AssnsIter< L, R, D, Dir > const &  a,
const_AssnsIter< L, R, D, Dir > const &  b 
)

Definition at line 104 of file AssnsIter.h.

References Forward.

Referenced by cluster::ClusterAna::analyze(), pfpf::PFPAna::analyze(), lar_cluster3d::ConvexHullPathFinder::breakClusterAtBigGap(), lar_cluster3d::ConvexHullPathFinder::breakClusterByKinks(), lar_cluster3d::ConvexHullPathFinder::breakClusterByKinksTrial(), lar_cluster3d::ConvexHullPathFinder::breakClusterByMaxDefect(), lar_cluster3d::ConvexHullPathFinder::breakClusterInHalf(), lar_cluster3d::ClusterPathFinder::breakIntoTinyBits(), lar_cluster3d::VoronoiPathFinder::breakIntoTinyBits(), lar_cluster3d::ClusterPathFinder::buildConvexHull(), lar_cluster3d::ConvexHullPathFinder::buildConvexHull(), lar_cluster3d::VoronoiPathFinder::buildConvexHull(), lar_cluster3d::StandardHit3DBuilder::BuildHit3D(), lar_cluster3d::kdTree::BuildKdTree(), lar_cluster3d::ClusterPathFinder::buildVoronoiDiagram(), lar_cluster3d::VoronoiPathFinder::buildVoronoiDiagram(), util::details::RangeForWrapperIterator< BeginIter, EndIter >::Comparer::ComparerImpl< A, B, std::enable_if_t< std::is_convertible< decltype(std::declval< A >()!=std::declval< B >()), bool >::value > >::compare(), voronoi2d::compareSiteEventPtrs(), voronoi2d::VoronoiDiagram::ComputeFaceArea(), evdb_tool::DrawGausHits::Draw(), recob::dumper::DumpPCAxis(), art::RangeSet::emplace_range(), cluster::TrajCluster::endJob(), lar_cluster3d::ClusterParamsBuilder::FillClusterParams(), lar_cluster3d::MinSpanTreeAlg::FindBestPathInCluster(), voronoi2d::VoronoiDiagram::findBoundingBox(), lar_cluster3d::StandardHit3DBuilder::findGoodTriplets(), reco_tool::CandHitDerivative::findHitCandidates(), reco_tool::CandHitMorphological::findHitCandidates(), reco_tool::WaveformTools::findPeaks(), mf::service::ELdestination::formSummary(), voronoi2d::VoronoiDiagram::getConvexHull(), G4THitsCollection< T >::GetSize(), reco_tool::WaveformTools::getTruncatedMeanRMS(), lar_cluster3d::Hit3DCompare(), lar_cluster3d::Cluster3D::MakeAndSavePCAPoints(), evd::SimulationDrawer::MCTruthLongText(), lar_cluster3d::ClusterMergeAlg::ModifyClusters(), operator!=(), util::flags::operator!=(), art::SortInvalidFirst< T >::operator()(), art::const_AssnsIter< L, R, D, Dir >::operator<(), util::flags::operator<(), recob::operator<<(), reco::operator<<(), util::flags::operator<<(), operator<=(), art::const_AssnsIter< L, R, D, Dir >::operator<=(), util::flags::operator<=(), util::flags::operator==(), operator>(), art::const_AssnsIter< L, R, D, Dir >::operator>(), util::flags::operator>(), operator>=(), art::const_AssnsIter< L, R, D, Dir >::operator>=(), util::flags::operator>=(), lar_cluster3d::ConvexHullPathFinder::orderHitsAlongEdge(), lar_cluster3d::PrincipalComponentsAlg::PCAAnalysis_3D(), tca::Print2V(), tca::Print3V(), tca::PrintAllTraj(), trkf::CCTrackMaker::PrintClusters(), cluster::ClusterCrawlerAlg::PrintClusters(), tca::PrintP(), tca::PrintPFP(), trkf::CCTrackMaker::PrintTracks(), cluster::ClusterCrawlerAlg::PrintVertices(), hit::GausHitFinder::produce(), boost::python::detail::proxy_group< Proxy >::replace(), lar_content::LArPcaHelper::RunPca(), lar_cluster3d::MinSpanTreeAlg::RunPrimsAlgorithm(), sort_pred(), sort_pred2(), trkf::CCTrackMaker::SortMatches(), art::RangeSet::split_range(), lar_cluster3d::Cluster3D::splitClustersWithMST(), hit::CCHitFinderAlg::StudyHits(), lar_cluster3d::VoronoiPathFinder::subDivideCluster(), throw_if_not_disjoint(), art::detail::triggerReport(), and util::flags::Bits_t< Storage_t >::unsetBits().

106  {
107  return (Dir == Direction::Forward) ? b : a;
108  }
int art::run_art ( int  argc,
char **  argv,
bpo::options_description &  in_desc,
cet::filepath_maker &  lookupPolicy,
OptionsHandlers &&  handlers 
)

Definition at line 142 of file run_art.cc.

References e, art::detail::exists_outside_prolog(), fhicl::intermediate_table::get(), fhicl::make_ParameterSet(), printArtException(), printBadAllocException(), printStdException(), printUnknownException(), art::detail::prune_config_if_enabled(), fhicl::ParameterSetRegistry::put(), and run_art_common_().

Referenced by artapp(), and mu2eapp().

147  {
148  ostringstream descstr;
149  descstr << "\nUsage: "
150  << boost::filesystem::path(argv[0]).filename().native()
151  << " <-c <config-file>> <other-options> [<source-file>]+\n\n"
152  << "Basic options";
153  bpo::options_description all_desc{descstr.str()};
154  all_desc.add(in_desc);
155  // BasicOptionsHandler should always be first in the list!
156  handlers.emplace(handlers.begin(),
157  new BasicOptionsHandler{all_desc, lookupPolicy});
158  // BasicPostProcessor should be last.
159  handlers.emplace_back(new BasicPostProcessor);
160  // This must be added separately: how to deal with any non-option arguments.
161  bpo::positional_options_description pd;
162  // A single non-option argument will be taken to be the source data file.
163  pd.add("source", -1);
164  // Parse the command line.
165  bpo::variables_map vm;
166  try {
167  bpo::store(bpo::command_line_parser(argc, argv)
168  .options(all_desc)
169  .positional(pd)
170  .run(),
171  vm);
172  bpo::notify(vm);
173  }
174  catch (bpo::error const& e) {
175  cerr << "Exception from command line processing in " << argv[0] << ": "
176  << e.what() << "\n";
177  return 88;
178  }
179  // Preliminary argument checking.
180  for (auto& handler : handlers) {
181  auto result = handler->checkOptions(vm);
182  if (result != 0) {
183  return result;
184  }
185  }
186  // Processing of arguments and post-processing of config.
187  fhicl::intermediate_table raw_config;
188  for (auto& handler : handlers) {
189  auto result = handler->processOptions(vm, raw_config);
190  if (result != 0) {
191  return result;
192  }
193  }
194 
195  // If configuration pruning has been enabled, remove unused module
196  // configurations.
198  std::map<std::string, detail::ModuleKeyAndType> enabled_modules;
199  assert(exists_outside_prolog(raw_config, "services.scheduler"));
200  try {
201  std::string const pruneConfig{"services.scheduler.pruneConfig"};
202  bool