|
ATLAS Offline Software
|
Go to the documentation of this file.
41 std::pair<size_t, bool>
46 InitLinkFunc_t* initLinkFunc)
50 return std::make_pair (0
u,
true);
53 for (
size_t i = 1;
i <
links.size(); ++
i) {
57 size_t oldsz =
links.size();
58 size_t newsz = oldsz+1;
59 if (oldsz == 0 &&
sgkey != 0) {
64 return std::make_pair (
links.size() - 1, cacheValid);
91 InitLinkFunc_t* initLinkFunc)
97 bool cacheValid =
true;
99 size_t in_coll =
l.collection();
103 (lv, srcDLinks.
at(in_coll).key(), DLinks, sg, initLinkFunc);
105 cacheValid &= thisValid;
112 #ifndef XAOD_STANDALONE
135 InitLinkFunc_t* initLinkFunc)
137 bool cacheValid =
true;
139 if (
l.collection() != 0) {
143 size_t index_out =
index;
148 l.setIndex (index_out);
149 if (sgkey_out !=
sgkey) {
static bool thin(sgkey_t &sgkey, size_t &index, const SG::ThinningCache *thinningCache)
Adjust for thinning, with explicitly provided thinning cache.
static bool resizeLinks(LinkedVector &linkedVec, size_t sz)
Resize a linked vector of DataLinks.
Helper to access the IAuxTypeVector for an aux variable.
static std::pair< size_t, bool > findCollectionBase(LinkedVector &linkedVec, sgkey_t sgkey, DataLinkBase_span &links, IProxyDict *sg, InitLinkFunc_t *initLinkFunc)
Find the collection index in the linked DataLinks for a sgkey.
Auxiliary variable span wrapper.
@ u
Enums for curvilinear frames.
Simplified version of the C++20 std::span.
static bool applyThinningBase(IAuxTypeVector &linkedVec, PackedLinkBase_span &links, DataLinkBase_span &dlinks, const SG::ThinningCache *tc, IProxyDict *sg, InitLinkFunc_t *initLinkFunc)
Apply thinning to packed links, to prepare them for output.
Auxiliary variable span wrapper (const).
virtual bool tryELRemap(sgkey_t sgkey_in, size_t index_in, sgkey_t &sgkey_out, size_t &index_out)
Test to see if the target of an ElementLink has moved.
static bool updateLinksBase(IAuxTypeVector &linkedVec, PackedLinkBase_span &links, const const_DataLinkBase_span &srcDLinks, IProxyDict *sg, InitLinkFunc_t *initLinkFunc)
Update collection index of a collection of PackedLink.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
virtual bool resize(size_t sz)=0
Change the size of the vector.
A packed version of ElementLink.
Abstract interface for manipulating vectors of arbitrary types.
static DataLinkBase_span getLinkBaseSpan(IAuxTypeVector &linkedVec)
Return a span over all the linked DataLinkBase's, from the linked vector.
static IProxyDict * storeFromSpan(DataLinkBase_span &links)
Return the current store from the first valid link in the span.
Cache thinning decisions for converters.
const T & at(size_t index) const
Bounds-checked element access.
Implementation of IAuxTypeVector for PackedLink types.