11 #ifndef LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 
   12 #define LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 
   18 #include "canvas/Utilities/InputTag.h" 
   22 #include <type_traits>  
   49     <
typename Main, 
typename Aux, 
typename Metadata, 
typename AuxTag = Aux>
 
   89     template<
typename Event, 
typename Handle, 
typename MainArgs>
 
   91       (Event 
const& event, Handle&& mainHandle, MainArgs 
const& mainArgs)
 
   94           (event, std::forward<Handle>(mainHandle), art::InputTag(mainArgs));
 
  111     template<
typename Event, 
typename Handle, 
typename MainArgs>
 
  113       Event 
const& event, Handle&& mainHandle,
 
  114       MainArgs 
const&, art::InputTag 
const& auxInputTag
 
  118           createFromTag(event, std::forward<Handle>(mainHandle), auxInputTag);
 
  133     template<
typename Event, 
typename Handle, 
typename MainArgs, 
typename Assns>
 
  135       (Event 
const&, Handle&&, MainArgs 
const&, Assns 
const& assns)
 
  138           std::is_convertible<typename Assns::right_t, aux_element_t>(),
 
  139           "Improper right type for association." 
  141         return makeAssociatedDataFrom<data_tag>(assns);
 
  146     template<
typename Event, 
typename Handle>
 
  148       Event 
const& event, Handle&& mainHandle,
 
  149       art::InputTag 
const& auxInputTag
 
  154           (event, auxInputTag, mainHandle->size());
 
  194     typename Main, 
typename Aux, 
typename Metadata,
 
  195     typename CollProxy, 
typename Tag = Aux
 
  245       <
typename Event, 
typename Handle, 
typename MainArgs, 
typename... Args>
 
  247       Event 
const& event, Handle&& mainHandle, MainArgs 
const& margs,
 
  253           std::forward<Handle>(mainHandle),
 
  255           std::forward<Args>(
args)...
 
  270       typename Aux, 
typename Metadata ,
 
  274       template <
typename CollProxy>
 
  276         <
typename CollProxy::main_element_t, Aux, Metadata, CollProxy, AuxTag>;
 
  286 #endif // LARDATA_RECOBASEPROXY_PROXYBASE_ASSOCIATEDDATAPROXYMAKER_H 
auto makeAssociatedDataFrom(Assns const &assns, std::size_t minSize=0)
static auto createFromTag(Event const &event, Handle &&mainHandle, art::InputTag const &auxInputTag)
details::AssociatedData< main_element_t, aux_element_t, metadata_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 association proxy collection using the specified tag. 
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &margs, Args &&...args)
Create a association proxy collection using main collection tag. 
Aux aux_element_t
Type of the auxiliary associated datum ("right"). 
Object to draft associated data interface. 
typename aux_collection_proxy_t::assns_t assns_t
Type of art association being used as input. 
Helper functions to create an AssociatedData object. 
Creates an associated data wrapper for the specified types. 
Metadata metadata_t
Type of metadata in the association. 
static auto make(Event const &event, Handle &&mainHandle, MainArgs const &mainArgs)
Create a association proxy collection using main collection tag. 
Tag data_tag
Tag labelling the associated data we are going to produce. 
art::Assns< Main, Aux, Metadata > assns_t
Type of art association. 
Main main_element_t
Type of the main datum ("left"). 
Creates an associated data wrapper for the specified types.