11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 21 #include <type_traits> 46 template <
typename Main,
typename Aux,
typename Metadata,
typename AuxTag = Aux>
86 template <
typename Event,
typename Handle,
typename MainArgs>
87 static auto make(Event
const&
event, Handle&& mainHandle, MainArgs
const& mainArgs)
106 template <
typename Event,
typename Handle,
typename MainArgs>
112 return createFromTag(event, std::forward<Handle>(mainHandle), auxInputTag);
127 template <
typename Event,
typename Handle,
typename MainArgs,
typename Assns>
128 static auto make(Event
const&, Handle&&, MainArgs
const&, Assns
const& assns)
130 static_assert(std::is_convertible<typename Assns::right_t, aux_element_t>(),
131 "Improper right type for association.");
132 return makeAssociatedDataFrom<data_tag>(assns);
136 template <
typename Event,
typename Handle>
141 return makeAssociatedDataFrom<main_element_t, aux_element_t, metadata_t, data_tag>(
142 event, auxInputTag, mainHandle->size());
179 template <
typename Main,
typename Aux,
typename Metadata,
typename CollProxy,
typename Tag = Aux>
224 template <
typename Event,
typename Handle,
typename MainArgs,
typename... Args>
225 static auto make(Event
const&
event, Handle&& mainHandle, MainArgs
const& margs, Args&&... args)
228 event, std::forward<Handle>(mainHandle), margs, std::forward<Args>(args)...);
239 template <
typename Aux,
typename Metadata ,
typename AuxTag
242 template <
typename CollProxy>
254 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H static auto createFromTag(Event const &event, Handle &&mainHandle, art::InputTag const &auxInputTag)
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &, art::InputTag const &auxInputTag)
Create a association proxy collection using the specified tag.
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &margs, Args &&...args)
Create a association proxy collection using main collection tag.
Aux aux_element_t
Type of the auxiliary associated datum ("right").
Object to draft associated data interface.
typename aux_collection_proxy_t::assns_t assns_t
Type of art association being used as input.
Helper functions to create an AssociatedData object.
Encloses LArSoft data product proxy objects and utilities.See this doxygen module for an introduction...
Creates an associated data wrapper for the specified types.
Metadata metadata_t
Type of metadata in the association.
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs)
Create a association proxy collection using main collection tag.
Tag data_tag
Tag labelling the associated data we are going to produce.
art::Assns< Main, Aux, Metadata > assns_t
Type of art association.
Main main_element_t
Type of the main datum ("left").
static auto make(Event const &, Handle &&, MainArgs const &, Assns const &assns)
Create a association proxy collection using the specified tag.
Creates an associated data wrapper for the specified types.
Event finding and building.