LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
art Namespace Reference

Namespaces

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

Classes

class  ActionTable
 
class  ActivityRegistry
 
class  AndHelper
 
class  Assns
 
class  Assns< L, R, void >
 
struct  AssnsNode
 
class  BasicOptionsHandler
 
class  BasicOutputOptionsHandler
 
class  BasicPostProcessor
 
class  BasicSourceOptionsHandler
 
class  BlockingPrescaler
 
class  BoolCache
 
class  BranchChildren
 
class  BranchDescription
 
class  BranchID
 
struct  BranchKey
 
struct  CannotGetView
 
class  CatalogInterface
 
class  ClosedRangeSetHandler
 
class  ClosingCriteria
 
struct  Compare_Run_SubRun_EventEntry
 
class  ComparePtrs
 
class  ComposedSelectorWrapper
 
class  const_AssnsIter
 
class  ConstPtrCache
 
class  ConsumesCollector
 
class  ConsumesInfo
 
class  DatabaseConnection
 
class  DataFlow
 
class  DebugOptionsHandler
 
struct  DebugTasksValue
 
struct  DebugValue
 
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  Event
 
class  EventAuxiliary
 
class  EventID
 
class  EventIDFilter
 
class  EventIDMatcher
 
class  EventPrincipal
 
struct  EventProcessHistoryID
 
class  EventProcessor
 
class  EventRange
 
class  EventSelector
 
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  GlobalTaskGroup
 
class  Granularity
 
class  Group
 
class  GroupQueryResult
 
class  GroupSelector
 
class  GroupSelectorRules
 
class  Handle
 
struct  has_getView
 
struct  enable_if_function_exists_t< void(T::*)(std::vector< void const * > &), &T::getView >
 
struct  has_mapped_type
 
struct  has_mapped_type< T, std::void_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, std::void_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
 
class  InputTagListSelector
 
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  MaybeGetView
 
struct  MaybeGetView< cet::map_vector< T > >
 
struct  MaybeGetView< std::deque< T, A > >
 
struct  MaybeGetView< std::list< T, A > >
 
struct  MaybeGetView< std::set< T, A > >
 
struct  MaybeGetView< std::vector< bool, A > >
 
struct  MaybeGetView< std::vector< T, A > >
 
struct  MaybeGetView< T, std::enable_if_t< has_getView< 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
 
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  PathID
 
class  PathManager
 
class  PathsInfo
 
struct  PathSpec
 
class  PerScheduleContainer
 
class  PostCloseFileRenamer
 
class  Prescaler
 
struct  prevent_recursion
 
struct  prevent_recursion< Sampled< T > >
 
class  Principal
 
class  PrincipalBase
 
class  ProcessConfiguration
 
class  ProcessHistory
 
class  ProcessingFrame
 
class  ProcessingLimits
 
class  ProcessingOptionsHandler
 
class  ProcessNameSelector
 
class  ProcessTag
 
class  ProdToProdMapBuilder
 
class  ProducerTable
 
class  ProducesCollector
 
class  ProducingService
 
class  ProducingServiceSignals
 
class  ProductID
 
class  ProductInfo
 
class  ProductInserter
 
class  ProductInstanceNameSelector
 
class  ProductProvenance
 
class  ProductPtr
 
struct  ProductRegistry
 
class  ProductRegistryHelper
 
class  ProductRetriever
 
struct  ProductTable
 
class  ProductTables
 
class  ProductToken
 
class  Provenance
 
class  ProvenanceCheckerOutput
 
class  ProvenanceDumper
 
class  ProvenanceDumper< DETAIL, std::void_t< typename DETAIL::Config > >
 
struct  ProvenanceDumperConfig
 
struct  ProvenanceDumperConfig< DETAIL, std::void_t< typename DETAIL::Config > >
 
class  Ptr
 
class  PtrMaker
 
class  PtrRemapper
 
class  PtrVector
 
class  PtrVectorBase
 
class  PutHandle
 
class  RandomNumberGenerator
 
class  RandomNumberSaver
 
struct  RangedFragmentSemantic
 
class  RangeSet
 
class  RangeSetHandler
 
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  SelectorByFunction
 
class  ServiceHandle
 
class  ServiceRegistry
 
class  ServicesManager
 
class  ServiceTable
 
class  SharedAnalyzer
 
class  SharedException
 
class  SharedFilter
 
class  SharedProducer
 
class  SortInvalidFirst
 
class  Source
 
struct  Source_generator
 
struct  Source_wantFileServices
 
class  SourceHelper
 
class  SourceTable
 
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
 
class  TriggerPathsExecutor
 
class  TriggerResultInserter
 
class  TriggerResults
 
class  TrivialFileDelivery
 
class  TrivialFileTransfer
 
struct  tuple_element
 
struct  tuple_element< I, AssnsNode< L, R, D > >
 
class  TypeID
 
class  TypeLabel
 
class  UpdateOutputCallbacks
 
class  ValidHandle
 
class  View
 
class  ViewToken
 
class  Worker
 
class  WorkerInPath
 
struct  WorkerParams
 
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 group_ptr_t = cet::exempt_ptr< Group >
 
using exception_ptr_t = std::shared_ptr< art::Exception const >
 
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 >
 
using BranchIDList = std::vector< BranchID::value_type >
 
using BranchIDLists = std::vector< BranchIDList >
 
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 >
 
using ParameterSetMap = std::map< fhicl::ParameterSetID, ParameterSetBlob >
 
using ParentageID = Hash< ParentageType >
 
using ParentageRegistry = thread_safe_registry_via_id< ParentageID, Parentage >
 
using ProcessConfigurations = std::vector< ProcessConfiguration >
 
using ProcessConfigurationID = Hash< ProcessConfigurationType >
 
using ProcessHistoryMap = std::map< ProcessHistoryID const, ProcessHistory >
 
using ProcessHistoryID = Hash< ProcessHistoryType >
 
using ProductList = std::map< BranchKey, BranchDescription >
 
using ProductProvenances = std::vector< ProductProvenance >
 
using ProductStatus = unsigned char
 
using ReleaseVersion = std::string
 
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  product_creation_mode { product_creation_mode::produces, product_creation_mode::reconstitutes }
 
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::SHARED }
 
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)
 
int run_art (int argc, char **argv, bpo::options_description &all_desc, OptionsHandlers &&handlers)
 
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::string const &pattern)
 
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)
 
std::optional< GroupQueryResultresolve_unique_product (std::vector< cet::exempt_ptr< art::Group >> const &product_groups, art::WrappedTypeID const &wrapped)
 
std::vector< GroupQueryResultresolve_products (std::vector< cet::exempt_ptr< art::Group >> const &groups, art::TypeID const &wrapped_type)
 
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_v< T >, RangeSet const & > range_of_validity (T const &h)
 
template<class T , class U >
std::enable_if_t< detail::are_handles_v< T, U >, bool > same_ranges (T const &a, U const &b)
 
template<class T , class U >
std::enable_if_t< detail::are_handles_v< T, U >, bool > disjoint_ranges (T const &a, U const &b)
 
template<class T , class U >
std::enable_if_t< detail::are_handles_v< T, U >, 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)
 
template<typename PROD >
std::ostream & operator<< (std::ostream &os, Handle< PROD > const &h)
 
bool operator== (Provenance const &a, Provenance const &b) noexcept
 
ostream & operator<< (ostream &os, Provenance const &p)
 
template<typename A , typename B >
std::enable_if_t< is_selector< A > &&is_selector< B >, AndHelper< A, B > > operator&& (A const &a, B const &b)
 
template<typename A , typename B >
std::enable_if_t< is_selector< A > &&is_selector< B >, OrHelper< A, B > > operator|| (A const &a, B const &b)
 
template<typename A >
std::enable_if_t< is_selector< A >, 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)
 
constexpr bool is_legacy (ServiceScope const scope) noexcept
 
constexpr bool is_shared (ServiceScope const scope) noexcept
 
template<typename T >
std::ostream & operator<< (std::ostream &os, ServiceTable< T > const &t)
 
template<typename CONTAINER >
void 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)
 
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)
 
std::pair< std::string, std::string > split_process_and_path_names (std::string path_spec)
 
PathSpec path_spec (std::string const &path_spec)
 
std::vector< PathSpecpath_specs (std::vector< std::string > const &path_spec_strs)
 
std::string to_string (PathID const id)
 
std::string to_string (PathSpec const &spec)
 
std::ostream & operator<< (std::ostream &os, PathSpec const &spec)
 
auto to_tuple (PathSpec const &spec) noexcept
 
bool operator== (PathSpec const &a, PathSpec const &b)
 
bool operator< (PathSpec const &a, PathSpec const &b)
 
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 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)
 
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 H >
 ProductPtr (H) -> ProductPtr< typename H::element_type >
 
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== (ProductPtr< T > const &lhs, ProductPtr< 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!= (ProductPtr< T > const &lhs, ProductPtr< 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< (ProductPtr< T > const &lhs, ProductPtr< U > const &rhs)
 
template<typename T >
std::ostream & operator<< (std::ostream &os, ProductPtr< T > const &p)
 
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 H , typename T >
 Ptr (H, T) -> Ptr< detail::not_map_vector_t< typename H::element_type >>
 
template<typename T >
void swap (PtrVector< T > &, PtrVector< T > &)
 
void swap (RefCore &lhs, RefCore &rhs)
 
constexpr bool operator== (RefCore const &lhs, RefCore const &rhs) noexcept
 
constexpr bool operator!= (RefCore const &lhs, RefCore const &rhs) noexcept
 
constexpr bool operator< (RefCore const &lhs, RefCore const &rhs) noexcept
 
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)
 
template<typename T >
void const * address_of (T const &t) noexcept
 
template<typename T >
void const * address_of_second (typename cet::map_vector< T >::value_type const &t) noexcept
 
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)
 
std::ostream & operator<< (std::ostream &os, BranchID const &id)
 
std::ostream & operator<< (std::ostream &os, EventAuxiliary const &p)
 
std::ostream & operator<< (std::ostream &, const EventAuxiliary &)
 
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)
 
bool operator== (FileIndex const &lh, FileIndex const &rh)
 
bool operator!= (FileIndex const &lh, FileIndex 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)
 
ProductDescriptions 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)
 
std::ostream & operator<< (std::ostream &os, ResultsAuxiliary const &p)
 
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

template<typename T >
constexpr bool is_selector
 
template<typename T >
detail::SharedResource_t SharedResource {typeid(T).name(), true}
 
DebugTasksValue debugTasks
 
std::atomic< int > shutdown_flag {0}
 
DebugValue debugit
 

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.

using art::BranchIDList = typedef std::vector<BranchID::value_type>

Definition at line 17 of file BranchIDList.h.

using art::BranchIDLists = typedef std::vector<BranchIDList>

Definition at line 18 of file BranchIDList.h.

Definition at line 25 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.

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

Definition at line 66 of file Exception.h.

using art::exception_ptr_t = typedef std::shared_ptr<art::Exception const>

Definition at line 22 of file GroupQueryResult.h.

using art::group_ptr_t = typedef cet::exempt_ptr<Group>

Definition at line 21 of file GroupQueryResult.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 26 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 10 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.

using art::ProcessHistoryMap = typedef std::map<ProcessHistoryID const, ProcessHistory>

Definition at line 143 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 10 of file types.h.

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

Definition at line 289 of file BranchDescription.h.

Definition at line 290 of file BranchDescription.h.

using art::ProductList = typedef std::map<BranchKey, BranchDescription>

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 53 of file ProductProvenance.h.

using art::ProductStatus = typedef unsigned char

Definition at line 6 of file ProductStatus.h.

using art::ReleaseVersion = typedef std::string

Definition at line 7 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 14 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 20 of file BranchType.h.

enum art::Direction : int
strong
Enumerator
Forward 
Reverse 

Definition at line 12 of file types.h.

12 : int { Forward = 1, Reverse = -1 };
void Reverse(PFPStruct &pfp)
Definition: PFPUtils.cxx:2354
Enumerator
SUCCESS 
NO_MORE_FILES 
DELIVERY_ERROR 
TRANSFER_ERROR 

Definition at line 23 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 
SHARED 

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 59 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

template<typename T >
void const* art::address_of ( T const &  t)
noexcept

Definition at line 123 of file traits.h.

124  {
125  return &t;
126  }
template<typename T >
void const* art::address_of_second ( typename cet::map_vector< T >::value_type const &  t)
noexcept

Definition at line 130 of file traits.h.

131  {
132  return &t.second;
133  }
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::ProductInserter::getProductDescription_(), art::ProductRetriever::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 315 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().

316  {
317  return (a.branchType() == b.branchType()) &&
318  (a.processName() == b.processName()) &&
319  (a.producedClassName() == b.producedClassName()) &&
320  (a.friendlyClassName() == b.friendlyClassName()) &&
321  (a.productInstanceName() == b.productInstanceName()) &&
322  (a.moduleLabel() == b.moduleLabel()) &&
323  (a.productID() == b.productID());
324  }
template<typename CONTAINER >
void art::concatContainers ( CONTAINER &  out,
CONTAINER const &  in 
)

Definition at line 254 of file CollectionUtilities.h.

References art::detail::TwoArgInsert< CONTAINER >::concatenate().

Referenced by flattenCollections().

255 {
257  detail::TwoArgInsert<CONTAINER>::concatenate(out, in);
258  } else {
259  static_assert(detail::has_three_arg_insert<CONTAINER>);
260  out.insert(out.end(), in.begin(), in.end());
261  }
262 }
double value
Definition: spectrum.C:18
ifstream in
Definition: comparison.C:7
template<class T >
void art::convert_handle ( GroupQueryResult const &  orig,
Handle< T > &  result 
)

Definition at line 280 of file Handle.h.

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

281 {
282  Handle<T> h{orig};
283  result.swap(h);
284 }
void art::decode ( std::any const &  a,
InputTag tag 
)

Definition at line 117 of file InputTag.cc.

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

118  {
120  vector<string> tmp;
121  fhicl::detail::decode(a, tmp);
122  if (tmp.size() == 2) {
123  tag = {tmp[0], tmp[1]};
124  } else if (tmp.size() == 3) {
125  tag = {tmp[0], tmp[1], tmp[2]};
126  } else {
127  ostringstream errmsg;
128  errmsg << "When converting to InputTag by a sequence, FHiCL entries "
129  "must follow the convention:\n\n"
130  << " [ label, instance ], or\n"
131  << " [ label, instance, process_name ].\n\n";
132  errmsg << "FHiCL entries provided: [ ";
133  for (auto ca = tmp.begin(); ca != tmp.cend(); ++ca) {
134  errmsg << *ca;
135  if (ca != tmp.cend() - 1) {
136  errmsg << ", ";
137  }
138  }
139  errmsg << " ]";
140  throw length_error(errmsg.str());
141  }
142  } else {
143  string tmp;
144  fhicl::detail::decode(a, tmp);
145  tag = tmp;
146  }
147  }
Float_t tmp
Definition: plot.C:35
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_v<T, U>, 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 193 of file SummedValue.h.

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

194  {
195  return disjoint_ranges(a.rangeOfValidity(), b.rangeOfValidity());
196  }
bool disjoint_ranges(SummedValue< T > const &a, SummedValue< U > const &b)
Definition: SummedValue.h:193
bool art::disjoint_ranges ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 414 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().

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

78  {
79  static_assert(std::is_pointer_v<WANTED_POINTER>,
80  "Supplied template argument is not a pointer.");
81  return detail::EnsurePointer<
82  WANTED_POINTER,
83  typename std::iterator_traits<InputIterator>::value_type>{}(*it);
84 }
85 catch (std::bad_cast&) {
86  throw Exception(errors::LogicError, "ensurePointer")
87  << "Iterator value type "
88  << cet::demangle_symbol(
89  typeid(typename std::iterator_traits<InputIterator>::value_type)
90  .name())
91  << " and wanted pointer type "
92  << cet::demangle_symbol(typeid(WANTED_POINTER).name())
93  << " are incompatible.\n";
94 }
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 exists(std::string const &key) const
bool putEmptyTable(std::string const &name, bool in_prolog=false)
template<>
void art::EventProcessor::begin< Level::InputFile > ( )
inline

Definition at line 294 of file EventProcessor.cc.

References art::EventProcessor::openInputFile().

295  {
296  openInputFile();
297  }
template<>
void art::EventProcessor::begin< Level::Job > ( )
inline

Definition at line 286 of file EventProcessor.cc.

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

287  {
288  timer_->start();
289  beginJob();
290  }
void beginJob()
Definition: Breakpoints.cc:14
template<>
void art::EventProcessor::begin< Level::Run > ( )

Definition at line 301 of file EventProcessor.cc.

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

302  {
303  readRun();
304 
305  // We only enable run finalization if reading was successful.
306  // This appears to be a design weakness.
307  finalizeRunEnabled_ = true;
308  if (handleEmptyRuns_) {
309  beginRun();
310  }
311  }
template<>
void art::EventProcessor::begin< Level::SubRun > ( )

Definition at line 315 of file EventProcessor.cc.

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

316  {
317  assert(runPrincipal_);
318  assert(runPrincipal_->runID().isValid());
319  readSubRun();
320 
321  // We only enable subrun finalization if reading was successful.
322  // This appears to be a design weakness.
323  finalizeSubRunEnabled_ = true;
324  if (handleEmptySubRuns_) {
325  beginRunIfNotDoneAlready();
326  beginSubRun();
327  }
328  }

Definition at line 376 of file EventProcessor.cc.

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

377  {
378  if (nextLevel_.load() == Level::Job) {
379  closeAllFiles();
380  } else {
381  closeInputFile();
382  }
383  }
template<>
void art::EventProcessor::finalize< Level::Job > ( )

Definition at line 387 of file EventProcessor.cc.

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

388  {
389  endJob();
390  timer_->stop();
391  }
template<>
void art::EventProcessor::finalize< Level::Run > ( )

Definition at line 354 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().

355  {
356  if (!finalizeRunEnabled_) {
357  return;
358  }
359 
360  assert(runPrincipal_);
361  if (runPrincipal_->runID().isFlush()) {
362  return;
363  }
364 
365  openSomeOutputFiles();
366  setRunAuxiliaryRangeSetID();
367  if (beginRunCalled_) {
368  endRun();
369  }
370  writeRun();
371  finalizeRunEnabled_ = false;
372  }

Definition at line 332 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().

333  {
334  if (!finalizeSubRunEnabled_) {
335  return;
336  }
337 
338  assert(subRunPrincipal_);
339  if (subRunPrincipal_->subRunID().isFlush()) {
340  return;
341  }
342 
343  openSomeOutputFiles();
344  setSubRunAuxiliaryRangeSetID();
345  if (beginSubRunCalled_) {
346  endSubRun();
347  }
348  writeSubRun();
349  finalizeSubRunEnabled_ = false;
350  }

Definition at line 402 of file EventProcessor.cc.

403  {
404  finalize<Level::SubRun>();
405  finalize<Level::Run>();
406  }

Definition at line 395 of file EventProcessor.cc.

396  {
397  finalize<Level::Run>();
398  }

Definition at line 424 of file EventProcessor.cc.

References art::Granularity::Event, art::EventProcessor::main_schedule(), and art::Schedule::recordOutputClosureRequests().

425  {
426  main_schedule().recordOutputClosureRequests(Granularity::Event);
427  }

Definition at line 410 of file EventProcessor.cc.

References art::EventProcessor::main_schedule(), art::Schedule::recordOutputClosureRequests(), and art::Granularity::Run.

411  {
412  main_schedule().recordOutputClosureRequests(Granularity::Run);
413  }

Definition at line 417 of file EventProcessor.cc.

References art::EventProcessor::main_schedule(), art::Schedule::recordOutputClosureRequests(), and art::Granularity::SubRun.

418  {
419  main_schedule().recordOutputClosureRequests(Granularity::SubRun);
420  }
template<typename T , typename H >
void art::fill_ptr_list ( std::list< Ptr< T >> &  ptrs,
H const &  h 
)

Definition at line 316 of file Ptr.h.

317  {
318  for (std::size_t i = 0, sz = h->size(); i != sz; ++i) {
319  ptrs.emplace_back(h, i);
320  }
321  }
template<typename T , typename H >
void art::fill_ptr_vector ( std::vector< Ptr< T >> &  ptrs,
H const &  h 
)

Definition at line 306 of file Ptr.h.

Referenced by cheat::CheckBackTracking::analyze(), shower::TCShowerAnalysis::analyze(), shower::TCShowerElectronLikelihood::analyze(), shower::TCShowerTemplateMaker::analyze(), pdsp::CheckCNNScore::analyze(), calo::CaloChecker::analyze(), hit::MagDriftAna::analyze(), pfpf::PFPAna::analyze(), cluster::ClusterAna::analyze(), hit::GausHitFinderAna::analyze(), cluster::DBclusterAna::analyze(), cheat::RecoCheckAna::analyze(), nnet::EvaluateROIEff::analyze(), lcvn::LArNuCVNZlibMaker::analyze(), NuShowerEff::analyze(), nnet::RawWaveformDump::analyze(), nnet::RawWaveformClnSigDump::analyze(), ClusteringValidation::ClusteringValidation::analyze(), ShowerRecoTools::ShowerExampleTool::CalculateElement(), evd::AnalysisBaseDrawer::CalorShower(), shower::LArPandoraShowerCheatingAlg::CheatDebugEVD(), shower::LArPandoraShowerAlg::DebugEVD(), evd::AnalysisBaseDrawer::DrawDeDx(), evd::AnalysisBaseDrawer::DrawKineticEnergy(), simfilter::FilterNoDirtNeutrinos::filter(), shower::TCShower::getShowersWithoutSlices(), trkf::SeedFinderModule::GetSortedHitsFromClusters(), evd::RecoBaseDrawer::GetSpacePoints(), nnet::EmTrack< N >::make_clusters(), wc::CellTree::processCalib(), DUNE::NeutrinoShowerEff::processEff(), DUNE::MuonTrackingEff::processEff(), DUNE::NeutrinoTrackingEff::processEff(), wc::CellTree::processMC(), wc::CellTree::processOpFlash(), wc::CellTree::processOpHit(), wc::CellTree::processRaw(), wc::CellTree::processSpacePoint(), wc::CellTree::processSpacePointTruthDepo(), wc::CellTree::processTrigger(), pid::Chi2ParticleID::produce(), hit::DisambigCheater::produce(), vertex::VertexCheater::produce(), lcvn::LArCVNEvaluator::produce(), shwf::ShowerCheater::produce(), cosmic::CosmicClusterTagger::produce(), event::EventCheater::produce(), cosmic::CosmicTrackTagger::produce(), lcvn::ICVNMapper< T, U >::produce(), reco::shower::LArPandoraModularShowerCreation::produce(), apa::APAHitFinder::produce(), sppt::TTSpacePointFinder::produce(), trkf::TrackCheater::produce(), cluster::ClusterCheater::produce(), evwgh::EventWeight::produce(), cluster::DBCluster3D::produce(), CRHitRemoval::produce(), shower::TCShower::produce(), reco3d::SpacePointSolver::produce(), calo::ShowerCalorimetry::produce(), cluster::BlurredClustering::produce(), nnet::WaveformRoiFinder::produce(), sce::SCECorrection::produce(), trkf::CCTrackMaker::produce(), lbne::PhotonCounterT0Matching::produce(), NuGraphInference::produce(), nnet::EmTrack< N >::produce(), vertex::FeatureVertexFinder::produce(), shower::EMShower::produce(), trkf::PMAlgTrajFitter::produce(), calo::Calorimetry::produce(), t0::MCTruthT0Matching::produce(), nnet::EmTrackClusterId2out::produce(), nnet::EmTrackClusterId::produce(), nnet::EmTrackMichelId::produce(), trkf::PMAlgTrackMaker::produce(), calo::GnocchiCalorimetry::produce(), trkf::CosmicTracker::produce(), cheat::PhotonBackTracker::Rebuild(), apa::DisambigAlg::RunDisambig(), nnet::TrainingDataAlg::setDataEventData(), and tss::TrackShowerHits::sortHits().

307  {
308  for (std::size_t i = 0, sz = h->size(); i != sz; ++i) {
309  ptrs.emplace_back(h, i);
310  }
311  }
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:35
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 267 of file CollectionUtilities.h.

References concatContainers().

269 {
270  typename COLLECTION::size_type total_size = 0;
271  for (auto collptr : in) {
272  if (collptr != nullptr) {
273  total_size += collptr->size();
274  }
275  }
276  out.reserve(total_size);
277  for (auto collptr : in) {
278  if (collptr != nullptr) {
279  concatContainers(out, *collptr);
280  }
281  }
282 }
void 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 287 of file CollectionUtilities.h.

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

290 {
291  offsets.clear();
292  offsets.reserve(in.size());
293  typename COLLECTION::size_type current_offset{};
294  for (auto collptr : in) {
295  if (collptr == nullptr)
296  continue;
297 
298  auto const delta = detail::mix_offset<COLLECTION>::offset(*collptr);
299  offsets.push_back(current_offset);
300  current_offset += delta;
301  }
302  flattenCollections<COLLECTION>(in, out); // 1.
303 }
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 308 of file CollectionUtilities.h.

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

310 {
311  // Extra checks are required to verify that the PtrVectors are
312  // compatible.
313  if (!detail::verifyPtrCollection(in)) {
315  << "Attempt to flatten incompatible PtrVectors "
316  << "referring to different ProductIDs.\n";
317  }
318  flattenCollections<PtrVector<T>>(in, out); // 1
319 }
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 324 of file CollectionUtilities.h.

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

327 {
328  // Extra checks are required to verify that the PtrVectors are
329  // compatible.
330  if (!detail::verifyPtrCollection(in)) {
332  << "Attempt to flatten incompatible PtrVectors "
333  << "referring to different ProductIDs.\n";
334  }
335  flattenCollections<PtrVector<T>>(in, out, offsets); // 2.
336 }
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 38 of file BranchType.h.

References f, InEvent, and NumBranchTypes.

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

39  {
40  for (std::underlying_type<BranchType>::type i{InEvent}; i < NumBranchTypes;
41  ++i) {
42  auto const bt = static_cast<BranchType>(i);
43  f(bt);
44  }
45  }
TFile f
Definition: plotHisto.C:6
BranchType
Definition: BranchType.h:20
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::views::all |
114  ::ranges::views::chunk_by([](auto a1, auto a2) {
115  return a1.first == a2.first;
116  }) |
117  ::ranges::views::transform([](auto pairs) {
118  return pairs | ::ranges::views::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 util::begin(), for_each_pair(), left(), and util::values().

142  {
143  for_each_pair(assns, [&func](auto rng) {
144  auto rights = rng | ::ranges::views::values;
145  auto lefts = rng | ::ranges::views::keys;
146  auto const& left = **::ranges::begin(lefts);
147  func(left, rights);
148  });
149  }
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:94
void for_each_pair(art::Assns< A, B, D > const &assns, F func)
decltype(auto) constexpr begin(T &&obj)
ADL-aware version of std::begin.
Definition: StdUtils.h:69
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::views::all |
156  ::ranges::views::chunk_by([](auto a1, auto a2) {
157  return a1.first == a2.first;
158  }),
159  func);
160  }
#define a2
#define a1
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.

References r.

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

Definition at line 6 of file GetReleaseVersion.cc.

6  {
7  static std::string const releaseVersion{""};
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 68 of file getElementAddresses.h.

References art::detail::maybeCastObj().

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

72 {
73  oPtr.reserve(indices.size());
74  for (auto const index : indices) {
75  auto it = coll.cbegin();
76  advance(it, index);
77  oPtr.push_back(detail::maybeCastObj(
78  detail::GetProduct<Collection>::address(it), iToType));
79  }
80 }
void const * maybeCastObj(void const *address, std::type_info const &tiFrom, std::type_info const &tiTo)
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 84 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().

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

Definition at line 17 of file RegexMatch.cc.

Referenced by regexMatch().

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

Definition at line 85 of file AssnsIter.h.

References Forward.

86  {
87  return (Dir == Direction::Forward) ? i : i - 1;
88  }
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 66 of file TypeID.h.

References is_instantiation_of().

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

67  {
68  using namespace std::string_literals;
69  return is_instantiation_of(type_name, "art::Assns"s);
70  }
bool is_instantiation_of(TypeID const &tid, std::string const &template_name)
Definition: TypeID.h:60
bool art::is_assns ( TypeID const &  tid)
inline

Definition at line 73 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().

74  {
75  return is_assns(tid.className());
76  }
bool is_assns(TypeID const &tid)
Definition: TypeID.h:73
bool art::is_glob ( std::string const &  pattern)

Definition at line 11 of file RegexMatch.cc.

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

12  {
13  return pattern.find_first_of("*?") != std::string::npos;
14  }
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 53 of file TypeID.h.

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

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

Definition at line 60 of file TypeID.h.

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

61  {
62  return is_instantiation_of(tid.className(), template_name);
63  }
bool is_instantiation_of(TypeID const &tid, std::string const &template_name)
Definition: TypeID.h:60
constexpr bool art::is_legacy ( ServiceScope const  scope)
noexcept

Definition at line 10 of file ServiceScope.h.

References LEGACY.

11  {
12  return scope == ServiceScope::LEGACY;
13  }
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_().

29  {
30  return (mt == ModuleType::analyzer) || (mt == ModuleType::output_module);
31  }
constexpr bool art::is_shared ( ServiceScope const  scope)
noexcept

Definition at line 15 of file ServiceScope.h.

References SHARED.

16  {
17  return scope == ServiceScope::SHARED;
18  }
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 255 of file ProcessHistory.cc.

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

Referenced by isDescendant().

256  {
257  if (a.size() >= b.size()) {
258  return false;
259  }
260  for (auto itA = a.data().cbegin(),
261  itB = b.data().cbegin(),
262  itAEnd = a.data().cend();
263  itA != itAEnd;
264  ++itA, ++itB) {
265  if (*itA != *itB) {
266  return false;
267  }
268  }
269  return true;
270  }
bool art::isDescendant ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 273 of file ProcessHistory.cc.

References isAncestor().

274  {
275  return isAncestor(b, a);
276  }
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 94 of file AssnsIter.h.

References Forward.

Referenced by art::Assns< L, R, void >::addMany(), 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::StandardHit3DBuilder::BuildChannelStatusVec(), lar_cluster3d::ClusterPathFinder::buildConvexHull(), lar_cluster3d::VoronoiPathFinder::buildConvexHull(), lar_cluster3d::ConvexHullPathFinder::buildConvexHull(), lar_cluster3d::MSTPathFinder::buildConvexHull(), 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::NDKGen::FillHistograms(), evgen::GENIEGen::FillHistograms(), lar_cluster3d::MinSpanTreeAlg::FindBestPathInCluster(), lar_cluster3d::MSTPathFinder::FindBestPathInCluster(), voronoi2d::VoronoiDiagram::findBoundingBox(), lar_cluster3d::SnippetHit3DBuilder::findGoodHitPairs(), lar_cluster3d::StandardHit3DBuilder::findGoodTriplets(), lar_cluster3d::SnippetHit3DBuilder::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!=(), shims::operator!=(), art::const_AssnsIter< L, R, D, Dir >::operator<(), util::flags::operator<(), operator<=(), art::const_AssnsIter< L, R, D, Dir >::operator<=(), shims::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(), art::detail::print_module_types(), art::detail::print_path_names(), art::detail::print_service_types(), nutools::dbi::Table::PrintColumns(), reco::shower::ShowerElementHolder::PrintElements(), lar_pandora::LArPandoraEventDump::PrintProperty(), reco::shower::ShowerProducedPtrsHolder::PrintPtrs(), hit::GausHitFinder::produce(), boost::python::detail::proxy_group< Proxy >::replace(), lar_content::LArPcaHelper::RunPca(), lar_cluster3d::MinSpanTreeAlg::RunPrimsAlgorithm(), lar_cluster3d::MSTPathFinder::RunPrimsAlgorithm(), sort_pred2(), lar_cluster3d::VoronoiPathFinder::subDivideCluster(), art::MemoryTracker::summary_(), throw_if_not_disjoint(), cluster::HoughTransformCounters< KEY, COUNTER, SIZE, ALLOC, SUBCOUNTERS >::unchecked_add_range_max(), and cluster::HoughTransformCounters< KEY, COUNTER, SIZE, ALLOC, SUBCOUNTERS >::unchecked_set_range().

96  {
97  return (Dir == Direction::Forward) ? a : b;
98  }
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
art::ProductDescriptions art::make_product_descriptions ( ProductList const &  productList)

Definition at line 5 of file ProductList.cc.

References util::values().

6 {
7  using namespace ::ranges;
8  return productList | views::values | to<ProductDescriptions>();
9 }
decltype(auto) values(Coll &&coll)
Range-for loop helper iterating across the values of the specified collection.
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 18 of file make_tool.h.

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

19  {
20  cet::BasicPluginFactory factory{Suffixes::tool(), "makeTool"};
21  std::string const libspec{pset.get<std::string>("tool_type")};
22  tool_return_type<T> result;
23  try {
24  result = detail::tool_type<T>::make_plugin(factory, libspec, pset);
25  }
26  catch (cet::exception const& e) {
27  throw Exception(errors::Configuration, "make_tool: ", e)
28  << "Exception caught while processing plugin spec: " << libspec << '\n';
29  }
30  return result;
31  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
Float_t e
Definition: plot.C:35
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 35 of file make_tool.h.

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

37  {
38  cet::BasicPluginFactory factory{
39  Suffixes::tool(), "toolFunction", "toolType"};
40  std::string const libspec{pset.get<std::string>("tool_type")};
41  tool_return_type<T> result;
42  try {
43  result = detail::tool_type<T>::make_plugin(
44  factory, libspec, pset, function_tool_type);
45  }
46  catch (cet::exception const& e) {
47  throw Exception(errors::Configuration, "make_tool: ", e)
48  << "Exception caught while processing plugin spec: " << libspec << '\n';
49  }
50  return result;
51  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
Float_t e
Definition: plot.C:35
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 55 of file make_tool.h.

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

Definition at line 51 of file ProvenanceCheckerOutput_module.cc.

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

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

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

Definition at line 83 of file MFStatusUpdater.cc.

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

84  {
85  mf::SetModuleName("PostBeginJob"s);
86  mf::SetIteration("BeforeEvents"s);
87  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PostEndJob  )

Definition at line 89 of file MFStatusUpdater.cc.

References mf::SetModuleName().

90  {
91  mf::SetModuleName("PostEndJob"s);
92  }
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreSourceSubRun  )

Definition at line 110 of file MFStatusUpdater.cc.

References mf::SetModuleName().

111  {
112  mf::SetModuleName("SourceSubRun"s);
113  }
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreSourceRun  )

Definition at line 120 of file MFStatusUpdater.cc.

References mf::SetModuleName().

121  {
122  mf::SetModuleName("SourceRun"s);
123  }
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreOpenFile  )

Definition at line 130 of file MFStatusUpdater.cc.

References mf::SetModuleName().

131  {
132  mf::SetModuleName("OpenFile"s);
133  }
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PreCloseFile  )

Definition at line 140 of file MFStatusUpdater.cc.

References mf::SetModuleName().

141  {
142  mf::SetModuleName("CloseFile"s);
143  }
void SetModuleName(string const &val)
art::MFSU_0_ARG_UPDATER_DEFN ( PostCloseFile  )

Definition at line 145 of file MFStatusUpdater.cc.

References mf::SetModuleName().

146  {
147  mf::SetModuleName("PostCloseFile"s);
148  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostSourceConstruction  )

Definition at line 94 of file MFStatusUpdater.cc.

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

95  {
96  mf::SetModuleName("PostSourceConstruction"s);
97  mf::SetIteration("SourceConstruction"s);
98  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreSourceEvent  )

Definition at line 100 of file MFStatusUpdater.cc.

References mf::SetModuleName().

101  {
102  mf::SetModuleName("SourceEvent"s);
103  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostSourceSubRun  )

Definition at line 115 of file MFStatusUpdater.cc.

References mf::SetModuleName().

116  {
117  mf::SetModuleName("PostSourceSubRun"s);
118  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostSourceRun  )

Definition at line 125 of file MFStatusUpdater.cc.

References mf::SetModuleName().

126  {
127  mf::SetModuleName("PostSourceRun"s);
128  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostOpenFile  )

Definition at line 135 of file MFStatusUpdater.cc.

References mf::SetModuleName().

136  {
137  mf::SetModuleName("PostOpenFile"s);
138  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreBeginRun  )

Definition at line 163 of file MFStatusUpdater.cc.

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

164  {
165  mf::SetModuleName("BeginRun"s);
166  std::ostringstream os;
167  os << arg1.id();
168  mf::SetIteration(os.str());
169  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostBeginRun  )

Definition at line 171 of file MFStatusUpdater.cc.

References mf::SetModuleName().

172  {
173  mf::SetModuleName("PostBeginRun"s);
174  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostEndRun  )

Definition at line 184 of file MFStatusUpdater.cc.

References mf::SetModuleName().

185  {
186  mf::SetModuleName("PostEndRun"s);
187  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreBeginSubRun  )

Definition at line 189 of file MFStatusUpdater.cc.

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

190  {
191  mf::SetModuleName("BeginSubRun"s);
192  std::ostringstream os;
193  os << arg1.id();
194  mf::SetIteration(os.str());
195  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostBeginSubRun  )

Definition at line 197 of file MFStatusUpdater.cc.

References mf::SetModuleName().

198  {
199  mf::SetModuleName("PostBeginSubRun"s);
200  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostEndSubRun  )

Definition at line 210 of file MFStatusUpdater.cc.

References mf::SetModuleName().

211  {
212  mf::SetModuleName("PostEndSubRun"s);
213  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreProcessPath  )

Definition at line 215 of file MFStatusUpdater.cc.

References mf::SetModuleName().

216  {
217  mf::SetModuleName("ProcessPath "s + arg1.pathName());
218  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathBeginRun  )

Definition at line 225 of file MFStatusUpdater.cc.

References mf::SetModuleName().

226  {
227  mf::SetModuleName("PathBeginRun "s + arg1);
228  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathEndRun  )

Definition at line 235 of file MFStatusUpdater.cc.

References mf::SetModuleName().

236  {
237  mf::SetModuleName("PathEndRun "s + arg1);
238  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathBeginSubRun  )

Definition at line 245 of file MFStatusUpdater.cc.

References mf::SetModuleName().

246  {
247  mf::SetModuleName("PathBeginSubRun "s + arg1);
248  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PrePathEndSubRun  )

Definition at line 255 of file MFStatusUpdater.cc.

References mf::SetModuleName().

256  {
257  mf::SetModuleName("PathEndSubRun "s + arg1);
258  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleConstruction  )

Definition at line 265 of file MFStatusUpdater.cc.

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

266  {
267  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
268  "@Construction"s);
269  mf::SetIteration("ModuleConstruction"s);
270  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleConstruction  )

Definition at line 272 of file MFStatusUpdater.cc.

References mf::SetModuleName().

273  {
274  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
275  "@Construction"s);
276  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleBeginJob  )

Definition at line 283 of file MFStatusUpdater.cc.

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

284  {
285  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
286  "@BeginJob"s);
287  mf::SetIteration("ModuleBeginJob"s);
288  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleBeginJob  )

Definition at line 290 of file MFStatusUpdater.cc.

References mf::SetModuleName().

291  {
292  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
293  "@BeginJob"s);
294  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleEndJob  )

Definition at line 296 of file MFStatusUpdater.cc.

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

297  {
298  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
299  "@EndJob"s);
300  mf::SetIteration("ModuleEndJob"s);
301  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleEndJob  )

Definition at line 303 of file MFStatusUpdater.cc.

References mf::SetModuleName().

304  {
305  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
306  "@EndJob"s);
307  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModule  )

Definition at line 309 of file MFStatusUpdater.cc.

References mf::SetModuleName().

310  {
311  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
312  "@BeginModule"s);
313  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModule  )

Definition at line 315 of file MFStatusUpdater.cc.

References mf::SetModuleName().

316  {
317  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
318  "@EndModule"s);
319  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleBeginRun  )

Definition at line 321 of file MFStatusUpdater.cc.

References mf::SetModuleName().

322  {
323  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
324  "@BeginRun"s);
325  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleBeginRun  )

Definition at line 327 of file MFStatusUpdater.cc.

References mf::SetModuleName().

328  {
329  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
330  "@BeginRun"s);
331  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleEndRun  )

Definition at line 333 of file MFStatusUpdater.cc.

References mf::SetModuleName().

334  {
335  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
336  "@EndRun"s);
337  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleEndRun  )

Definition at line 339 of file MFStatusUpdater.cc.

References mf::SetModuleName().

340  {
341  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
342  "@EndRun"s);
343  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleBeginSubRun  )

Definition at line 345 of file MFStatusUpdater.cc.

References mf::SetModuleName().

346  {
347  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
348  "@BeginSubRun"s);
349  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleBeginSubRun  )

Definition at line 351 of file MFStatusUpdater.cc.

References mf::SetModuleName().

352  {
353  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
354  "@BeginSubRun"s);
355  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PreModuleEndSubRun  )

Definition at line 357 of file MFStatusUpdater.cc.

References mf::SetModuleName().

358  {
359  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
360  "@EndSubRun"s);
361  }
void SetModuleName(string const &val)
art::MFSU_1_ARG_UPDATER_DEFN ( PostModuleEndSubRun  )

Definition at line 363 of file MFStatusUpdater.cc.

References mf::SetModuleName().

364  {
365  mf::SetModuleName(arg1.moduleName() + ":"s + arg1.moduleLabel() +
366  "@EndSubRun"s);
367  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostSourceEvent  )

Definition at line 105 of file MFStatusUpdater.cc.

References mf::SetModuleName().

106  {
107  mf::SetModuleName("PostSourceEvent"s);
108  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PreProcessEvent  )

Definition at line 150 of file MFStatusUpdater.cc.

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

151  {
152  mf::SetModuleName("ProcessEvent"s);
153  std::ostringstream os;
154  os << arg1.id();
155  mf::SetIteration(os.str());
156  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostProcessEvent  )

Definition at line 158 of file MFStatusUpdater.cc.

References mf::SetModuleName().

159  {
160  mf::SetModuleName("PostProcessEvent"s);
161  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PreEndRun  )

Definition at line 176 of file MFStatusUpdater.cc.

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

177  {
178  mf::SetModuleName("EndRun"s);
179  std::stringstream os;
180  os << arg1;
181  mf::SetIteration(os.str());
182  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PreEndSubRun  )

Definition at line 202 of file MFStatusUpdater.cc.

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

203  {
204  mf::SetModuleName("EndSubRun"s);
205  std::ostringstream os;
206  os << arg1;
207  mf::SetIteration(os.str());
208  }
void SetIteration(string const &val)
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostProcessPath  )

Definition at line 220 of file MFStatusUpdater.cc.

References mf::SetModuleName().

221  {
222  mf::SetModuleName("PostProcessPath "s + arg1.pathName());
223  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathBeginRun  )

Definition at line 230 of file MFStatusUpdater.cc.

References mf::SetModuleName().

231  {
232  mf::SetModuleName("PostPathBeginRun "s + arg1);
233  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathEndRun  )

Definition at line 240 of file MFStatusUpdater.cc.

References mf::SetModuleName().

241  {
242  mf::SetModuleName("PostPathEndRun "s + arg1);
243  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathBeginSubRun  )

Definition at line 250 of file MFStatusUpdater.cc.

References mf::SetModuleName().

251  {
252  mf::SetModuleName("PostPathBeginSubRun "s + arg1);
253  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostPathEndSubRun  )

Definition at line 260 of file MFStatusUpdater.cc.

References mf::SetModuleName().

261  {
262  mf::SetModuleName("PostPathEndSubRun "s + arg1);
263  }
void SetModuleName(string const &val)
art::MFSU_2_ARG_UPDATER_DEFN ( PostBeginJobWorkers  )

Definition at line 278 of file MFStatusUpdater.cc.

279  {
280  throw cet::exception("InternalError"s) << "NOP: do not call";
281  }
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 188 of file TypeID.cc.

References is_assns(), and name_of_template_arg().

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

189  {
190  string result;
191  if (!is_assns(assns_type_name)) {
192  return result;
193  }
194  using namespace std::string_literals;
195  static string const assns_start = "art::Assns<"s;
196  if (name_of_template_arg(assns_type_name, 2) == "void"s) {
197  // Doesn't have the base we're looking for.
198  return result;
199  }
200  result = assns_start + name_of_template_arg(assns_type_name, 0) + ',' +
201  name_of_template_arg(assns_type_name, 1) + ",void>";
202  return result;
203  }
string name_of_template_arg(string const &template_instance, size_t desired_arg)
Definition: TypeID.cc:121
bool is_assns(std::string const &type_name)
Definition: TypeID.h:66
std::string art::name_of_assns_partner ( string  assns_type_name)

Definition at line 173 of file TypeID.cc.

References is_assns(), and name_of_template_arg().

Referenced by is_assns().

174  {
175  string result;
176  if (!is_assns(assns_type_name)) {
177  return result;
178  }
179  static string const assns_start = "art::Assns<"s;
180  auto const arg0 = name_of_template_arg(assns_type_name, 0);
181  auto const arg1 = name_of_template_arg(assns_type_name, 1);
182  auto const arg2 = name_of_template_arg(assns_type_name, 2);
183  result = assns_start + arg1 + ',' + arg0 + ',' + arg2 + '>';
184  return result;
185  }
string name_of_template_arg(string const &template_instance, size_t desired_arg)
Definition: TypeID.cc:121
bool is_assns(std::string const &type_name)
Definition: TypeID.h:66
std::string art::name_of_template_arg ( string const &  template_instance,
size_t  desired_arg 
)

Definition at line 121 of file TypeID.cc.

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

122  {
123  string result;
124  auto comma_count = 0ul;
125  auto template_level = 0ul;
126  auto arg_start = string::npos;
127  auto pos = 0ul;
128  pos = template_instance.find_first_of("<>,", pos);
129  while (pos != string::npos) {
130  switch (template_instance[pos]) {
131  case '<':
132  ++template_level;
133  if ((desired_arg == 0ul) && (template_level == 1ul)) {
134  // Found the begin of the desired template arg.
135  arg_start = pos + 1;
136  }
137  break;
138  case '>':
139  --template_level;
140  if ((desired_arg == comma_count) && (template_level == 0ul)) {
141  // Found the end of the desired template arg -- trim trailing
142  // whitespace
143  auto const arg_end =
144  template_instance.find_last_not_of(" \t", pos - 1) + 1;
145  result = template_instance.substr(arg_start, arg_end - arg_start);
146  return result;
147  }
148  break;
149  case ',':
150  if (template_level != 1ul) {
151  // Ignore arguments not at the first level.
152  break;
153  }
154  if (comma_count == desired_arg) {
155  // Found the end of the desired template arg.
156  result = template_instance.substr(arg_start, pos - arg_start);
157  return result;
158  }
159  ++comma_count;
160  if (comma_count == desired_arg) {
161  // Found the begin of the desired template arg.
162  arg_start = pos + 1;
163  }
164  break;
165  }
166  ++pos;
167  pos = template_instance.find_first_of("<>,", pos);
168  }
169  return result;
170  }
std::string art::name_of_unwrapped_product ( string const &  wrapped_name)

Definition at line 206 of file TypeID.cc.

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

Referenced by is_assns().

207  {
208  using namespace std::string_literals;
209  if (!is_instantiation_of(wrapped_name, "art::Wrapper"s)) {
210  throw Exception(errors::LogicError, "Can't unwrap"s)
211  << "-- attempted to get unwrapped product from non-instance of art::Wrapper."s;
212  }
213  return name_of_template_arg(wrapped_name, 0);
214  }
bool is_instantiation_of(std::string const &type_name, std::string const &template_name)
Definition: TypeID.h:53
string name_of_template_arg(string const &template_instance, size_t desired_arg)
Definition: TypeID.cc:121
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
template<typename A >
std::enable_if_t<is_selector<A>, NotHelper<A> > art::operator! ( A const &  a)

Definition at line 338 of file Selector.h.

339  {
340  return NotHelper<A>{a};
341  }
bool art::operator!= ( BranchKey const &  a,
BranchKey const &  b 
)
inline

Definition at line 83 of file BranchKey.h.

84 {
85  return !(a == b);
86 }
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 41 of file ScheduleID.cc.

References left(), and right().

Referenced by is_assns().

42  {
43  return !(left == right);
44  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
bool art::operator!= ( Parentage const &  a,
Parentage const &  b 
)

Definition at line 56 of file Parentage.cc.

57  {
58  return !(a == b);
59  }
bool art::operator!= ( ProcessConfiguration const &  a,
ProcessConfiguration const &  b 
)

Definition at line 65 of file ProcessConfiguration.cc.

66  {
67  return !(a == b);
68  }
constexpr bool art::operator!= ( RefCore const &  lhs,
RefCore const &  rhs 
)
noexcept

Definition at line 81 of file RefCore.h.

82  {
83  return !(lhs == rhs);
84  }
bool art::operator!= ( TypeID const &  a,
TypeID const &  b 
)

Definition at line 102 of file TypeID.cc.

103  {
104  return !(a == b);
105  }
bool art::operator!= ( ProductProvenance const &  a,
ProductProvenance const &  b 
)
noexcept

Definition at line 105 of file ProductProvenance.cc.

106  {
107  return !(a == b);
108  }
bool art::operator!= ( InputTag const &  left,
InputTag const &  right 
)

Definition at line 111 of file InputTag.cc.

References right().

112  {
113  return !(left == right);
114  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
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!= ( ProductPtr< T > const &  lhs,
ProductPtr< U > const &  rhs 
)

Definition at line 210 of file ProductPtr.h.

211  {
212  return !(lhs == rhs);
213  }
bool art::operator!= ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 249 of file ProcessHistory.cc.

250  {
251  return !(a == b);
252  }
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 284 of file Ptr.h.

285  {
286  return !(lhs == rhs);
287  }
bool art::operator!= ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 445 of file FileIndex.cc.

446  {
447  return !(lh == rh);
448  }
bool art::operator!= ( FileIndex const &  lh,
FileIndex const &  rh 
)

Definition at line 457 of file FileIndex.cc.

458  {
459  return !(lh == rh);
460  }
template<typename A , typename B >
std::enable_if_t<is_selector<A> && is_selector<B>, AndHelper<A, B> > art::operator&& ( A const &  a,
B const &  b 
)

Definition at line 264 of file Selector.h.

265  {
266  return AndHelper<A, B>{a, b};
267  }
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 63 of file BranchKey.h.

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

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

Definition at line 46 of file TypeLabel.cc.

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

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

Definition at line 51 of file ProductInfo.cc.

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

Definition at line 65 of file PathSpec.h.

References operator<<(), path_spec(), path_specs(), art::PathID::to_string, and to_tuple().

66  {
67  return to_tuple(a) < to_tuple(b);
68  }
auto to_tuple(PathSpec const &spec) noexcept
Definition: PathSpec.h:53
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  }
constexpr bool art::operator< ( RefCore const &  lhs,
RefCore const &  rhs 
)
noexcept

Definition at line 87 of file RefCore.h.

References art::RefCore::swap().

88  {
89  return lhs.id() < rhs.id();
90  }
bool art::operator< ( ProductProvenance const &  a,
ProductProvenance const &  b 
)
noexcept

Definition at line 113 of file ProductProvenance.cc.

114  {
115  return a.productID() < b.productID();
116  }
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< ( ProductPtr< T > const &  lhs,
ProductPtr< U > const &  rhs 
)

Definition at line 219 of file ProductPtr.h.

References art::ProductPtr< T >::refCore().

220  {
221  return lhs.refCore() < rhs.refCore();
222  }
bool art::operator< ( BranchDescription const &  a,
BranchDescription const &  b 
)

Definition at line 255 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().

256  {
257  if (a.processName() < b.processName()) {
258  return true;
259  }
260  if (b.processName() < a.processName()) {
261  return false;
262  }
263  if (a.producedClassName() < b.producedClassName()) {
264  return true;
265  }
266  if (b.producedClassName() < a.producedClassName()) {
267  return false;
268  }
269  if (a.friendlyClassName() < b.friendlyClassName()) {
270  return true;
271  }
272  if (b.friendlyClassName() < a.friendlyClassName()) {
273  return false;
274  }
275  if (a.productInstanceName() < b.productInstanceName()) {
276  return true;
277  }
278  if (b.productInstanceName() < a.productInstanceName()) {
279  return false;
280  }
281  if (a.moduleLabel() < b.moduleLabel()) {
282  return true;
283  }
284  if (b.moduleLabel() < a.moduleLabel()) {
285  return false;
286  }
287  if (a.branchType() < b.branchType()) {
288  return true;
289  }
290  if (b.branchType() < a.branchType()) {
291  return false;
292  }
293  if (a.productID() < b.productID()) {
294  return true;
295  }
296  if (b.productID() < a.productID()) {
297  return false;
298  }
299  if (a.psetIDs() < b.psetIDs()) {
300  return true;
301  }
302  if (b.psetIDs() < a.psetIDs()) {
303  return false;
304  }
305  if (a.processConfigurationIDs() < b.processConfigurationIDs()) {
306  return true;
307  }
308  if (b.processConfigurationIDs() < a.processConfigurationIDs()) {
309  return false;
310  }
311  return false;
312  }
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 293 of file Ptr.h.

References art::Ptr< T >::refCore().

294  {
295  // The ordering of integer keys guarantees that the ordering of Ptrs within
296  // a collection will be identical to the ordering of the referenced objects
297  // in the collection.
298  return lhs.refCore() == rhs.refCore() ? lhs.key() < rhs.key() :
299  lhs.refCore() < rhs.refCore();
300  }
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  return lh.eventID < rh.eventID;
418  }
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 6 of file EventID.cc.

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

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

Definition at line 63 of file GroupSelector.cc.

References art::GroupSelector::print().

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

64 {
65  gs.print(os);
66  return os;
67 }
void print(std::ostream &os) const
std::ostream & art::operator<< ( std::ostream &  os,
BranchID const &  id 
)

Definition at line 20 of file BranchID.cc.

21  {
22  os << id.id();
23  return os;
24  }
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,
ProductID const  id 
)

Definition at line 25 of file ProductID.cc.

26  {
27  os << id.value();
28  return os;
29  }
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:20
std::ostream& art::operator<< ( std::ostream &  os,
BranchType const  branchType 
)
inline

Definition at line 31 of file BranchType.h.

References BranchTypeToString().

32  {
33  return os << BranchTypeToString(branchType);
34  }
std::string const & BranchTypeToString(BranchType const bt)
Definition: BranchType.cc:65
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<< ( std::ostream &  os,
ResultsAuxiliary const &  p 
)
inline

Definition at line 42 of file ResultsAuxiliary.h.

References art::ResultsAuxiliary::write().

43  {
44  p.write(os);
45  return os;
46  }
std::ostream & art::operator<< ( ostream &  os,
Parentage const &   
)

Definition at line 43 of file Parentage.cc.

44  {
45  // Unimplemented
46  return os;
47  }
std::ostream & art::operator<< ( std::ostream &  os,
TypeLabel const &  tl 
)

Definition at line 59 of file TypeLabel.cc.

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

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

Definition at line 61 of file PathSpec.cc.

References to_string().

62  {
63  return os << to_string(spec);
64  }
std::string to_string(PathSpec const &spec)
Definition: PathSpec.cc:55
std::ostream& art::operator<< ( std::ostream &  ,
const EventAuxiliary  
)
std::ostream & art::operator<< ( ostream &  os,
ScheduleID const  sid 
)

Definition at line 65 of file ScheduleID.cc.

References art::ScheduleID::id().

66  {
67  return os << sid.id();
68  }
std::ostream & art::operator<< ( ostream &  os,
ProductInfo::ConsumableType const  ct 
)

Definition at line 67 of file ProductInfo.cc.

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

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

Definition at line 70 of file PluginSuffixes.h.

71  {
72  return os << static_cast<std::underlying_type_t<suffix_type>>(st);
73  }
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::detail::TableBase::print_allowed_configuration().

72  {
73  std::ostringstream config;
74  t.print_allowed_configuration(config, std::string(3, ' '));
75  return os << config.str();
76  }
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,
ProductProvenance const &  p 
)

Definition at line 83 of file ProductProvenance.cc.

References art::ProductProvenance::write().

84  {
85  p.write(os);
86  return os;
87  }
std::ostream & art::operator<< ( ostream &  os,
ProductInfo const &  info 
)

Definition at line 84 of file ProductInfo.cc.

85  {
86  os << "Consumable type: " << info.consumableType << '\n'
87  << "Friendly class name: " << info.friendlyClassName << '\n'
88  << "Module label: " << info.label << '\n'
89  << "Instance name: " << info.instance << '\n'
90  << "Process name: " << info.process.name() << '\n';
91  return os;
92  }
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<< ( std::ostream &  os,
EventAuxiliary const &  p 
)

Definition at line 109 of file EventAuxiliary.cc.

References art::EventAuxiliary::write().

110  {
111  p.write(os);
112  return os;
113  }
std::ostream & art::operator<< ( ostream &  os,
TypeID const &  tid 
)

Definition at line 114 of file TypeID.cc.

References art::TypeID::print().

115  {
116  tid.print(os);
117  return os;
118  }
ostream& art::operator<< ( ostream &  ost,
const HLTGlobalStatus hlt 
)

Definition at line 134 of file HLTGlobalStatus.cc.

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

135  {
136  vector<string> text{"n"s, "1"s, "0"s, "e"s};
137  unsigned const n(hlt.size());
138  for (auto i = 0U; i < n; ++i) {
139  ost << text.at(hlt.state(i));
140  }
141  return ost;
142  }
Char_t n[5]
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,
SubRunAuxiliary const &  p 
)

Definition at line 149 of file SubRunAuxiliary.cc.

References art::SubRunAuxiliary::write().

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

Definition at line 150 of file RunAuxiliary.cc.

References art::RunAuxiliary::write().

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

Definition at line 150 of file InputTag.cc.

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

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

Definition at line 157 of file Provenance.cc.

References art::Provenance::write().

158  {
159  return p.write(os);
160  }
template<int I>
std::ostream& art::operator<< ( std::ostream &  os,
Hash< I > const &  h 
)

Definition at line 214 of file Hash.h.

215  {
216  return h.print(os);
217  }
std::ostream & art::operator<< ( ostream &  os,
FileProperties const &  fp 
)

Definition at line 222 of file ClosingCriteria.cc.

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

223  {
224  os << "[nEvents: " << fp.nEvents() << ", nSubRuns: " << fp.nSubRuns()
225  << ", nRuns: " << fp.nRuns() << ", nInputFiles: " << fp.nInputFiles()
226  << ", size: " << fp.size() << ", age: " << fp.age().count() << "]";
227  return os;
228  }
FILE * fp
Definition: plot.C:34
template<typename T >
std::ostream& art::operator<< ( std::ostream &  os,
ProductPtr< T > const &  p 
)

Definition at line 226 of file ProductPtr.h.

References art::RefCore::id().

227  {
228  os << "(" << p.id() << ")";
229  return os;
230  }
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  }
TRandom r
Definition: spectrum.C:23
std::ostream & art::operator<< ( ostream &  ost,
ProcessHistory const &  ph 
)

Definition at line 279 of file ProcessHistory.cc.

280  {
281  ost << "Process History = ";
282  copy_all(ph, ostream_iterator<ProcessHistory::value_type>(ost, ";"));
283  return ost;
284  }
template<typename T >
std::ostream& art::operator<< ( std::ostream &  os,
Ptr< T > const &  p 
)

Definition at line 325 of file Ptr.h.

326  {
327  os << "(" << p.id() << ", " << p.key() << ")";
328  return os;
329  }
std::ostream & art::operator<< ( std::ostream &  os,
BranchDescription const &  p 
)

Definition at line 334 of file BranchDescription.cc.

References art::BranchDescription::write().

335  {
336  p.write(os);
337  return os;
338  }
std::ostream & art::operator<< ( std::ostream &  os,
MixHelper::Mode  mode 
)

Definition at line 129 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.

130 {
131  switch (mode) {
132  case MixHelper::Mode::SEQUENTIAL:
133  return os << "SEQUENTIAL";
134  case MixHelper::Mode::RANDOM_REPLACE:
135  return os << "RANDOM_REPLACE";
136  case MixHelper::Mode::RANDOM_LIM_REPLACE:
137  return os << "RANDOM_LIM_REPLACE";
138  case MixHelper::Mode::RANDOM_NO_REPLACE:
139  return os << "RANDOM_NO_REPLACE";
141  return os << "UNKNOWN";
142  // No default so compiler can warn.
143  }
144  return os;
145 }
template<typename PROD >
std::ostream& art::operator<< ( std::ostream &  os,
Handle< PROD > const &  h 
)

Definition at line 462 of file ProductRetriever.h.

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

463  {
464  os << h.product() << " " << h.provenance() << " " << h.id();
465  return os;
466  }
std::ostream & art::operator<< ( ostream &  os,
RangeSet const &  rs 
)

Definition at line 477 of file RangeSet.cc.

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

478  {
479  os << " Run: " << rs.run();
480  if (rs.is_full_run()) {
481  os << " (full run)";
482  return os;
483  }
484  for (auto const& er : rs.ranges()) {
485  os << "\n " << er;
486  }
487  return os;
488  }
std::ostream & art::operator<< ( ostream &  os,
FileIndex::Element const &  el 
)

Definition at line 480 of file FileIndex.cc.

References art::FileIndex::Element::entry, and art::FileIndex::Element::eventID.

481  {
482  os << el.eventID << ": entry# " << el.entry;
483  return os;
484  }
std::ostream & art::operator<< ( ostream &  os,
FileIndex const &  fileIndex 
)

Definition at line 487 of file FileIndex.cc.

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

488  {
489  os << "\nPrinting FileIndex contents. This includes a list of all Runs, "
490  "SubRuns\n"
491  << "and Events stored in the root file.\n\n";
492  os << setw(15) << "Run" << setw(15) << "SubRun" << setw(15) << "Event"
493  << setw(15) << "TTree Entry"
494  << "\n";
495  for (auto const& e : fileIndex) {
496  if (e.getEntryType() == FileIndex::kEvent) {
497  os << setw(15) << e.eventID.run() << setw(15) << e.eventID.subRun()
498  << setw(15) << e.eventID.event() << setw(15) << e.entry << "\n";
499  } else if (e.getEntryType() == FileIndex::kSubRun) {
500  os << setw(15) << e.eventID.run() << setw(15) << e.eventID.subRun()
501  << setw(15) << " " << setw(15) << e.entry << " (SubRun)"
502  << "\n";
503  } else if (e.getEntryType() == FileIndex::kRun) {
504  os << setw(15) << e.eventID.run() << setw(15) << " " << setw(15) << " "
505  << setw(15) << e.entry << " (Run)"
506  << "\n";
507  }
508  }
509  return os;
510  }
Float_t e
Definition: plot.C:35
bool art::operator<= ( ScheduleID const  left,
ScheduleID const  right 
)
noexcept

Definition at line 47 of file ScheduleID.cc.

References left(), and right().

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

Definition at line 433 of file FileIndex.cc.

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

Definition at line 77 of file BranchKey.h.

78 {
79  return !(a < b || b < a);
80 }
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 50 of file Parentage.cc.

References art::Parentage::parents().

51  {
52  return a.parents() == b.parents();
53  }
bool art::operator== ( PathSpec const &  a,
PathSpec const &  b 
)
inline

Definition at line 59 of file PathSpec.h.

References to_tuple().

60  {
61  return to_tuple(a) == to_tuple(b);
62  }
auto to_tuple(PathSpec const &spec) noexcept
Definition: PathSpec.h:53
constexpr bool art::operator== ( RefCore const &  lhs,
RefCore const &  rhs 
)
noexcept

Definition at line 75 of file RefCore.h.

76  {
77  return lhs.id() == rhs.id();
78  }
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 90 of file ProductProvenance.cc.

91  {
92  if (a.noParentage() != b.noParentage()) {
93  return false;
94  }
95  if (a.noParentage()) {
96  return (a.productID() == b.productID()) &&
97  (a.productStatus() == b.productStatus());
98  }
99  return (a.productID() == b.productID()) &&
100  (a.productStatus() == b.productStatus()) &&
101  (a.parentageID() == b.parentageID());
102  }
bool art::operator== ( Provenance const &  a,
Provenance const &  b 
)
noexcept

Definition at line 141 of file Provenance.cc.

142  {
143  return a.equals(b);
144  }
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== ( ProductPtr< T > const &  lhs,
ProductPtr< U > const &  rhs 
)

Definition at line 201 of file ProductPtr.h.

202  {
203  return lhs.refCore() == rhs.refCore();
204  }
bool art::operator== ( ProcessHistory const &  a,
ProcessHistory const &  b 
)

Definition at line 243 of file ProcessHistory.cc.

References art::ProcessHistory::data().

244  {
245  return a.data() == b.data();
246  }
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 275 of file Ptr.h.

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

276  {
277  return lhs.refCore() == rhs.refCore() and lhs.key() == rhs.key();
278  }
bool art::operator== ( BranchDescription const &  a,
BranchDescription const &  b 
)

Definition at line 327 of file BranchDescription.cc.

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

328  {
329  return combinable(a, b) && (a.psetIDs() == b.psetIDs()) &&
330  (a.processConfigurationIDs() == b.processConfigurationIDs());
331  }
bool combinable(BranchDescription const &a, BranchDescription const &b)
bool art::operator== ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 399 of file RangeSet.cc.

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

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

Definition at line 439 of file FileIndex.cc.

440  {
441  return !(lh < rh || rh < lh);
442  }
bool art::operator== ( FileIndex const &  lh,
FileIndex const &  rh 
)

Definition at line 451 of file FileIndex.cc.

References art::FileIndex::entries_.

452  {
453  return lh.entries_ == rh.entries_;
454  }
bool art::operator> ( ScheduleID const  left,
ScheduleID const  right 
)
noexcept

Definition at line 53 of file ScheduleID.cc.

References left(), and right().

Referenced by is_assns().

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

Definition at line 96 of file TypeID.cc.

97  {
98  return b < a;
99  }
bool art::operator> ( FileIndex::Element const &  lh,
FileIndex::Element const &  rh 
)

Definition at line 421 of file FileIndex.cc.

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

Definition at line 59 of file ScheduleID.cc.

References left(), and right().

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

Definition at line 427 of file FileIndex.cc.

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

Definition at line 303 of file Selector.h.

304  {
305  return OrHelper<A, B>{a, b};
306  }
template<class T , class U >
std::enable_if_t<detail::are_handles_v<T, U>, 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 200 of file SummedValue.h.

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

201  {
202  return overlapping_ranges(a.rangeOfValidity(), b.rangeOfValidity());
203  }
bool overlapping_ranges(SummedValue< T > const &a, SummedValue< U > const &b)
Definition: SummedValue.h:200
bool art::overlapping_ranges ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 468 of file RangeSet.cc.

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

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

Definition at line 15 of file parent_path.cc.

16 {
17  using namespace std::string_literals;
18  std::string result;
19  boost::filesystem::path parent_path(
20  boost::filesystem::path(in_path).parent_path());
21  if (parent_path.empty()) {
22  result = "."s;
23  } else {
24  result = parent_path.native();
25  }
26  return result;
27 }
std::string parent_path(std::string const &path)
Definition: parent_path.cc:15
PathSpec art::path_spec ( std::string const &  path_spec)

Definition at line 22 of file PathSpec.cc.

References art::PathID::invalid().

Referenced by art::PathManager::createModulesAndWorkers(), art::PathManager::fillSelectEventsDeps_(), art::PathManager::getModuleGraphInfoCollection_(), art::detail::make_path_ordering_edges(), art::detail::make_synchronization_edges(), art::detail::make_trigger_path_subgraphs(), operator<(), path_specs(), art::detail::path_specs(), art::PathManager::PathManager(), art::detail::print_path_names(), art::detail::prune_config_if_enabled(), and art::detail::triggerReport().

23  {
24  auto const colon_position = path_spec.find(":");
25  if (colon_position == std::string::npos) {
26  return PathSpec{path_spec, PathID::invalid()};
27  }
28  auto name = path_spec.substr(colon_position + 1);
29  auto const id = std::stoull(path_spec.substr(0, colon_position));
30  return PathSpec{std::move(name), PathID{id}};
31  }
PathSpec path_spec(std::string const &path_spec)
Definition: PathSpec.cc:22
std::vector< PathSpec > art::path_specs ( std::vector< std::string > const &  path_spec_strs)

Definition at line 34 of file PathSpec.cc.

References art::PathID::invalid(), and path_spec().

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

35  {
36  std::vector<PathSpec> result;
37  cet::for_all_with_index(path_spec_strs,
38  [&result](size_t const i, auto const& str) {
39  auto spec = path_spec(str);
40  if (spec.path_id == PathID::invalid()) {
41  spec.path_id = PathID{i};
42  }
43  result.push_back(std::move(spec));
44  });
45  return result;
46  }
PathSpec path_spec(std::string const &path_spec)
Definition: PathSpec.cc:22
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 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().

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

Definition at line 26 of file ExceptionMessages.cc.

Referenced by run_art().

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

Definition at line 41 of file ExceptionMessages.cc.

Referenced by run_art().

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

Definition at line 54 of file ExceptionMessages.cc.

Referenced by run_art().

55  {
56  std::string programName(prog ? prog : "program");
57  std::string shortDesc("UnknownException");
58  std::ostringstream longDesc;
59  longDesc << "Unknown exception caught in " << programName;
60  LogSystem(shortDesc) << longDesc.str();
61  }
62  catch (...) {
63  }
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 H >
art::ProductPtr ( ) -> ProductPtr< typename H::element_type >
template<typename H , typename T >
art::Ptr ( ,
 
) -> Ptr< detail::not_map_vector_t< typename H::element_type >>
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 44 of file put_product_in_principal.h.

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

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

47  {})
48  {
49  TypeID const typeID{typeid(T)};
50  if (product.get() == nullptr) {
52  << "put_product_in_principal: A null unique_ptr was passed to 'put'.\n"
53  << "The pointer is of type " << typeID << ".\n"
54  << "The specified product instance name was '" << instance_name
55  << "'.\n";
56  }
57 
58  auto const& process_name = principal.processConfiguration().processName();
59  auto const& product_name = canonicalProductName(
60  typeID.friendlyClassName(), module_label, instance_name, process_name);
61  ProductID const pid{product_name};
62  auto desc = principal.getProductDescription(pid);
63  if (!desc) {
65  "put_product_in_principal: error while trying to "
66  "retrieve product description:\n")
67  << "No product is registered for\n"
68  << " process name: '" << process_name << "'\n"
69  << " module label: '" << module_label << "'\n"
70  << " product friendly class name: '" << typeID.friendlyClassName()
71  << "'\n"
72  << " product instance name: '" << instance_name << "'\n"
73  << " branch type: '" << principal.branchType()
74  << "'\n";
75  }
76 
77  principal.put(
78  *desc,
79  std::make_unique<ProductProvenance const>(pid, productstatus::present()),
80  std::make_unique<Wrapper<T>>(std::move(product)),
81  std::make_unique<RangeSet>(RangeSet::invalid()));
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 
126  principal.put(
127  *desc,
128  std::make_unique<ProductProvenance const>(pid, productstatus::present()),
129  std::make_unique<Wrapper<T>>(std::move(product)),
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_v<T>, RangeSet const&> art::range_of_validity ( T const &  h)
RangeSet art::rangeSetFor ( RunPrincipal const &  rp)
inline

Definition at line 31 of file put_product_in_principal.h.

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

Referenced by put_product_in_principal().

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

Definition at line 37 of file put_product_in_principal.h.

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

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

Definition at line 25 of file RegexMatch.cc.

References e, and glob2reg().

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

27  {
28  auto const reg_str = glob2reg(pattern);
29  // We allow for a trigger-bit to lead the trigger path name.
30  std::regex const regexp{"(\\d+:)?" + glob2reg(pattern)};
32  for (auto it = strings.begin(), e = strings.end(); it != e; ++it) {
33  if (std::regex_match(*it, regexp)) {
34  result.push_back(it);
35  }
36  }
37  return result;
38  }
intermediate_table::const_iterator const_iterator
std::string glob2reg(std::string pattern)
Definition: RegexMatch.cc:17
Float_t e
Definition: plot.C:35
std::vector< GroupQueryResult > art::resolve_products ( std::vector< cet::exempt_ptr< art::Group >> const &  groups,
art::TypeID const &  wrapped_type 
)

Definition at line 428 of file Group.cc.

Referenced by art::ProductRetriever::getContainerForView_(), and art::Principal::getMany().

430  {
431  std::vector<GroupQueryResult> results;
432  for (auto group : groups) {
433  if (group->tryToResolveProduct(wrapped_type)) {
434  results.emplace_back(group.get());
435  }
436  }
437  return results;
438  }
std::optional< GroupQueryResult > art::resolve_unique_product ( std::vector< cet::exempt_ptr< art::Group >> const &  product_groups,
art::WrappedTypeID const &  wrapped 
)

Definition at line 387 of file Group.cc.

References e, art::WrappedTypeID::product_type, art::errors::ProductNotFound, and art::WrappedTypeID::wrapped_product_type.

Referenced by art::Principal::getBySelector().

390  {
391  auto by_process_name = [](auto const ga, auto const gb) {
392  return ga->productDescription().processName() ==
393  gb->productDescription().processName();
394  };
395 
396  // We group product groups according to their process names. The
397  // product groups have already been assembled in reverse-process
398  // history. The first process with a match wins. Note that it is
399  // an error for there to be multiple matches per process.
400  for (auto const groups_per_process :
401  ::ranges::views::chunk_by(product_groups, by_process_name)) {
402  // Keep track of all matched groups so that a helpful error
403  // message can be reported.
404  std::vector<cet::exempt_ptr<art::Group>> matched_groups;
405  for (auto const group : groups_per_process) {
406  if (group->tryToResolveProduct(wrapped.wrapped_product_type)) {
407  matched_groups.emplace_back(group.get());
408  }
409  }
410 
411  if (auto const num_matches = matched_groups.size(); num_matches == 1) {
412  return std::make_optional(GroupQueryResult{matched_groups[0]});
413  } else if (num_matches > 1) {
415  e << "Found " << num_matches
416  << " products rather than one that match all criteria\n"
417  << " C++ type: " << wrapped.product_type << '\n';
418  for (auto group : matched_groups) {
419  e << " " << group->productDescription().inputTag() << '\n';
420  }
421  throw e;
422  }
423  }
424  return std::nullopt;
425  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
Float_t e
Definition: plot.C:35
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 102 of file AssnsIter.h.

References Forward.

Referenced by art::Assns< L, R, void >::addMany(), pfpf::PFPAna::analyze(), cluster::ClusterAna::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::StandardHit3DBuilder::BuildChannelStatusVec(), lar_cluster3d::ClusterPathFinder::buildConvexHull(), lar_cluster3d::VoronoiPathFinder::buildConvexHull(), lar_cluster3d::ConvexHullPathFinder::buildConvexHull(), lar_cluster3d::MSTPathFinder::buildConvexHull(), 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(), lar_cluster3d::MSTPathFinder::FindBestPathInCluster(), voronoi2d::VoronoiDiagram::findBoundingBox(), lar_cluster3d::SnippetHit3DBuilder::findGoodHitPairs(), lar_cluster3d::StandardHit3DBuilder::findGoodTriplets(), lar_cluster3d::SnippetHit3DBuilder::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!=(), shims::operator!=(), art::SortInvalidFirst< T >::operator()(), art::const_AssnsIter< L, R, D, Dir >::operator<(), util::flags::operator<(), recob::operator<<(), reco::operator<<(), operator<=(), art::const_AssnsIter< L, R, D, Dir >::operator<=(), util::flags::operator<=(), ThreeVector< double >::operator==(), util::flags::operator==(), shims::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(), art::detail::print_path_names(), 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(), lar_cluster3d::MSTPathFinder::RunPrimsAlgorithm(), sort_pred2(), trkf::CCTrackMaker::SortMatches(), art::RangeSet::split_range(), hit::CCHitFinderAlg::StudyHits(), lar_cluster3d::VoronoiPathFinder::subDivideCluster(), throw_if_not_disjoint(), art::detail::triggerReport(), and util::flags::Bits_t< Storage_t >::unsetBits().

104  {
105  return (Dir == Direction::Forward) ? b : a;
106  }
int art::run_art ( int  argc,
char **  argv,
bpo::options_description &  all_desc,
OptionsHandlers &&  handlers 
)

Definition at line 142 of file run_art.cc.

References e, art::detail::exists_outside_prolog(), art::detail::fhicl_key(), fhicl::intermediate_table::get(), fhicl::ParameterSet::get(), fhicl::ParameterSet::has_key(), art::detail::info_success(), fhicl::ParameterSet::make(), art::detail::print_config_summary(), printArtException(), printBadAllocException(), printStdException(), printUnknownException(), art::detail::prune_config_if_enabled(), fhicl::ParameterSetRegistry::put(), mf::SetIteration(), shutdown_flag, mf::StartMessageFacility(), value, and art::detail::collected_exception::what().

Referenced by artapp().

146  {
147  // This must be added separately: how to deal with any non-option arguments.
148  bpo::positional_options_description pd;
149  // A single non-option argument will be taken to be the source data file.
150  pd.add("source", -1);
151  // Parse the command line.
152  bpo::variables_map vm;
153  try {
154  bpo::store(bpo::command_line_parser(argc, argv)
155  .options(all_desc)
156  .style(bpo::command_line_style::default_style &
157  ~bpo::command_line_style::allow_guessing)
158  .positional(pd)
159  .run(),
160  vm);
161  bpo::notify(vm);
162  }
163  catch (bpo::error const& e) {
164  cerr << "Exception from command line processing in " << argv[0] << ": "
165  << e.what() << '\n';
166  return 88;
167  }
168  // Preliminary argument checking.
169  for (auto& handler : handlers) {
170  auto const result = handler->checkOptions(vm);
171  if (result != 0) {
172  return result;
173  }
174  }
175  // Processing of arguments and post-processing of config.
176  fhicl::intermediate_table raw_config;
177  for (auto& handler : handlers) {
178  auto const result = handler->processOptions(vm, raw_config);
179  if (result != 0) {
180  return result;
181  }
182  }
183 
184  // If configuration pruning has been enabled, remove unused module
185  // configurations.
187  auto const scheduler_key = fhicl_key("services", "scheduler");
188  auto enabled_modules = detail::EnabledModules::none();
189  assert(exists_outside_prolog(raw_config, scheduler_key));
190  try {
191  auto const pruneConfigKey = fhicl_key(scheduler_key, "pruneConfig");
192  auto const reportUnusedKey = fhicl_key(scheduler_key, "reportUnused");
193  assert(exists_outside_prolog(raw_config, pruneConfigKey));
194  assert(exists_outside_prolog(raw_config, reportUnusedKey));
195  bool const prune_config = raw_config.get<bool>(pruneConfigKey);
196  bool const report_unused = raw_config.get<bool>(reportUnusedKey);
197  enabled_modules = detail::prune_config_if_enabled(
198  prune_config, report_unused, raw_config);
199  }
200  catch (Exception const& e) {
201  printArtException(e, "art");
202  return e.returnCode();
203  }
204  catch (cet::exception const& e) {
205  printArtException(e, "art");
206  return 65;
207  }
208  catch (std::bad_alloc const& bda) {
209  printBadAllocException("art");
210  return 68;
211  }
212  catch (std::exception const& e) {
213  printStdException(e, "art");
214  return 66;
215  }
216  catch (...) {
217  printUnknownException("art");
218  return 67;
219  }
220 
221  //
222  // Make the parameter set from the intermediate table.
223  //
224  fhicl::ParameterSet main_pset;
225  try {
226  main_pset = fhicl::ParameterSet::make(raw_config);
227  }
228  catch (cet::exception const& e) {
229  constexpr cet::HorizontalRule rule{36};
230  cerr << "ERROR: Failed to create a parameter set from parsed "
231  "configuration with exception "
232  << e.what() << ".\n";
233  cerr << " Intermediate configuration state follows:\n"
234  << rule('-') << '\n'
235  << rule('-') << '\n';
236  for (auto const& [key, value] : raw_config) {
237  cerr << key << ": " << value.to_string() << '\n';
238  }
239  cerr << rule('-') << '\n' << rule('-') << '\n';
240  return 91;
241  }
242  // Main parameter set must be placed in registry manually.
243  try {
245  }
246  catch (...) {
247  cerr << "Uncaught exception while inserting main parameter set into "
248  "registry.\n";
249  throw;
250  }
251 
252 #ifdef __linux__
253  // Tell the system memory allocator to only use one arena: they
254  // are 64 MiB in size, and the default is 8 * num_of_cores. Using
255  // the default means that when using 40 threads we get 40 arenas,
256  // which means we have 40 * 64 MiB = 2560 MiB of virtual address
257  // space devoted to per-thread heaps!!!
258  mallopt(M_ARENA_MAX, 1);
259 #endif // __linux__
260 
261  auto const services_pset =
262  main_pset.get<fhicl::ParameterSet>("services", {});
263  auto const scheduler_pset =
264  services_pset.get<fhicl::ParameterSet>("scheduler", {});
265 
266  // Handle early configuration-debugging
267  auto const debug_mode = debug_processing_mode(scheduler_pset);
268  if (debug_mode != debug_processing::none) {
269  auto const debug_pset = scheduler_pset.get<fhicl::ParameterSet>("debug");
270  auto const filename = debug_pset.get<std::string>("fileName");
271  auto const mode = debug_pset.get<std::string>("printMode");
272 
273  switch (debug_mode) {
274  case debug_processing::validate_config: {
275  [[fallthrough]];
276  }
277  case debug_processing::config_out: {
278  print_config(main_pset, filename, mode);
279  break;
280  }
281  case debug_processing::debug_config: {
282  print_config(main_pset, filename, mode);
283  return detail::info_success();
284  }
285  case debug_processing::config_summary: {
286  detail::print_config_summary(main_pset, mode, enabled_modules);
287  return detail::info_success();
288  }
289  case debug_processing::none:
290  break;
291  }
292  }
293  //
294  // Start the messagefacility
295  //
296  mf::SetIteration("JobSetup");
297  try {
299  services_pset.get<fhicl::ParameterSet>("message", {}));
300  }
301  catch (cet::exception const& e) {
302  cerr << e.what() << '\n';
303  return 69;
304  }
305  catch (exception const& e) {
306  cerr << e.what() << '\n';
307  return 70;
308  }
309  catch (...) {
310  cerr << "Caught unknown exception while initializing the message "
311  "facility.\n";
312  return 71;
313  }
314  mf::LogInfo("MF_INIT_OK") << "Messagelogger initialization complete.";
315  //
316  // Start the EventProcessor
317  //
318  int rc{0};
319  try {
320  EventProcessor ep{std::move(main_pset), std::move(enabled_modules)};
321  // Behavior of validate_config is to validate FHiCL syntax *and*
322  // user-specified configurations of paths, modules, services,
323  // etc. It is thus possible that an exception thrown during
324  // construction of the EventProcessor object can have nothing to
325  // do with a configuration error.
326  if (debug_mode == debug_processing::validate_config) {
327  return detail::info_success();
328  }
329  if (scheduler_pset.has_key("dataDependencyGraph")) {
330  return detail::info_success();
331  }
332  auto ep_rc = ep.runToCompletion();
333  if (ep_rc == EventProcessor::epSignal) {
334  cerr << "Art has handled signal " << art::shutdown_flag << ".\n";
335  if (scheduler_pset.get<bool>("errorOnSIGINT")) {
336  rc = 128 + art::shutdown_flag;
337  }
338  }
339  }
340  catch (Exception const& e) {
341  rc = e.returnCode();
342  printArtException(e, "art");
343  }
344  catch (cet::exception const& e) {
345  rc = 65;
346  printArtException(e, "art");
347  }
348  catch (detail::collected_exception const& e) {
349  rc = 1;
350  // LogSystem already adds a newline, so trim the one that's
351  // already in the exception message.
352  std::string const msg{e.what()};
353  mf::LogSystem("ArtException") << msg.substr(0, msg.find_last_of("\n"));
354  }
355  catch (bad_alloc const& bda) {
356  rc = 68;
357  printBadAllocException("art");
358  }
359  catch (exception const& e) {
360  rc = 66;
361  printStdException(e, "art");
362  }
363  catch (...) {
364  rc = 67;
365  printUnknownException("art");
366  }
367  return rc;
368  }
void SetIteration(string const &val)
static ParameterSetID const & put(ParameterSet const &ps)
bool exists_outside_prolog(fhicl::intermediate_table const &config, std::string const &key)
void print_config_summary(fhicl::ParameterSet const &pset, std::string const &verbosity, EnabledModules const &enabled_modules)
static ParameterSet make(intermediate_table const &tbl)
Definition: ParameterSet.cc:68
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
void printStdException(std::exception const &e, char const *prog)
std::atomic< int > shutdown_flag
void printUnknownException(char const *prog)
EnabledModules prune_config_if_enabled(bool prune_config, bool report_enabled, fhicl::intermediate_table &config)
void StartMessageFacility(fhicl::ParameterSet const &pset, string const &applicationName)
T get(std::string const &key) const
Definition: ParameterSet.h:314
std::enable_if_t< std::is_convertible_v< T, std::string >, std::string > fhicl_key(T const &name)
Definition: fhicl_key.h:12
MaybeLogger_< ELseverityLevel::ELsev_severe, false > LogSystem
bool has_key(std::string const &key) const
double value
Definition: spectrum.C:18
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
T get(std::string const &name)
void printArtException(cet::exception const &e, char const *prog)
constexpr int info_success()
Definition: info_success.h:8
void printBadAllocException(char const *prog)
Float_t e
Definition: plot.C:35
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
constexpr auto art::runFragment ( )

Definition at line 33 of file ProductSemantics.h.

34  {
35  return FragmentSemantic<Level::Run>{};
36  }
auto art::runFragment ( RangeSet const &  rs)
inline

Definition at line 44 of file ProductSemantics.h.

45  {
46  return RangedFragmentSemantic<Level::Run>{rs};
47  }
template<class T , class U >
std::enable_if_t<detail::are_handles_v<T, U>, bool> art::same_ranges ( T const &  a,
U const &  b 
)
template<class T , class U >
bool art::same_ranges ( SummedValue< T > const &  a,
SummedValue< U > const &  b 
)

Definition at line 186 of file SummedValue.h.

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

187  {
188  return same_ranges(a.rangeOfValidity(), b.rangeOfValidity());
189  }
bool same_ranges(SummedValue< T > const &a, SummedValue< U > const &b)
Definition: SummedValue.h:186
bool art::same_ranges ( RangeSet const &  l,
RangeSet const &  r 
)

Definition at line 408 of file RangeSet.cc.

References r.

409  {
410  return l == r;
411  }
TRandom r
Definition: spectrum.C:23
auto art::sampled_from ( std::string  process_name)
inline

Definition at line 110 of file Sampled.h.

111  {
112  return process_name.insert(0, "SampledFrom");
113  }
template<class COLLECTION >
void art::setPtr ( COLLECTION const &  coll,
std::type_info const &  iToType,
unsigned long  iIndex,
void const *&  oPtr 
)
template<typename T >
void art::setPtr ( cet::map_vector< T > const &  obj,
std::type_info const &  iToType,
unsigned long  iIndex,
void const *&  oPtr 
)

Definition at line 52 of file setPtr.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().

56 {
57  detail::value_type_helper vh;
58  std::string const wanted_type =
59  uniform_type_name(cet::demangle_symbol(iToType.name()));
60  static size_t pos = vh.look_past_pair<T>();
61  auto const it = obj.findOrThrow(cet::map_vector_key{iIndex});
62  assert(it != obj.end());
63  if (pos < wanted_type.size() and vh.starts_with_pair(wanted_type, pos)) {
64  // Want value_type, not mapped_type;
65  oPtr = detail::maybeCastObj(&*it, iToType);
66  } else {
67  oPtr = detail::maybeCastObj(&it->second, iToType);
68  }
69 }
std::string uniform_type_name(std::type_info const &tid)
void const * maybeCastObj(void const *address, std::type_info const &tiFrom, std::type_info const &tiTo)
void art::setupSignals ( bool  want_sigint_enabled)

Definition at line 120 of file UnixSignalHandlers.cc.

References handle_sigusr2().

Referenced by art::EventProcessor::EventProcessor().

121  {
122  installCustomHandler(SIGUSR2, handle_sigusr2);
123  installCustomHandler(SIGTERM, handle_sigusr2);
124  installCustomHandler(SIGQUIT, handle_sigusr2);
125  if (want_sigint_enabled) {
126  installCustomHandler(SIGINT, handle_sigusr2);
127  }
128  }
static void handle_sigusr2(int which, siginfo_t *, void *)
template<Direction Dir>
constexpr int art::signed_one ( )

Definition at line 17 of file AssnsIter.h.

References Forward.

18  {
19  return static_cast<std::underlying_type_t<Direction>>(Dir);
20  }
std::pair< std::string, std::string > art::split_process_and_path_names ( std::string  path_spec)

Definition at line 11 of file PathSpec.cc.

References art::detail::remove_whitespace().

12  {
14  auto const pos = path_spec.find(":");
15  if (pos == std::string::npos) {
16  return std::make_pair("", path_spec);
17  }
18  return std::make_pair(path_spec.substr(0, pos), path_spec.substr(pos + 1));
19  }
void remove_whitespace(std::string &str)
PathSpec path_spec(std::string const &path_spec)
Definition: PathSpec.cc:22
constexpr auto art::subRunFragment ( )

Definition at line 38 of file ProductSemantics.h.

Referenced by evgen::GENIEGen::endSubRun().

39  {
40  return FragmentSemantic<Level::SubRun>{};
41  }
auto art::subRunFragment ( RangeSet const &  rs)
inline

Definition at line 49 of file ProductSemantics.h.

50  {
51  return RangedFragmentSemantic<Level::SubRun>{rs};
52  }
template<typename T >
void art::swap ( PtrVector< T > &  lhs,
PtrVector< T > &  rhs 
)
inline

Definition at line 595 of file PtrVector.h.

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

Referenced by art::PtrVector< T >::swap().

596 {
597  lhs.swap(rhs);
598 }
void art::swap ( TriggerResults lhs,
TriggerResults rhs 
)
template<class T >
void art::swap ( Handle< T > &  a,
Handle< T > &  b 
)
template<class T >
void art::swap ( ValidHandle< T > &  a,
ValidHandle< T > &  b 
)
void art::swap ( RefCore lhs,
RefCore rhs 
)

Definition at line 70 of file RefCore.cc.

References art::RefCore::swap().

Referenced by art::RefCore::swap().

71  {
72  lhs.swap(rhs);
73  }
void art::swap ( OutputHandle a,
OutputHandle b 
)

Definition at line 71 of file OutputHandle.cc.

References art::OutputHandle::swap().

Referenced by art::OutputHandle::swap().

72  {
73  a.swap(b);
74  }
void art::swap ( TypeID left,
TypeID right 
)

Definition at line 108 of file TypeID.cc.

References art::TypeID::swap().

Referenced by art::TypeID::swap().

109  {
110  left.swap(right);
111  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
template<int I>
void art::swap ( Hash< I > &  a,
Hash< I > &  b 
)

Definition at line 207 of file Hash.h.

References art::Hash< I >::swap().

208  {
209  a.swap(b);
210  }
void art::swap ( ProcessHistory a,
ProcessHistory b 
)

Definition at line 237 of file ProcessHistory.cc.

References art::ProcessHistory::swap().

238  {
239  a.swap(b);
240  }
void art::throw_if_not_disjoint ( RunNumber_t const  rn,
EventRange const &  left,
EventRange const &  right 
)
noexcept

Definition at line 453 of file RangeSet.cc.

References art::errors::EventRangeOverlap, left(), and right().

Referenced by art::RangeSet::collapse(), and art::RangeSet::emplace_range().

456  {
457  if (left.is_disjoint(right))
458  return;
460  << "Attempt to merge event ranges that both contain one or more of the "
461  "same events\n"
462  << " Run: " << rn << '\n'
463  << " " << left << " vs.\n"
464  << " " << right << '\n';
465  }
constexpr auto const & right(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:102
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
constexpr auto const & left(const_AssnsIter< L, R, D, Dir > const &a, const_AssnsIter< L, R, D, Dir > const &b)
Definition: AssnsIter.h:94
std::string art::to_iso_string_assuming_unix_epoch ( Timestamp const &  ts)

Definition at line 8 of file Timestamp.cc.

References art::Timestamp::value().

Referenced by art::Timestamp::lowMask().

9  {
10  auto const t = static_cast<time_t>(ts.value());
11  auto const p = boost::posix_time::from_time_t(t);
12  return boost::posix_time::to_iso_string(p);
13  }
std::string art::to_string ( ModuleType const  mt)
inline

Definition at line 34 of file ModuleType.h.

References analyzer, filter, art::errors::LogicError, non_art, output_module, and producer.

Referenced by art::BasicOptionsHandler::BasicOptionsHandler(), art::PathManager::fillWorkers_(), art::PathManager::moduleInformation_(), operator<<(), art::PathManager::prependedTriggerPathNames_(), art::Wrapper< T >::productSize(), art::PostCloseFileRenamer::subTimestamp_(), art::RangeSet::to_compact_string(), and to_string().

35  {
36  switch (mt) {
37  case ModuleType::non_art:
38  return "non-art";
39  case ModuleType::producer:
40  return "producer";
41  case ModuleType::filter:
42  return "filter";
43  case ModuleType::analyzer:
44  return "analyzer";
45  case ModuleType::output_module:
46  return "output module";
47  default:
49  << "Unable to find string for unrecognized ModuleType value "
50  << static_cast<int>(mt) << ".\n";
51  }
52  }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::string art::to_string ( PathID const  id)

Definition at line 49 of file PathSpec.cc.

References to_string().

50  {
51  return std::to_string(id.id_);
52  }
std::string to_string(PathSpec const &spec)
Definition: PathSpec.cc:55
std::string art::to_string ( PathSpec const &  spec)

Definition at line 55 of file PathSpec.cc.

References art::PathSpec::name, art::PathSpec::path_id, and to_string().

Referenced by to_string().

56  {
57  return to_string(spec.path_id) + ':' + spec.name;
58  }
std::string to_string(PathSpec const &spec)
Definition: PathSpec.cc:55
auto art::to_tuple ( PathSpec const &  spec)
inlinenoexcept

Definition at line 53 of file PathSpec.h.

Referenced by operator<(), and operator==().

54  {
55  return std::tie(spec.name, spec.path_id);
56  }
std::string art::translateFileDeliveryStatus ( FileDeliveryStatus  stat)

Definition at line 8 of file FileDeliveryStatus.cc.

References art::detail::FDS::BAD_GATEWAY, art::detail::FDS::BAD_REQUEST, art::detail::FDS::CONFLICT, art::detail::FDS::FORBIDDEN, art::detail::FDS::NO_MORE_FILES, art::detail::FDS::NOT_FOUND, art::detail::FDS::PENDING, art::detail::FDS::SERVER_EXCEPTION, art::detail::FDS::SPECIFIC_ERRORS, SUCCESS, art::detail::FDS::TRY_AGAIN_LATER, and art::detail::FDS::UNAVAILABLE.

Referenced by art::detail::FileServiceProxy::obtainURI_().

9 {
10  switch (stat) {
11  default: {
12  std::ostringstream os;
13  os << "UNKNOWN" << std::setfill('0') << std::setw(3)
14  << static_cast<int>(stat);
15  return os.str();
16  }
18  return "PENDING";
20  return "SUCCESS";
22  return "TRY_AGAIN_LATER";
24  return "NO_MORE_FILES";
26  return "BAD_REQUEST";
28  return "FORBIDDEN";
30  return "NOT_FOUND";
32  return "CONFLICT";
34  return "SERVER_EXCEPTION";
36  return "BAD_GATEWAY";
38  return "UNAVAILABLE";
40  return "SPECIFIC_ERRORS";
41  }
42 }
#define SUCCESS
Definition: DBScan3DAlg.h:39
std::string art::translateFileDisposition ( FileDisposition  fd)

Definition at line 8 of file FileDisposition.cc.

References art::detail::FDS::PENDING.

9 {
10  switch (fd) {
11  default: {
12  std::ostringstream os;
13  os << "UNKNOWN" << std::setfill('0') << std::setw(3)
14  << static_cast<int>(fd);
15  return os.str();
16  }
18  return "PENDING";
19  case FileDisposition::TRANSFERRED:
20  return "TRANSFERED";
21  case FileDisposition::CONSUMED:
22  return "CONSUMED";
23  case FileDisposition::SKIPPED:
24  return "SKIPPED";
25  case FileDisposition::INCOMPLETE:
26  return "INCOMPLETE";
27  }
28 }
std::string art::translateFileTransferStatus ( FileTransferStatus  stat)

Definition at line 8 of file FileTransferStatus.cc.

References art::detail::FDS::BAD_REQUEST, art::detail::FDS::FORBIDDEN, art::detail::FTS::GONE, art::detail::FDS::NOT_FOUND, art::detail::FTS::PAYMENT_REQUIRED, art::detail::FDS::PENDING, art::detail::FTS::SERVER_ERROR, SUCCESS, art::detail::FTS::TOO_LARGE, art::detail::FTS::UNAUTHORIZED, art::detail::FDS::UNAVAILABLE, and art::detail::FTS::URI_TOO_LONG.

Referenced by art::detail::FileServiceProxy::obtainFileFromURI_().

9 {
10  switch (stat) {
11  default: {
12  std::ostringstream os;
13  os << "UNKNOWN" << std::setfill('0') << std::setw(3)
14  << static_cast<int>(stat);
15  return os.str();
16  }
18  return "PENDING";
20  return "SUCCESS";
22  return "BAD_REQUEST";
24  return "UNAUTHORIZED";
26  return "PAYMENT_REQUIRED";
28  return "FORBIDDEN";
30  return "NOT_FOUND";
32  return "GONE";
34  return "TOO_LARGE";
36  return "URI_TOO_LONG";
38  return "SERVER_ERROR";
40  return "UNAVAILABLE";
41  }
42 }
#define SUCCESS
Definition: DBScan3DAlg.h:39
constexpr auto art::underlying_value ( Level const  l)
noexcept

Definition at line 26 of file Level.h.

Referenced by is_above_most_deeply_nested_level(), is_level_contained_by(), level_down(), level_up(), and operator<<().

27  {
28  return static_cast<std::underlying_type_t<Level>>(l);
29  }
std::string art::uniform_type_name ( std::type_info const &  tid)
inline

Definition at line 36 of file uniform_type_name.h.

Referenced by art::TypeID::className(), getElementAddresses(), and setPtr().

37 {
38  return uniform_type_name(cet::demangle_symbol(tid.name()));
39 }
std::string uniform_type_name(std::string name)
std::string art::uniform_type_name ( std::string  name)
Parameters
[in]nameThe already-demangled name for a type.

Definition at line 158 of file uniform_type_name.cc.

159 {
160  using namespace std::string_literals;
161  // We must use the same conventions previously used by Reflex.
162  // The order is important.
163 
164  // Translate any inlined namespace
165  translateInlineNamespace(name);
166 
167  // We must change std::__cxx11:: -> std:: for all type names. This
168  // should not have implications for I/O because ROOT stores the data
169  // that STL objects represent rather than doing a "dumb serialization"
170  // of the class.
171  cet::replace_all(name, "std::__cxx11::"s, "std::"s);
172  // According to a report from Chris Jones, Apple Clang has a similar
173  // issue with std::__1.
174  cet::replace_all(name, "std::__1::"s, "std::"s);
175 
176  // No space after comma.
177  cet::replace_all(name, ", "s, ","s);
178  // No space before opening square bracket.
179  cet::replace_all(name, " ["s, "["s);
180  // Strip default allocator.
181  removeParameter(name, ",std::allocator<"s);
182  // Strip default comparator.
183  removeParameter(name, ",std::less<"s);
184  // Strip char traits.
185  removeParameter(name, ",std::char_traits<"s);
186  // std::basic_string<char> -> std::string
187  {
188  static std::regex const bs_regex("std::basic_string<char>\\s*"s);
189  reformat(name, bs_regex, "std::string"s);
190  }
191  // Put const qualifier before identifier.
192  constBeforeIdentifier(name);
193 
194  // No spaces between template brakets and arguments
195  // FIXME?: need a regex because just stripping the spaces
196  // can cause subsequent ">>" removal fail...
197  {
198  static std::regex const bk_regex("([_a-zA-Z0-9])( +)>");
199  static std::string const bk_format("$1>");
200  reformat(name, bk_regex, bk_format);
201  }
202 
203  // No consecutive '>'.
204  //
205  // FIXME: The first time we see a type with e.g. operator>> as a
206  // template argument, we could have a problem.
207  cet::replace_all(name, ">>"s, "> >"s);
208  // No u or l qualifiers for integers.
209  {
210  static std::regex const ul_regex("(.*[<,][0-9]+)[ul]l*([,>].*)"s);
211  reformat(name, ul_regex, "$1$2"s);
212  }
213  // For ROOT 6 and beyond.
214  cet::replace_all(name, "unsigned long long"s, "ULong64_t"s);
215  cet::replace_all(name, "long long"s, "Long64_t"s);
216  // Done.
217  return name;
218 }
std::string art::unique_filename ( std::string  stem,
std::string  extension = ".root" 
)

Definition at line 18 of file unique_filename.cc.

References close(), e, and art::errors::FileOpenError.

19 {
20  boost::filesystem::path const p(stem + "-%%%%-%%%%-%%%%-%%%%" + extension);
21  boost::filesystem::path outpath;
22  boost::system::error_code ec;
23  int tmp_fd = -1, error = 0;
24  do {
25  outpath = boost::filesystem::unique_path(p, ec);
26  } while (!ec && (tmp_fd = creat(outpath.c_str(), S_IRUSR | S_IWUSR)) == -1 &&
27  (error = errno) == EEXIST);
28  if (tmp_fd != -1) {
29  close(tmp_fd);
30  } else {
32  e << "RootOutput cannot ascertain a unique temporary filename for output "
33  "based on stem\n\""
34  << stem << "\": ";
35  if (ec) {
36  e << ec;
37  } else {
38  e << strerror(error);
39  }
40  e << ".\n";
41  throw e;
42  }
43  return outpath.native();
44 }
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
in close()
Float_t e
Definition: plot.C:35
std::string art::wrappedClassName ( std::string const &  className)

Definition at line 5 of file WrappedClassName.cc.

Referenced by art::BranchDescription::fluffTransients_().

6  {
7  static std::string const wrapperBegin("art::Wrapper<");
8  static std::string const wrapperEnd1(">");
9  static std::string const wrapperEnd2(" >");
10  std::string const& wrapperEnd =
11  (className[className.size() - 1] == '>' ? wrapperEnd2 : wrapperEnd1);
12  std::string wrapped;
13  wrapped.reserve(wrapperBegin.size() + className.size() + wrapperEnd.size());
14  wrapped += wrapperBegin;
15  wrapped += className;
16  wrapped += wrapperEnd;
17  return wrapped;
18  }

Variable Documentation

DebugValue art::debugit

Definition at line 14 of file DebugMacros.cc.

Referenced by art::ActionTable::addDefaults_().

DebugTasksValue art::debugTasks

Definition at line 75 of file TaskDebugMacros.cc.

template<typename T >
constexpr bool art::is_selector
Initial value:
=
std::is_base_of_v<SelectorBase, std::remove_reference_t<T>>

Definition at line 44 of file Selector.h.

template<typename T >
detail::SharedResource_t art::SharedResource {typeid(T).name(), true}

Definition at line 25 of file SharedResource.h.