11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ONETO01DATAPROXYMAKER_H 12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ONETO01DATAPROXYMAKER_H 23 #include <type_traits> 50 typename Main,
typename Aux,
typename Metadata = void,
92 template<
typename Event,
typename Handle,
typename MainArgs>
94 (Event
const&
event, Handle&& mainHandle, MainArgs
const& mainArgs)
97 (event, std::forward<Handle>(mainHandle),
art::InputTag(mainArgs));
114 template<
typename Event,
typename Handle,
typename MainArgs>
116 Event
const& event, Handle&& mainHandle,
121 createFromTag(event, std::forward<Handle>(mainHandle), auxInputTag);
137 template<
typename Event,
typename Handle,
typename MainArgs,
typename Assns>
139 (Event
const&, Handle&& handle, MainArgs
const&, Assns
const& assns)
142 std::is_convertible<typename Assns::right_t, aux_element_t>(),
143 "Improper right type for one-to-(zero-or-one) association." 145 return makeOneTo01dataFrom<data_tag>(assns, handle->size());
150 template<
typename Event,
typename Handle>
152 Event
const& event, Handle&& mainHandle,
art::InputTag const& auxInputTag
157 (event, auxInputTag, mainHandle->size());
198 typename Main,
typename Aux,
typename Metadata,
199 typename CollProxy,
typename Tag = Aux
249 <
typename Event,
typename Handle,
typename MainArgs,
typename... Args>
251 Event
const& event, Handle&& mainHandle, MainArgs
const& margs,
257 std::forward<Handle>(mainHandle),
259 std::forward<Args>(args)...
276 typename Aux,
typename Metadata ,
280 template <
typename CollProxy>
282 <
typename CollProxy::main_element_t, Aux, Metadata, CollProxy, AuxTag>;
291 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_ONETO01DATAPROXYMAKER_H static auto make(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs)
Create a association proxy collection using main collection tag.
auto makeOneTo01dataFrom(Assns const &assns, std::size_t minSize=0)
Processes and returns an one-to-(zero/one) associated data object.
art::Assns< main_t, aux_t > assns_t
Type of the source association.
static auto createFromTag(Event const &event, Handle &&mainHandle, art::InputTag const &auxInputTag)
Auxiliary data from one-to-(zero-or-one) sequential association.
Aux aux_element_t
Type of the auxiliary associated datum ("right").
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &, art::InputTag const &auxInputTag)
Create a association proxy collection using the specified tag.
Creates an one-to-(zero-or-one) wrapper for the specified types.
Main main_element_t
Type of the main datum ("left").
Object for one-to-zero/or/one associated data interface.
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &margs, Args &&...args)
Create a association proxy collection using main collection tag.
Encloses LArSoft data product proxy objects and utilities.See this doxygen module for an introduction...
typename aux_collection_proxy_t::assns_t assns_t
Type of art association being used as input.
Helper functions to create data structures associated to a proxy.
Tag data_tag
Tag labelling the associated data we are going to produce.
Creates an one-to-(zero-or-one) wrapper for the specified types.
Event finding and building.
Metadata metadata_t
Type of associated metadata.