16#ifndef ATHCONTAINERS_DATAVECTORASELV_H
17#define ATHCONTAINERS_DATAVECTORASELV_H
25#include "AthLinks/ElementLink.h"
33using AthContainers::IProxyDict;
48 const DV* last_d =
nullptr;
50 for (
const typename DV::base_value_type* elt : v) {
52 if (cont_b != last_b) {
54 last_d =
dynamic_cast<const DV*
>(cont_b);
58 ret.emplace_back (*last_d, elt->index(), store);
76 throw SG::ExcDVToELV (
"Element in view container does not derive from AuxElement.");
91std::vector<ElementLink<DV> >
94 std::vector<ElementLink<DV> > ret;
104 for (
size_t i = 0; i <
sz; i++)
105 ret.emplace_back (v, i, store);
Associate AuxStore classes with EDM container classes.
Manage lookup of vectors of auxiliary data.
Exceptions that can be thrown from AthContainers.
ElementLink implementation for ROOT usage.
Manage lookup of vectors of auxiliary data.
static IProxyDict * store()
Fetch the current store.
Exception — Can't convert DataVector to vector of ElementLinks.
void dataVectorViewAsELV(const std::true_type &, const DV &v, std::vector< ElementLink< DV > > &ret, IProxyDict *store)
Helper for dataVectorViewAsELV.
std::vector< ElementLink< DV > > dataVectorAsELV(const DV &v, IProxyDict *store=0)
Helper to make a vector<EL> from a DataVector.
@ OWN_ELEMENTS
this data object owns its elements
Associate AuxStore classes with EDM container classes (default implementation).