11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_PARALLELDATAPROXYMAKER_H
12 #define LARDATA_RECOBASEPROXY_PROXYBASE_PARALLELDATAPROXYMAKER_H
20 #include "canvas/Utilities/InputTag.h"
105 template<
typename Event,
typename Handle,
typename MainArgs>
107 (Event
const& event, Handle&& mainHandle, MainArgs
const& mainArgs)
110 (event, std::forward<Handle>(mainHandle), art::InputTag(mainArgs));
127 template<
typename Event,
typename Handle,
typename MainArgs>
129 Event
const& event, Handle&& mainHandle,
130 MainArgs
const&, art::InputTag
const& auxInputTag
134 createFromTag(event, std::forward<Handle>(mainHandle), auxInputTag);
149 template<
typename Event,
typename Handle,
typename MainArgs>
153 return makeParallelDataFrom<aux_collection_t, aux_element_t, data_tag>
159 template<
typename Event,
typename Handle>
161 (Event
const& event, Handle&&, art::InputTag
const& auxInputTag)
163 return makeParallelDataFrom<aux_collection_t, aux_element_t, data_tag>
164 (event, auxInputTag);
204 typename Main,
typename Aux,
typename CollProxy,
typename Tag = Aux,
205 typename AuxColl = std::vector<Aux>
253 <
typename Event,
typename Handle,
typename MainArgs,
typename... Args>
255 Event
const& event, Handle&& mainHandle, MainArgs
const& margs,
261 std::forward<Handle>(mainHandle),
263 std::forward<Args>(
args)...
280 template <
typename Aux,
typename AuxTag,
typename AuxColl =
void>
282 template <
typename CollProxy>
284 <
typename CollProxy::main_element_t, Aux, CollProxy, AuxTag, AuxColl>;
287 template <
typename Aux,
typename AuxTag>
289 template <
typename CollProxy>
291 <
typename CollProxy::main_element_t, Aux, CollProxy, AuxTag>;
301 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_PARALLELDATAPROXYMAKER_H
Object to draft parallel data interface.
Helper functions to create proxy::ParallelData objects.
Creates an associated data wrapper for the specified types.
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &margs, Args &&...args)
Create a association proxy collection using main collection tag.
Auxiliary data from parallel data products.
AuxColl aux_collection_t
Type of the auxiliary data product.
Creates an parallel data wrapper for the specified types.
static auto createFromTag(Event const &event, Handle &&, art::InputTag const &auxInputTag)
Main main_element_t
Type of the main datum.
Tag data_tag
Tag labelling the associated data we are going to produce.
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs)
Create a parallel data proxy collection using main collection tag.
details::ParallelData< aux_collection_t, aux_element_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 parallel data proxy collection using the specified tag.
Aux aux_element_t
Type of the auxiliary datum.