ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODInDetMeasurement
xAODInDetMeasurement
JaggedVecEltCache.h
Go to the documentation of this file.
1
#ifndef XAOD_INDETMEASUREMENT_UTILITIES_JAGGEDVECELTCACHE_H
2
#define XAOD_INDETMEASUREMENT_UTILITIES_JAGGEDVECELTCACHE_H
3
4
#include "
AthContainers/JaggedVecAccessor.h
"
5
6
namespace
xAOD::xAODInDetMeasurement::Utilities
{
7
template
<
typename
T>
8
class
JaggedVecEltCache
{
9
public
:
10
JaggedVecEltCache
(
SG::AuxVectorData
& cont,
const
SG::Accessor
<
SG::JaggedVecElt<T>
> &accessor,
unsigned
int
n) {
11
if
(n>0) {
12
assert(cont.
getStore
());
13
cont.
getStore
()->
getData
(accessor.linkedAuxid(),n, n);
14
m_elt
= accessor.getEltSpan(cont);
15
m_payload
= accessor.getPayloadSpan(cont);
16
}
17
}
18
unsigned
int
getBeginIndex
(
unsigned
int
obj_i)
const
{
19
assert(obj_i==0 || obj_i-1 <
m_elt
.size());
20
return
obj_i>0 ?
m_elt
[obj_i-1].end() : 0u;
21
}
22
unsigned
int
getEndIndex
(
unsigned
int
obj_i)
const
{
23
assert(obj_i <
m_elt
.size());
24
return
m_elt
[obj_i].end();
25
}
26
void
setValue
(
unsigned
int
elm_i, T &&value) {
27
assert(elm_i<
m_payload
.size());
28
m_payload
[elm_i]=std::move(value);
29
}
30
void
setValue
(
unsigned
int
elm_i,
const
T &value) {
31
assert(elm_i<
m_payload
.size());
32
m_payload
[elm_i]=value;
33
}
34
void
updateEndIndex
(
unsigned
int
obj_i,
unsigned
int
elm_i) {
35
assert(elm_i<=
m_payload
.size());
36
assert(obj_i<
m_elt
.size());
37
m_elt
[obj_i]=elm_i;
38
}
39
std::size_t
nObjects
()
const
{
return
m_elt
.size(); };
40
std::size_t
nElements
()
const
{
return
m_payload
.size(); };
41
private
:
42
SG::Accessor<SG::JaggedVecElt<T>
>::Elt_span
m_elt
;
43
SG::Accessor<SG::JaggedVecElt<T>
>::Payload_span
m_payload
;
44
};
45
}
46
#endif
JaggedVecAccessor.h
Helper class to provide type-safe access to aux data, specialized for JaggedVecElt.
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition
Control/AthContainers/AthContainers/Accessor.h:68
SG::AuxVectorData
Manage lookup of vectors of auxiliary data.
Definition
AuxVectorData.h:164
SG::AuxVectorData::getStore
SG::IAuxStore * getStore()
Return the current store, as a non-const interface.
SG::IAuxStore::getData
virtual void * getData(auxid_t auxid, size_t size, size_t capacity)=0
Return the data vector for one aux data item.
SG::JaggedVecElt
Describe one element of a jagged vector.
Definition
JaggedVecImpl.h:136
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::getEndIndex
unsigned int getEndIndex(unsigned int obj_i) const
Definition
JaggedVecEltCache.h:22
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::nObjects
std::size_t nObjects() const
Definition
JaggedVecEltCache.h:39
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::updateEndIndex
void updateEndIndex(unsigned int obj_i, unsigned int elm_i)
Definition
JaggedVecEltCache.h:34
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::m_payload
SG::Accessor< SG::JaggedVecElt< T > >::Payload_span m_payload
Definition
JaggedVecEltCache.h:43
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::nElements
std::size_t nElements() const
Definition
JaggedVecEltCache.h:40
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::getBeginIndex
unsigned int getBeginIndex(unsigned int obj_i) const
Definition
JaggedVecEltCache.h:18
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::setValue
void setValue(unsigned int elm_i, T &&value)
Definition
JaggedVecEltCache.h:26
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::setValue
void setValue(unsigned int elm_i, const T &value)
Definition
JaggedVecEltCache.h:30
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::m_elt
SG::Accessor< SG::JaggedVecElt< T > >::Elt_span m_elt
Definition
JaggedVecEltCache.h:42
xAOD::xAODInDetMeasurement::Utilities::JaggedVecEltCache::JaggedVecEltCache
JaggedVecEltCache(SG::AuxVectorData &cont, const SG::Accessor< SG::JaggedVecElt< T > > &accessor, unsigned int n)
Definition
JaggedVecEltCache.h:10
xAOD::xAODInDetMeasurement::Utilities
Definition
Event/xAOD/xAODInDetMeasurement/Root/Utilities.cxx:9
Generated on
for ATLAS Offline Software by
1.17.0