11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 22 #include <type_traits> 49 <
typename Main,
typename Aux,
typename Metadata,
typename AuxTag = Aux>
89 template<
typename Event,
typename Handle,
typename MainArgs>
91 (Event
const&
event, Handle&& mainHandle, MainArgs
const& mainArgs)
94 (event, std::forward<Handle>(mainHandle),
art::InputTag(mainArgs));
111 template<
typename Event,
typename Handle,
typename MainArgs>
113 Event
const& event, Handle&& mainHandle,
118 createFromTag(event, std::forward<Handle>(mainHandle), auxInputTag);
133 template<
typename Event,
typename Handle,
typename MainArgs,
typename Assns>
135 (Event
const&, Handle&&, MainArgs
const&, Assns
const& assns)
138 std::is_convertible<typename Assns::right_t, aux_element_t>(),
139 "Improper right type for association." 141 return makeAssociatedDataFrom<data_tag>(assns);
146 template<
typename Event,
typename Handle>
148 Event
const& event, Handle&& mainHandle,
154 (event, auxInputTag, mainHandle->size());
194 typename Main,
typename Aux,
typename Metadata,
195 typename CollProxy,
typename Tag = Aux
245 <
typename Event,
typename Handle,
typename MainArgs,
typename... Args>
247 Event
const& event, Handle&& mainHandle, MainArgs
const& margs,
253 std::forward<Handle>(mainHandle),
255 std::forward<Args>(args)...
270 typename Aux,
typename Metadata ,
274 template <
typename CollProxy>
276 <
typename CollProxy::main_element_t, Aux, Metadata, CollProxy, AuxTag>;
286 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H auto makeAssociatedDataFrom(Assns const &assns, std::size_t minSize=0)
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").
Creates an associated data wrapper for the specified types.
Event finding and building.