11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H
12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H
18 #include "canvas/Utilities/InputTag.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,
114 MainArgs
const&, art::InputTag
const& auxInputTag
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,
149 art::InputTag
const& auxInputTag
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)
details::AssociatedData< main_element_t, aux_element_t, metadata_t, data_tag > aux_collection_proxy_t
Type of associated data proxy being created.
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.
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.