LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
Creates an auxiliary proxy wrapper for the specified proxy. More...
#include "ProxyAsAuxProxyMaker.h"
Public Types | |
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. More... | |
using | aux_proxy_t = AuxProxy |
Tag-type of the auxiliary proxy (not the type of the proxy!). More... | |
Static Public Member Functions | |
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. More... | |
Creates an auxiliary proxy wrapper for the specified proxy.
Main | type of main datum (element) to associate from ("left") |
AuxProxy | type of proxy collection to be associated |
CollProxy | type of proxy this associated data works for |
Tag | tag for the association proxy to be created |
withCollectionProxy()
This class is (indirectly) called when using proxy::withCollectionProxy()
in getCollection()
. Its task is to supervise the creation of the collection proxy that is used as auxiliary data for the main data type. The interface required by withCollectionProxy()
includes:
make()
method creating and returning the auxiliary 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 auxiliary collection proxy (coming from withCollectionProxy()
); equivalent to the signature: This class can be specialized. The default implementation just uses getCollection()
to create the auxiliary proxy, and merges it to the main collection proxy in a fashion similar to parallel data.
The template argument CollProxy
is designed for specialization of auxiliary data in the context of a specific proxy type.
Definition at line 133 of file ProxyAsAuxProxyMaker.h.
|
inherited |
Tag-type of the auxiliary proxy (not the type of the proxy!).
Definition at line 53 of file ProxyAsAuxProxyMaker.h.
|
inherited |
Tag labelling the associated data we are going to produce.
Definition at line 47 of file ProxyAsAuxProxyMaker.h.
|
inherited |
Type of the main datum.
Definition at line 50 of file ProxyAsAuxProxyMaker.h.
|
inlinestaticinherited |
Create a parallel data proxy collection using the specified tag.
Event | type of the event to read data from |
Handle | (unused) type of handle to the main data product |
MainArgs | (unused) any type convertible to art::InputTag |
AuxArgs | type of arguments for the creation of the auxiliary proxy |
event | event to create the proxy from |
auxProxyTag | tag for the creation of the auxiliary collection proxy |
args | other arguments for the creation of the auxiliary proxy |
The returned object exposes a random access container interface, with data indexed by the index of the corresponding object in the main collection.
The tag of the main collection proxy is ignored even if present, and the caller must specify it.
Definition at line 74 of file ProxyAsAuxProxyMaker.h.
References proxy::ProxyAsAuxProxyMakerBase< Main, AuxProxy, AuxTag >::makeAuxiliaryProxy().
Referenced by proxy::details::WithProxyAsAuxStructBase< AuxProxy, ArgTuple, AuxTag >::createAuxProxyImpl().