ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODCore
xAODCore
tools
PackedLinkPersVector.h
Go to the documentation of this file.
1
// This file's extension implies that it's C, but it's really -*- C++ -*-.
2
/*
3
* Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration.
4
*/
15
16
17
#ifndef XAODCORE_PACKEDLINKPERSVECTOR_H
18
#define XAODCORE_PACKEDLINKPERSVECTOR_H
19
20
21
#include "
xAODCore/tools/AuxPersVector.h
"
22
#include "
AthContainers/PackedLink.h
"
23
24
25
namespace
xAOD
{
26
30
template
<
class
TARG,
class
VEC >
31
class
AuxPersVector
<
SG
::PackedLink<TARG>, VEC>
32
:
public
SG::PackedLinkVectorHolder
<TARG, typename VEC::allocator_type> {
33
34
public
:
36
typedef
VEC&
vector_type
;
37
39
AuxPersVector
(
SG::auxid_t
auxid
,
vector_type
vec
, [[maybe_unused]]
bool
isLinked
,
SG::IAuxStore
* store )
40
:
SG
::
PackedLinkVectorHolder
<TARG, typename VEC::allocator_type>
41
(
auxid
, &
vec
, store->
linkedVector
(
auxid
), false)
42
{
43
assert( !
isLinked
);
44
}
45
46
virtual
std::unique_ptr<SG::IAuxTypeVector>
clone
()
const override
{
47
return
std::make_unique<AuxPersVector>(*
this
);
48
}
49
};
// class AuxPersVector
50
51
55
template
<
class
TARG,
class
VALLOC,
class
VEC >
56
class
AuxPersVector
<
std
::
vector
<SG::PackedLink<TARG>, VALLOC>, VEC> :
57
public
SG::PackedLinkVVectorHolder
<TARG, VALLOC,
58
std::vector<SG::PackedLink<TARG>, VALLOC>,
59
typename VEC::allocator_type> {
60
61
public
:
63
typedef
VEC&
vector_type
;
64
66
AuxPersVector
(
SG::auxid_t
auxid
,
vector_type
vec
, [[maybe_unused]]
bool
isLinked
,
SG::IAuxStore
* store )
67
:
SG
::
PackedLinkVVectorHolder
<TARG, VALLOC,
68
std
::
vector
<
SG
::PackedLink<TARG>, VALLOC>,
69
typename VEC::allocator_type>
70
(
auxid
, &
vec
, store->
linkedVector
(
auxid
), false)
71
{
72
assert( !
isLinked
);
73
}
74
75
virtual
std::unique_ptr<SG::IAuxTypeVector>
clone
()
const override
{
76
return
std::make_unique<AuxPersVector>(*
this
);
77
}
78
};
// class AuxPersVector
79
80
81
}
// namespace xAOD
82
83
84
#endif
// not XAODCORE_PACKEDLINKPERSVECTOR_H
AuxPersVector.h
PackedLink.h
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::vec
vector_type & vec()
SG::IAuxStore
Interface for non-const operations on an auxiliary store.
Definition
IAuxStore.h:51
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::isLinked
bool isLinked() const
Definition
IAuxTypeVector.h:238
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::auxid
auxid_t auxid() const
Definition
IAuxTypeVector.h:244
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::linkedVector
virtual std::unique_ptr< IAuxTypeVector > linkedVector()
Definition
IAuxTypeVector.h:229
SG::PackedLinkVVectorHolder
Implementation of IAuxTypeVector for a vector of PackedLink.
Definition
PackedLinkVector.h:123
SG::PackedLinkVVectorHolder< TARG, VALLOC, std::vector< SG::PackedLink< TARG >, VALLOC >, VEC::allocator_type >::PackedLinkVVectorHolder
PackedLinkVVectorHolder(auxid_t auxid, vector_type *vecPtr, IAuxTypeVector *linkedVec, bool ownFlag)
SG::PackedLinkVectorHolder
Implementation of IAuxTypeVector for PackedLink types.
Definition
PackedLinkVector.h:43
SG::PackedLinkVectorHolder< TARG, VEC::allocator_type >::PackedLinkVectorHolder
PackedLinkVectorHolder(auxid_t auxid, vector_type *vecPtr, IAuxTypeVector *linkedVec, bool ownFlag)
vector
Definition
MultiHisto.h:13
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::AuxPersVector
AuxPersVector(SG::auxid_t auxid, vector_type vec, bool isLinked, SG::IAuxStore *store)
Constructor.
Definition
PackedLinkPersVector.h:39
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::vector_type
VEC & vector_type
Convenience type definition.
Definition
PackedLinkPersVector.h:36
xAOD::AuxPersVector< SG::PackedLink< TARG >, VEC >::clone
virtual std::unique_ptr< SG::IAuxTypeVector > clone() const override
Make a copy of this vector.
Definition
PackedLinkPersVector.h:46
xAOD::AuxPersVector< std::vector< SG::PackedLink< TARG >, VALLOC >, VEC >::AuxPersVector
AuxPersVector(SG::auxid_t auxid, vector_type vec, bool isLinked, SG::IAuxStore *store)
Constructor.
Definition
PackedLinkPersVector.h:66
xAOD::AuxPersVector< std::vector< SG::PackedLink< TARG >, VALLOC >, VEC >::vector_type
VEC & vector_type
Convenience type definition.
Definition
PackedLinkPersVector.h:63
xAOD::AuxPersVector< std::vector< SG::PackedLink< TARG >, VALLOC >, VEC >::clone
virtual std::unique_ptr< SG::IAuxTypeVector > clone() const override
Make a copy of this vector.
Definition
PackedLinkPersVector.h:75
SG
Forward declaration.
Definition
CaloCellPacker_400_500.h:32
SG::auxid_t
size_t auxid_t
Identifier for a particular aux data item.
Definition
AuxTypes.h:27
std
STL namespace.
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
Generated on
for ATLAS Offline Software by
1.17.0