Creates an one-to-(zero-or-one) wrapper for the specified types. More...
#include <OneTo01DataProxyMaker.h>
Public Types | |
using | main_element_t = Main |
Type of the main datum ("left"). More... | |
using | aux_element_t = Aux |
Type of the auxiliary associated datum ("right"). More... | |
using | metadata_t = Metadata |
Type of associated metadata. More... | |
using | aux_collection_proxy_t = details::OneTo01Data< main_element_t, aux_element_t, metadata_t, data_tag > |
Type of associated data proxy being created. More... | |
using | assns_t = typename aux_collection_proxy_t::assns_t |
Type of art association being used as input. More... | |
Public Types inherited from proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, Tag > | |
using | data_tag = Tag |
Tag labelling the associated data we are going to produce. More... | |
using | main_element_t = Main |
Type of the main datum ("left"). More... | |
using | aux_element_t = Aux |
Type of the auxiliary associated datum ("right"). More... | |
using | metadata_t = Metadata |
Type of associated metadata. More... | |
using | aux_collection_proxy_t = details::OneTo01Data< main_element_t, aux_element_t, metadata_t, data_tag > |
Type of associated data proxy being created. More... | |
using | assns_t = typename aux_collection_proxy_t::assns_t |
Type of art association being used as input. More... | |
Static Public Member Functions | |
template<typename Event , typename Handle , typename MainArgs , typename... Args> | |
static auto | make (Event const &event, Handle &&mainHandle, MainArgs const &margs, Args &&...args) |
Create a association proxy collection using main collection tag. More... | |
Static Public Member Functions inherited from proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, Tag > | |
static auto | make (Event const &event, Handle &&mainHandle, MainArgs const &mainArgs) |
Create a association proxy collection using main collection tag. More... | |
static auto | make (Event const &event, Handle &&mainHandle, MainArgs const &, art::InputTag const &auxInputTag) |
Create a association proxy collection using the specified tag. More... | |
static auto | make (Event const &, Handle &&handle, MainArgs const &, Assns const &assns) |
Create a association proxy collection using the specified tag. More... | |
Private Types | |
using | base_t = OneTo01DataProxyMakerBase< Main, Aux, Metadata, Tag > |
Creates an one-to-(zero-or-one) wrapper for the specified types.
Main | type of main datum (element) to associate from ("left") |
Aux | type of datum (element) to associate to ("right") |
Metadata | type of metadata in the association |
CollProxy | type of proxy this associated data works for |
Tag | tag for the association proxy to be created |
withZeroOrOne()
This class is (indirectly) called when using proxy::withZeroOrOne()
in getCollection()
. Its task is to supervise the creation of the proxy to the data association between the main data type and an auxiliary one. The interface required by withZeroOrOne()
includes:make()
method creating and returning the associated data proxy with arguments an event, the main data product handle, a template argument representing the main collection information, and all the arguments required for the creation of the associated proxy (coming from withZeroOrOne()
); equivalent to the signature: This class can be specialized (see withAssociated()
for an example of the general procedure). The default implementation just wraps a one-to-(zero-or-one) art::Assns<Main, Aux>
data product fulfilling one-to-(zero or one) sequential association requirement.
The last template argument is designed for specialization of associations in the context of a specific proxy type.
Definition at line 201 of file OneTo01DataProxyMaker.h.
using proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, AuxTag >::assns_t = typename aux_collection_proxy_t::assns_t |
Type of art association being used as input.
Definition at line 72 of file OneTo01DataProxyMaker.h.
using proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, AuxTag >::aux_collection_proxy_t = details::OneTo01Data <main_element_t, aux_element_t, metadata_t, data_tag> |
Type of associated data proxy being created.
Definition at line 69 of file OneTo01DataProxyMaker.h.
using proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, AuxTag >::aux_element_t = Aux |
Type of the auxiliary associated datum ("right").
Definition at line 62 of file OneTo01DataProxyMaker.h.
|
private |
Definition at line 209 of file OneTo01DataProxyMaker.h.
using proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, AuxTag >::main_element_t = Main |
Type of the main datum ("left").
Definition at line 59 of file OneTo01DataProxyMaker.h.
using proxy::OneTo01DataProxyMakerBase< Main, Aux, Metadata, AuxTag >::metadata_t = Metadata |
Type of associated metadata.
Definition at line 65 of file OneTo01DataProxyMaker.h.
|
inlinestatic |
Create a association proxy collection using main collection tag.
Event | type of the event to read associations from |
Handle | type of data product handle |
MainArgs | any type convertible to art::InputTag |
Args | optional single type (art::InputTag required) |
event | the event to read associations from |
mainHandle | handle of the main collection data product |
margs | an object describing the main data product |
args | input tag for associated data, if different from main |
The returned object exposes a random access container interface, with data indexed by the index of the corresponding object in the main collection.
This implementation requires margs
object to be convertible by explicit type cast into a art::InputTag
; that input tag will be used to fetch the association.
Definition at line 250 of file OneTo01DataProxyMaker.h.