11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_WITHPROXYASAUXSTRUCTBASE_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_WITHPROXYASAUXSTRUCTBASE_H 23 #include <type_traits> 56 typename AuxTag = AuxProxy
62 <std::decay_t<std::tuple_element_t<0U, ArgTuple>>,
art::InputTag>(),
63 "The first argument of WithProxyAsAuxStructBase must be art::InputTag." 67 template <
typename CollProxy>
68 using main_t =
typename CollProxy::main_element_t;
77 template <
typename CollProxy>
89 <
typename CollProxy,
typename Event,
typename Handle,
typename MainArgs>
91 (Event
const&
event, Handle&& mainHandle, MainArgs
const& mainArgs)
93 return createAuxProxyImpl<CollProxy>(
94 event, std::forward<Handle>(mainHandle), mainArgs,
95 std::make_index_sequence<NArgs>()
105 static constexpr std::size_t
NArgs = std::tuple_size<ArgTuple>();
109 typename CollProxy,
typename Event,
typename Handle,
typename MainArgs,
113 Event
const& event, Handle&& mainHandle, MainArgs
const& mainArgs,
114 std::index_sequence<I...>
118 event, mainHandle, mainArgs,
119 std::get<I>(std::forward<ArgTuple>(args))...
134 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_WITHPROXYASAUXSTRUCTBASE_H AuxProxy aux_proxy_t
Type of auxiliary proxy.
static constexpr std::size_t NArgs
Number of arguments stored.
WithProxyAsAuxStructBase(ArgTuple &&args)
auto createAuxProxyMaker(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs)
Creates the associated data proxy by means of ProxyAsAuxProxyMaker.
ArgTuple args
Argument construction storage as tuple.
auto createAuxProxyImpl(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs, std::index_sequence< I... >)
typename CollProxy::main_element_t main_t
Type of main data product element from a proxy of type CollProxy.
Creates an auxiliary proxy wrapper for the specified proxy.
Encloses LArSoft data product proxy objects and utilities.See this doxygen module for an introduction...
Infrastructure for a collection proxy as auxiliary data for a proxy.
static auto make(Event const &event, Handle &&, MainArgs const &, art::InputTag const &auxProxyTag, AuxArgs &&...args)
Create a parallel data proxy collection using the specified tag.
Helper to create a proxy as auxiliary data for another proxy.
AuxTag tag
Tag for the associated data (same as the data type itself).
Event finding and building.