LArSoft
v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
|
Creates an associated data wrapper for the specified types. More...
#include "ParallelDataProxyMaker.h"
Public Types | |
using | main_element_t = Main |
Type of the main datum. More... | |
using | aux_collection_t = AuxColl |
Type of the auxiliary data product. More... | |
using | aux_element_t = Aux |
Type of the auxiliary datum. More... | |
using | aux_collection_proxy_t = details::ParallelData< aux_collection_t, aux_element_t, data_tag > |
Type of associated data proxy being created. More... | |
using | data_tag = Tag |
Tag labelling the associated data we are going to produce. 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 auto | make (Event const &event, Handle &&mainHandle, MainArgs const &mainArgs) |
Create a parallel data proxy collection using main collection tag. More... | |
static auto | make (Event const &event, Handle &&mainHandle, MainArgs const &, art::InputTag const &auxInputTag) |
Create a parallel data proxy collection using the specified tag. More... | |
static auto | make (Event const &, Handle &&, MainArgs const &, aux_collection_t const &auxColl) |
Create a parallel data proxy collection using the specified tag. More... | |
Private Types | |
using | base_t = ParallelDataProxyMakerBase< Main, AuxColl, Aux, Tag > |
Creates an associated data wrapper for the specified types.
Main | type of main datum (element) to associate from ("left") |
Aux | type of datum (element) to associate to ("right") |
CollProxy | type of proxy this associated data works for |
Tag | tag for the association proxy to be created |
AuxColl | type of the auxiliary data (default: std::vector<Aux> ) |
withParallelDataAs()
, wrapParallelDataAs()
This class is (indirectly) called when using proxy::withParallelData()
in getCollection()
. Its task is to supervise the creation of the proxy to the auxiliary data parallel to the main data type. The interface required by withParallelData()
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 associated proxy (coming from withParallelData()
); equivalent to the signature: This class can be specialized (see withParallelData()
for an example). The default implementation just wraps a one-to-many std::vector<Aux>
data product fulfilling "parallel data product" requirement (see the "Definitions" section in ProxyBase.h
documentation).
The last template argument is designed for specialization of auxiliary data in the context of a specific proxy type.
Definition at line 207 of file ParallelDataProxyMaker.h.
using proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::aux_collection_proxy_t = details::ParallelData<aux_collection_t, aux_element_t, data_tag> |
Type of associated data proxy being created.
Definition at line 85 of file ParallelDataProxyMaker.h.
using proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::aux_collection_t = AuxColl |
Type of the auxiliary data product.
Definition at line 78 of file ParallelDataProxyMaker.h.
using proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::aux_element_t = Aux |
Type of the auxiliary datum.
Definition at line 81 of file ParallelDataProxyMaker.h.
|
private |
Definition at line 215 of file ParallelDataProxyMaker.h.
|
inherited |
Tag labelling the associated data we are going to produce.
Definition at line 72 of file ParallelDataProxyMaker.h.
using proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::main_element_t = Main |
Type of the main datum.
Definition at line 75 of file ParallelDataProxyMaker.h.
|
inlinestaticinherited |
Create a parallel data proxy collection using main collection tag.
Event | type of the event to read data from |
Handle | type of handle to the main data product |
MainArgs | _(unused)_ any type convertible to art::InputTag |
event | the event to read data from |
mainHandle | _(unused)_ handle to the main collection data product |
mainArgs | an object describing the main data product |
The returned object exposes a random access container interface, with data indexed by the index of the corresponding object in the main collection.
The mainArgs
object is of an arbitrary type that must be convertible by explicit type cast into a art::InputTag
; that input tag will be used to fetch the parallel data collection.
Definition at line 107 of file ParallelDataProxyMaker.h.
References proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::createFromTag().
|
inlinestaticinherited |
Create a parallel data proxy collection using the specified tag.
Event | type of the event to read data from |
Handle | type of handle to the main data product |
MainArgs | (unused) any type convertible to art::InputTag |
event | the event to read associations from |
mainHandle | (unused) handle to the main collection data product |
auxInputTag | the tag of the data to be read |
The returned object exposes a random access container interface, with data indexed by the index of the corresponding object in the main collection.
Definition at line 128 of file ParallelDataProxyMaker.h.
References proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::createFromTag(), and proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::make().
|
inlinestaticinherited |
Create a parallel data proxy collection using the specified tag.
Event | (unused) 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 |
auxColl | the collection to be wrapped |
The returned object exposes a random access container interface, with data indexed by the index of the corresponding object in the main collection.
Definition at line 151 of file ParallelDataProxyMaker.h.
References proxy::ParallelDataProxyMakerBase< Main, AuxColl, Aux, AuxTag >::createFromTag().
|
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 parallel 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 254 of file ParallelDataProxyMaker.h.