11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_WITHASSOCIATEDSTRUCTBASE_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_WITHASSOCIATEDSTRUCTBASE_H 61 template <
typename Aux,
64 template <
typename CollProxy>
71 template <
typename CollProxy>
72 using main_t =
typename CollProxy::main_element_t;
84 template <
typename CollProxy>
89 template <
typename CollProxy>
97 template <
typename CollProxy,
typename Event,
typename Handle,
typename MainArgs>
100 return createAssnProxyMaker<CollProxy>(
101 event, std::forward<Handle>(mainHandle), mainArgs, std::make_index_sequence<NArgs>());
108 static constexpr std::size_t
NArgs = std::tuple_size<ArgTuple>();
111 template <
typename CollProxy,
118 MainArgs
const& mainArgs,
119 std::index_sequence<I...>)
122 event, mainHandle, mainArgs, std::get<I>(std::forward<ArgTuple>(args))...);
133 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_WITHASSOCIATEDSTRUCTBASE_H ProxyMaker< CollProxy > proxy_maker_t
Class to create the data proxy associated to a CollProxy.
typename proxy_maker_t< CollProxy >::aux_collection_proxy_t aux_collection_proxy_t
Type of association proxy created for the specified CollProxy.
Helper to create associated data proxy.
Aux aux_t
Type of associated data.
AuxTag tag
Tag for the associated data (same as the data type itself).
ArgTuple args
Argument construction storage as tuple.
Encloses LArSoft data product proxy objects and utilities.See this doxygen module for an introduction...
static constexpr std::size_t NArgs
Number of arguments stored.
Metadata metadata_t
Type of associated metadata.
typename CollProxy::main_element_t main_t
Type of main data product element from a proxy of type CollProxy.
WithAssociatedStructBase(ArgTuple &&args)
auto createAuxProxyMaker(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs)
Creates the associated data proxy by means of ProxyMaker.
auto createAssnProxyMaker(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs, std::index_sequence< I... >)
Event finding and building.