11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_WITHASSOCIATEDSTRUCTBASE_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_WITHASSOCIATEDSTRUCTBASE_H 68 template <
typename CollProxy>
class ProxyMaker,
74 template <
typename CollProxy>
75 using main_t =
typename CollProxy::main_element_t;
87 template <
typename CollProxy>
93 template <
typename CollProxy>
103 <
typename CollProxy,
typename Event,
typename Handle,
typename MainArgs>
105 (Event
const&
event, Handle&& mainHandle, MainArgs
const& mainArgs)
107 return createAssnProxyMaker<CollProxy>(
108 event, std::forward<Handle>(mainHandle), mainArgs,
109 std::make_index_sequence<NArgs>()
119 static constexpr std::size_t
NArgs = std::tuple_size<ArgTuple>();
123 typename CollProxy,
typename Event,
typename Handle,
typename MainArgs,
127 Event
const& event, Handle&& mainHandle, MainArgs
const& mainArgs,
128 std::index_sequence<I...>
132 event, mainHandle, mainArgs,
133 std::get<I>(std::forward<ArgTuple>(args))...
147 #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.