ATLAS Offline Software
Classes | Public Types | Public Member Functions | Protected Attributes | Private Types | Private Attributes | List of all members
ElementLinkVector< DOBJ > Class Template Reference

ElementLinkVector implementation for standalone ROOT. More...

#include <ElementLinkVector.h>

Inheritance diagram for ElementLinkVector< DOBJ >:
Collaboration diagram for ElementLinkVector< DOBJ >:

Classes

class  ELVIterator
 
class  Short2LongRef
 a functor turning an ElemLinkRef into an ElementLink More...
 

Public Types

typedef std::vector< DataLink< DOBJ > > DataLinkVector
 
typedef ElementLink< DOBJ > ElemLink
 
typedef ElemLink::ElementConstPointer ElementConstPointer
 
typedef ElemLink::index_type index_type
 
typedef ElemLink::ID_type ID_type
 
typedef ElemLink::sgkey_t sgkey_t
 
typedef ElementLinkVector< CONTAINER > ElemLinkVec
 Definition of the current type. More...
 
typedef ElementLink< CONTAINER > ElemLink
 Type of the EL that we have a vector of. More...
 
vector typedefs: it behaves like a vector<ElemLink>
typedef ElemLinkreference
 
typedef ElemLink const_reference
 
typedef ELVIterator< typename RefVector::iterator > iterator
 
typedef ELVIterator< typename RefVector::const_iterator > const_iterator
 
typedef RefVector::size_type size_type
 
typedef RefVector::difference_type difference_type
 
typedef ElemLink value_type
 
typedef RefVector::allocator_type allocator_type
 
typedef ElemLinkpointer
 
typedef const ElemLinkconst_pointer
 
typedef ELVIterator< typename RefVector::reverse_iterator > reverse_iterator
 
typedef ELVIterator< typename RefVector::const_reverse_iterator > const_reverse_iterator
 
STL-like type definitions
typedef ElemLink value_type
 Standard typedef for the type of the held objects. More...
 
typedef ElemLinkreference
 Type of the reference pointing to one element link. More...
 
typedef const ElemLinkconst_reference
 Type of the constant reference pointing to one element link. More...
 
typedef std::vector< ElemLink >::iterator iterator
 Type of the iterator for traversing the vector. More...
 
typedef std::vector< ElemLink >::const_iterator const_iterator
 Type of the constant iterator for traversing the vector. More...
 
typedef std::vector< ElemLink >::reverse_iterator reverse_iterator
 Type of the reverse iterator for traversing the vector. More...
 
typedef std::vector< ElemLink >::const_reverse_iterator const_reverse_iterator
 Type of the constant reverse iterator for traversing the vector. More...
 
typedef std::vector< ElemLink >::size_type size_type
 Type of the size of the vector. More...
 

Public Member Functions

ElemLinkVecoperator= (const ElemLinkVec &rhs)
 Assignment operator. More...
 
bool operator== (const ElementLinkVector &rhs) const
 Comparison operator. More...
 
bool operator!= (const ElementLinkVector &rhs) const
 Comparison operator. More...
 
virtual bool toTransient ()
 Reset the object's internal cache. More...
 
bool toPersistent ()
 Function copying the transient data into the persistent variables. More...
 
const std::vector< uint32_t > & persKeys () const
 Get the keys/identifiers of the referenced containers. More...
 
const std::vector< uint32_t > & persKeys () const
 Get the keys/identifiers of the referenced containers. More...
 
void setPersKeys (const std::vector< uint32_t > &keys)
 Set the keys/identifiers of the referenced containers. More...
 
void setPersKeys (const std::vector< uint32_t > &keys)
 Set the keys/identifiers of the referenced containers. More...
 
const std::vector< uint32_t > & persIndices () const
 Get the indices of the referenced objects in the containers. More...
 
const std::vector< uint32_t > & persIndices () const
 Get the indices of the referenced objects in the containers. More...
 
void setPersIndices (const std::vector< uint32_t > &indices)
 Set the indices of the referenced objects in the containers. More...
 
void setPersIndices (const std::vector< uint32_t > &indices)
 Set the indices of the referenced objects in the containers. More...
 
recommended (fast) access to contents of ElemLinks

by-pass the expensive creation of ElemLinks

ElementConstPointer elementCPtr (size_type index) const
 pointer to an element, given its ElementLinkVector index. O(1) More...
 
index_type elementIndex (size_type index) const
 host index of an element, given its ElementLinkVector index. O(1) More...
 
ID_type elementDataID (size_type index) const
 dataID (long ref) of an element, given its ElementLinkVector index. O(1) More...
 
iterators to DataLinkVector of host dobjs. Use e.g. for persistency
const DataLinkVectorhostDObjs () const
 
DataLinkVector::iterator beginHostDObjs ()
 
DataLinkVector::iterator endHostDObjs ()
 
DataLinkVector::const_iterator beginHostDObjs () const
 
DataLinkVector::const_iterator endHostDObjs () const
 
DataLinkVector::const_iterator findHostDObj (const ElemLink &link) const
 find the host of an element. Returns endHostDObjs() if not found More...
 
DataLinkVector::iterator findHostDObj (const ElemLink &link)
 find the host of an element. Returns endHostDObjs() if not found More...
 
void moveHostDObjs (DataLinkVector &dobjs)
 
vector constructors (no Allocators)
 ElementLinkVector ()
 
 ElementLinkVector (size_type n, const ElemLink &link)
 
 ElementLinkVector (int n, const ElemLink &link=ElemLink())
 
 ElementLinkVector (long n, const ElemLink &link=ElemLink())
 
 ElementLinkVector (size_type n)
 
 ElementLinkVector (const ElemLinkVec &vec)
 
 ElementLinkVector (ElemLinkVec &&vec) noexcept
 
ElementLinkVectoroperator= (const ElemLinkVec &vec)
 
ElementLinkVectoroperator= (ElemLinkVec &&vec) noexcept
 
template<class InputIterator >
void assign (InputIterator first, InputIterator last)
 
void assign (size_type n, const ElemLink &link)
 
bool toPersistent ()
 
bool toPersistent (std::vector< typename DataLinkVector::size_type > &shortrefs)
 
bool toPersistentDL ()
 
bool toTransient ()
 Reset the object's internal cache. More...
 
void doRemap ()
 
vector iterators
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
vector capacity
size_type size () const
 
size_type max_size () const
 
void resize (size_type sz, const ElemLink &link=ElemLink())
 
size_type capacity () const
 
bool empty () const
 
void reserve (size_type n)
 
vector element accessors. NB only CONST accessors
const_reference operator[] (size_type n) const
 
const_reference at (size_type n) const
 
const_reference front () const
 
const_reference back () const
 
Constructors
 ElementLinkVector ()
 Default constructor. More...
 
 ElementLinkVector (size_type n, const ElemLink &link=ElemLink())
 Constructor creating a vector of a given size. More...
 
 ElementLinkVector (const ElemLinkVec &parent)
 Copy constructor. More...
 
Vector iterator functions
iterator begin ()
 Get an iterator pointing at the first element. More...
 
const_iterator begin () const
 Get a constant iterator pointing at the first element. More...
 
iterator end ()
 Get an iterator pointing at the end of the container. More...
 
const_iterator end () const
 Get a constant iterator pointing at the end of the container. More...
 
reverse_iterator rbegin ()
 Get a reverse iterator pointing at the last element. More...
 
const_reverse_iterator rbegin () const
 Get a constant reverse iterator pointing at the last element. More...
 
reverse_iterator rend ()
 Get a reverse iterator pointing at the beginning of the container. More...
 
const_reverse_iterator rend () const
 Get a constant reverse iterator pointing at the beginning of the container. More...
 
Vector capacity functions
size_type size () const
 Get the size of the vector. More...
 
size_type max_size () const
 Get the maximal size of the object. More...
 
size_type capacity () const
 Get the capacity of the currently allocated object. More...
 
void resize (size_type sz, const ElemLink &link=ElemLink())
 Resize the vector to the specified size. More...
 
void reserve (size_type sz)
 Reserve some slots in the vector. More...
 
bool empty () const
 Function checking if the vector is empty. More...
 
Vector element accessors
const_reference operator[] (size_type n) const
 Get the element at a given index. More...
 
const_reference at (size_type n) const
 Get the element at a given index (with size check) More...
 
const_reference front () const
 Get the first element. More...
 
const_reference back () const
 Get the last element. More...
 

Protected Attributes

std::vector< uint32_t > m_persKeys
 Keys/identifiers of the referenced containers. More...
 
std::vector< uint32_t > m_persIndices
 Indices of the referenced objects in the containers. More...
 
bool m_isDirectIO
 A transient variable signaling when direct I/O is happening. More...
 

Private Types

typedef ElementLinkVector< DOBJ > ElemLinkVec
 
typedef SG::ELVRef< DOBJ > ElemLinkRef
 
typedef std::vector< ElemLinkRefRefVector
 the element links stored as ElemLinkRefs for compactness More...
 
typedef ROOT::Meta::Selection::ElementLinkVector< CONTAINER >::self DictSel
 Needed to take the Reflex/Cling specifications into account. More...
 

Private Attributes

RefVector m_shortRefs
 
DataLinkVector m_hostDObjs
 the dobjs hosting our elements. They are all of type DOBJ More...
 
std::vector< ElemLinkm_elVec
 Transient vector of element links. More...
 

Vector modifiers

void push_back (const ElemLink &link)
 
void pop_back ()
 
void push_back (typename DataLinkVector::size_type nameIndex, typename ElemLinkRef::index_type elementIndex)
 
iterator insert (iterator position, const ElemLink &link)
 
void insert (iterator position, size_type n, const ElemLink &link)
 
iterator erase (iterator position)
 
iterator erase (iterator first, iterator last)
 
void swap (ElemLinkVec &vec)
 
void clear ()
 
void push_back (const ElemLink &el)
 Add a new element link at the end of the vector. More...
 
void pop_back ()
 Remove the last element from the vector. More...
 
iterator erase (iterator position)
 Erase one element from the vector. More...
 
iterator erase (iterator first, iterator last)
 Erase a set of elements from the vector. More...
 
void swap (ElemLinkVec &vec)
 Swap the container's contents with another object's. More...
 
template<class InputIterator >
void assign (InputIterator first, InputIterator last)
 Fill the vector with the contents of another container. More...
 
void assign (size_type n, const ElemLink &link)
 Fill the vector with N identical links. More...
 
iterator insert (iterator position, const ElemLink &link)
 Insert a link in a certain position. More...
 
void insert (iterator position, size_type n, const ElemLink &link)
 Insert a number of identical links in a certain position. More...
 
void clear ()
 Clear the object. More...
 
void toTransient (uint64_t &dummy)
 Function setting up the object for forward indexing types. More...
 
void toTransient (uint32_t &dummy)
 
template<typename INDEX_TYPE >
void toTransient (INDEX_TYPE &dummy)
 Function taking care of all the other indexing types (no direct ROOT I/O) More...
 
void removeHostObj (const ElemLink &)
 remove host of link from list. O(N) in m_hostDObjs (which is small) More...
 
void addHostDObj (const ElemLink &link)
 add host of link to list. No duplicates. O(N) in m_hostDObjs More...
 
RefVector::const_iterator shortIterFromLong (const_iterator longIter) const
 get a short ref iterator from an iterator More...
 
RefVector::iterator shortIterFromLong (iterator longIter)
 get a short ref iterator from an iterator More...
 

FIXME don't know how to implement

typedef ROOT::Meta::Selection::ElementLinkVector< DOBJ >::self DictSel
 Needed for the simplified Reflex class name. More...
 
template<class InputIterator >
 ElementLinkVector (InputIterator first, InputIterator last)
 
template<class InputIterator >
void insert (iterator position, InputIterator first, InputIterator last)
 
bool operator== (const ElemLinkVec &, const ElemLinkVec &)
 access m_shortRefs More...
 
bool operator< (const ElemLinkVec &, const ElemLinkVec &)
 access m_shortRefs More...
 

Detailed Description

template<typename DOBJ>
class ElementLinkVector< DOBJ >

ElementLinkVector implementation for standalone ROOT.

a vector of "compact" element links. It turns the host data object key into an index. The memory size of a compact link is three words/link, and only 2 words/link needs to be persistified. It also maintains a vector of hosts used to generate the "short ref"

   This class provides part of the interface provided by the offline
   implementation of ElementLinkVector. Just enough to make the code
   meaningfully usable in ROOT. But the plan is not to provide the
   full flexibility of the offline class.
Author
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Parameters
DOBJhost object type (e,g. vector<Elem>, NOT Elem), All host data objects must have the same type. xxx
IndexingPolicypolicy to find the element in the host DOBJ
IndexingPolicy is generated automatically for STL sequences (e.g. vector, DataList etc). For other types of containers (e.g. maps), the container author must define the container type using the macros in tools/DeclareIndexingPolicies.h
Advanced developers may have to define an ad-hoc indexing policy (e.g. GenParticleIndexing in GeneratorObjects/McEventIndexingPolicy.h)
Author
ATLAS Collaboration
Id
ElementLinkVector.h 702198 2015-10-21 20:58:43Z ssnyder

Definition at line 64 of file AthLinks/ElementLinkVector.h.

Member Typedef Documentation

◆ allocator_type

template<typename DOBJ >
typedef RefVector::allocator_type ElementLinkVector< DOBJ >::allocator_type

Definition at line 135 of file AthLinks/ElementLinkVector.h.

◆ const_iterator [1/2]

template<typename DOBJ >
typedef std::vector< ElemLink >::const_iterator ElementLinkVector< DOBJ >::const_iterator

Type of the constant iterator for traversing the vector.

Definition at line 54 of file A/AthLinks/ElementLinkVector.h.

◆ const_iterator [2/2]

template<typename DOBJ >
typedef ELVIterator<typename RefVector::const_iterator> ElementLinkVector< DOBJ >::const_iterator

Definition at line 129 of file AthLinks/ElementLinkVector.h.

◆ const_pointer

template<typename DOBJ >
typedef const ElemLink* ElementLinkVector< DOBJ >::const_pointer

Definition at line 137 of file AthLinks/ElementLinkVector.h.

◆ const_reference [1/2]

template<typename DOBJ >
typedef const ElemLink& ElementLinkVector< DOBJ >::const_reference

Type of the constant reference pointing to one element link.

Definition at line 50 of file A/AthLinks/ElementLinkVector.h.

◆ const_reference [2/2]

template<typename DOBJ >
typedef ElemLink ElementLinkVector< DOBJ >::const_reference

Definition at line 127 of file AthLinks/ElementLinkVector.h.

◆ const_reverse_iterator [1/2]

template<typename DOBJ >
typedef std::vector< ElemLink >::const_reverse_iterator ElementLinkVector< DOBJ >::const_reverse_iterator

Type of the constant reverse iterator for traversing the vector.

Definition at line 59 of file A/AthLinks/ElementLinkVector.h.

◆ const_reverse_iterator [2/2]

template<typename DOBJ >
typedef ELVIterator<typename RefVector::const_reverse_iterator> ElementLinkVector< DOBJ >::const_reverse_iterator

Definition at line 139 of file AthLinks/ElementLinkVector.h.

◆ DataLinkVector

template<typename DOBJ >
typedef std::vector< DataLink<DOBJ> > ElementLinkVector< DOBJ >::DataLinkVector

Definition at line 72 of file AthLinks/ElementLinkVector.h.

◆ DictSel [1/2]

template<typename DOBJ >
typedef ROOT::Meta::Selection::ElementLinkVector< CONTAINER >::self ElementLinkVector< DOBJ >::DictSel
private

Needed to take the Reflex/Cling specifications into account.

Definition at line 185 of file A/AthLinks/ElementLinkVector.h.

◆ DictSel [2/2]

template<typename DOBJ >
typedef ROOT::Meta::Selection::ElementLinkVector< DOBJ>::self ElementLinkVector< DOBJ >::DictSel
private

Needed for the simplified Reflex class name.

Definition at line 418 of file AthLinks/ElementLinkVector.h.

◆ difference_type

template<typename DOBJ >
typedef RefVector::difference_type ElementLinkVector< DOBJ >::difference_type

Definition at line 133 of file AthLinks/ElementLinkVector.h.

◆ ElementConstPointer

template<typename DOBJ >
typedef ElemLink::ElementConstPointer ElementLinkVector< DOBJ >::ElementConstPointer

Definition at line 99 of file AthLinks/ElementLinkVector.h.

◆ ElemLink [1/2]

template<typename DOBJ >
typedef ElementLink< CONTAINER > ElementLinkVector< DOBJ >::ElemLink

Type of the EL that we have a vector of.

Definition at line 40 of file A/AthLinks/ElementLinkVector.h.

◆ ElemLink [2/2]

template<typename DOBJ >
typedef ElementLink<DOBJ> ElementLinkVector< DOBJ >::ElemLink

Definition at line 73 of file AthLinks/ElementLinkVector.h.

◆ ElemLinkRef

template<typename DOBJ >
typedef SG::ELVRef<DOBJ> ElementLinkVector< DOBJ >::ElemLinkRef
private

Definition at line 68 of file AthLinks/ElementLinkVector.h.

◆ ElemLinkVec [1/2]

template<typename DOBJ >
typedef ElementLinkVector< CONTAINER > ElementLinkVector< DOBJ >::ElemLinkVec

Definition of the current type.

Definition at line 38 of file A/AthLinks/ElementLinkVector.h.

◆ ElemLinkVec [2/2]

template<typename DOBJ >
typedef ElementLinkVector<DOBJ> ElementLinkVector< DOBJ >::ElemLinkVec
private

Definition at line 67 of file AthLinks/ElementLinkVector.h.

◆ ID_type

template<typename DOBJ >
typedef ElemLink::ID_type ElementLinkVector< DOBJ >::ID_type

Definition at line 101 of file AthLinks/ElementLinkVector.h.

◆ index_type

template<typename DOBJ >
typedef ElemLink::index_type ElementLinkVector< DOBJ >::index_type

Definition at line 100 of file AthLinks/ElementLinkVector.h.

◆ iterator [1/2]

template<typename DOBJ >
typedef std::vector< ElemLink >::iterator ElementLinkVector< DOBJ >::iterator

Type of the iterator for traversing the vector.

Definition at line 52 of file A/AthLinks/ElementLinkVector.h.

◆ iterator [2/2]

template<typename DOBJ >
typedef ELVIterator<typename RefVector::iterator> ElementLinkVector< DOBJ >::iterator

Definition at line 128 of file AthLinks/ElementLinkVector.h.

◆ pointer

template<typename DOBJ >
typedef ElemLink* ElementLinkVector< DOBJ >::pointer

Definition at line 136 of file AthLinks/ElementLinkVector.h.

◆ reference [1/2]

template<typename DOBJ >
typedef ElemLink& ElementLinkVector< DOBJ >::reference

Type of the reference pointing to one element link.

Definition at line 48 of file A/AthLinks/ElementLinkVector.h.

◆ reference [2/2]

template<typename DOBJ >
typedef ElemLink& ElementLinkVector< DOBJ >::reference

Definition at line 125 of file AthLinks/ElementLinkVector.h.

◆ RefVector

template<typename DOBJ >
typedef std::vector<ElemLinkRef> ElementLinkVector< DOBJ >::RefVector
private

the element links stored as ElemLinkRefs for compactness

Definition at line 92 of file AthLinks/ElementLinkVector.h.

◆ reverse_iterator [1/2]

template<typename DOBJ >
typedef std::vector< ElemLink >::reverse_iterator ElementLinkVector< DOBJ >::reverse_iterator

Type of the reverse iterator for traversing the vector.

Definition at line 56 of file A/AthLinks/ElementLinkVector.h.

◆ reverse_iterator [2/2]

template<typename DOBJ >
typedef ELVIterator<typename RefVector::reverse_iterator> ElementLinkVector< DOBJ >::reverse_iterator

Definition at line 138 of file AthLinks/ElementLinkVector.h.

◆ sgkey_t

template<typename DOBJ >
typedef ElemLink::sgkey_t ElementLinkVector< DOBJ >::sgkey_t

Definition at line 102 of file AthLinks/ElementLinkVector.h.

◆ size_type [1/2]

template<typename DOBJ >
typedef std::vector< ElemLink >::size_type ElementLinkVector< DOBJ >::size_type

Type of the size of the vector.

Definition at line 61 of file A/AthLinks/ElementLinkVector.h.

◆ size_type [2/2]

template<typename DOBJ >
typedef RefVector::size_type ElementLinkVector< DOBJ >::size_type

Definition at line 132 of file AthLinks/ElementLinkVector.h.

◆ value_type [1/2]

template<typename DOBJ >
typedef ElemLink ElementLinkVector< DOBJ >::value_type

Standard typedef for the type of the held objects.

Definition at line 46 of file A/AthLinks/ElementLinkVector.h.

◆ value_type [2/2]

template<typename DOBJ >
typedef ElemLink ElementLinkVector< DOBJ >::value_type

Definition at line 134 of file AthLinks/ElementLinkVector.h.

Constructor & Destructor Documentation

◆ ElementLinkVector() [1/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector

Definition at line 423 of file AthLinks/ElementLinkVector.h.

423  : ElementLinkVectorBase() {
424 }

◆ ElementLinkVector() [2/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( size_type  n,
const ElemLink link 
)
inline

Definition at line 195 of file AthLinks/ElementLinkVector.h.

195  :
197  {
198  if (n > 0)
199  addHostDObj(link);
200  }

◆ ElementLinkVector() [3/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( int  n,
const ElemLink link = ElemLink() 
)
inline

Definition at line 202 of file AthLinks/ElementLinkVector.h.

202  :
204  {
205  if (n > 0)
206  addHostDObj(link);
207  }

◆ ElementLinkVector() [4/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( long  n,
const ElemLink link = ElemLink() 
)
inline

Definition at line 209 of file AthLinks/ElementLinkVector.h.

209  :
211  {
212  if (n > 0)
213  addHostDObj(link);
214  }

◆ ElementLinkVector() [5/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( size_type  n)
inlineexplicit

Definition at line 216 of file AthLinks/ElementLinkVector.h.

216  :

◆ ElementLinkVector() [6/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( const ElemLinkVec vec)
inline

Definition at line 219 of file AthLinks/ElementLinkVector.h.

219  :
221  m_shortRefs(vec.m_shortRefs), m_hostDObjs(vec.m_hostDObjs) { }

◆ ElementLinkVector() [7/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( ElemLinkVec &&  vec)
inlinenoexcept

Definition at line 223 of file AthLinks/ElementLinkVector.h.

223  :
224  ElementLinkVectorBase( std::move(vec) ),
225  m_shortRefs(std::move(vec.m_shortRefs)),
226  m_hostDObjs(std::move(vec.m_hostDObjs)) { }

◆ ElementLinkVector() [8/11]

template<typename DOBJ >
template<class InputIterator >
ElementLinkVector< DOBJ >::ElementLinkVector ( InputIterator  first,
InputIterator  last 
)
private

◆ ElementLinkVector() [9/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( )

Default constructor.

◆ ElementLinkVector() [10/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( size_type  n,
const ElemLink link = ElemLink() 
)

Constructor creating a vector of a given size.

◆ ElementLinkVector() [11/11]

template<typename DOBJ >
ElementLinkVector< DOBJ >::ElementLinkVector ( const ElemLinkVec parent)

Copy constructor.

Member Function Documentation

◆ addHostDObj()

template<typename DOBJ >
void ElementLinkVector< DOBJ >::addHostDObj ( const ElemLink link)
private

add host of link to list. No duplicates. O(N) in m_hostDObjs

◆ assign() [1/4]

template<typename DOBJ >
template<class InputIterator >
void ElementLinkVector< DOBJ >::assign ( InputIterator  first,
InputIterator  last 
)

Fill the vector with the contents of another container.

◆ assign() [2/4]

template<typename DOBJ >
template<class InputIterator >
void ElementLinkVector< DOBJ >::assign ( InputIterator  first,
InputIterator  last 
)
inline

Definition at line 251 of file AthLinks/ElementLinkVector.h.

251  {
252  clear();
253  insert(begin(), first, last);
254  }

◆ assign() [3/4]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::assign ( size_type  n,
const ElemLink link 
)

Fill the vector with N identical links.

◆ assign() [4/4]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::assign ( size_type  n,
const ElemLink link 
)
inline

Definition at line 255 of file AthLinks/ElementLinkVector.h.

255  {
256  clear();
257  insert(begin(), n, link);
258  }

◆ at() [1/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::at ( size_type  n) const
inline

Get the element at a given index (with size check)

Definition at line 134 of file A/AthLinks/ElementLinkVector.h.

134 { return m_elVec.at( n ); }

◆ at() [2/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::at ( size_type  n) const
inline

Definition at line 309 of file AthLinks/ElementLinkVector.h.

309 { return m_shortRefs.at(n).elementLink(); }

◆ back() [1/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::back ( ) const
inline

Get the last element.

Definition at line 138 of file A/AthLinks/ElementLinkVector.h.

138 { return m_elVec.back(); }

◆ back() [2/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::back ( ) const
inline

Definition at line 313 of file AthLinks/ElementLinkVector.h.

313 { return m_shortRefs.back().elementLink(); }

◆ begin() [1/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::begin ( )
inline

Get an iterator pointing at the first element.

Definition at line 89 of file A/AthLinks/ElementLinkVector.h.

89 { return m_elVec.begin(); }

◆ begin() [2/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::begin ( )
inline

Definition at line 274 of file AthLinks/ElementLinkVector.h.

274 { return iterator(m_shortRefs.begin(), Short2LongRef()); }

◆ begin() [3/4]

template<typename DOBJ >
const_iterator ElementLinkVector< DOBJ >::begin ( ) const
inline

Get a constant iterator pointing at the first element.

Definition at line 91 of file A/AthLinks/ElementLinkVector.h.

91 { return m_elVec.begin(); }

◆ begin() [4/4]

template<typename DOBJ >
const_iterator ElementLinkVector< DOBJ >::begin ( ) const
inline

Definition at line 275 of file AthLinks/ElementLinkVector.h.

275  {
276  return const_iterator(m_shortRefs.begin(), Short2LongRef());
277  }

◆ beginHostDObjs() [1/2]

template<typename DOBJ >
DataLinkVector::iterator ElementLinkVector< DOBJ >::beginHostDObjs ( )
inline

Definition at line 166 of file AthLinks/ElementLinkVector.h.

166  {
167  return m_hostDObjs.begin();
168  }

◆ beginHostDObjs() [2/2]

template<typename DOBJ >
DataLinkVector::const_iterator ElementLinkVector< DOBJ >::beginHostDObjs ( ) const
inline

Definition at line 172 of file AthLinks/ElementLinkVector.h.

172  {
173  return m_hostDObjs.begin();
174  }

◆ capacity() [1/2]

template<typename DOBJ >
size_type ElementLinkVector< DOBJ >::capacity ( ) const
inline

Get the capacity of the currently allocated object.

Definition at line 118 of file A/AthLinks/ElementLinkVector.h.

118 { return m_elVec.capacity(); }

◆ capacity() [2/2]

template<typename DOBJ >
size_type ElementLinkVector< DOBJ >::capacity ( ) const
inline

Definition at line 297 of file AthLinks/ElementLinkVector.h.

297 { return m_shortRefs.capacity(); }

◆ clear() [1/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::clear ( )

Clear the object.

◆ clear() [2/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::clear ( )
inline

Definition at line 343 of file AthLinks/ElementLinkVector.h.

343  {
344  m_hostDObjs.clear();
345  m_shortRefs.clear();
346  }

◆ doRemap()

template<typename DOBJ >
void ElementLinkVector< DOBJ >::doRemap ( )

◆ elementCPtr()

template<typename DOBJ >
ElementConstPointer ElementLinkVector< DOBJ >::elementCPtr ( size_type  index) const
inline

pointer to an element, given its ElementLinkVector index. O(1)

Definition at line 149 of file AthLinks/ElementLinkVector.h.

149  {
150  return m_shortRefs[index].cptr();
151  }

◆ elementDataID()

template<typename DOBJ >
ID_type ElementLinkVector< DOBJ >::elementDataID ( size_type  index) const
inline

dataID (long ref) of an element, given its ElementLinkVector index. O(1)

Definition at line 157 of file AthLinks/ElementLinkVector.h.

157  {
158  return m_shortRefs[index].dataID();
159  }

◆ elementIndex()

template<typename DOBJ >
index_type ElementLinkVector< DOBJ >::elementIndex ( size_type  index) const
inline

host index of an element, given its ElementLinkVector index. O(1)

Definition at line 153 of file AthLinks/ElementLinkVector.h.

153  {
154  return m_shortRefs[index].elementIndex();
155  }

◆ empty() [1/2]

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::empty ( ) const
inline

Function checking if the vector is empty.

Definition at line 124 of file A/AthLinks/ElementLinkVector.h.

124 { return ( size() == 0 ); }

◆ empty() [2/2]

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::empty ( ) const
inline

Definition at line 298 of file AthLinks/ElementLinkVector.h.

298 { return 0 == size(); }

◆ end() [1/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::end ( )
inline

Get an iterator pointing at the end of the container.

Definition at line 94 of file A/AthLinks/ElementLinkVector.h.

94 { return m_elVec.end(); }

◆ end() [2/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::end ( )
inline

Definition at line 278 of file AthLinks/ElementLinkVector.h.

278 { return iterator(m_shortRefs.end(), Short2LongRef()); }

◆ end() [3/4]

template<typename DOBJ >
const_iterator ElementLinkVector< DOBJ >::end ( ) const
inline

Get a constant iterator pointing at the end of the container.

Definition at line 96 of file A/AthLinks/ElementLinkVector.h.

96 { return m_elVec.end(); }

◆ end() [4/4]

template<typename DOBJ >
const_iterator ElementLinkVector< DOBJ >::end ( ) const
inline

Definition at line 279 of file AthLinks/ElementLinkVector.h.

279  {
280  return const_iterator(m_shortRefs.end(), Short2LongRef());
281  }

◆ endHostDObjs() [1/2]

template<typename DOBJ >
DataLinkVector::iterator ElementLinkVector< DOBJ >::endHostDObjs ( )
inline

Definition at line 169 of file AthLinks/ElementLinkVector.h.

169  {
170  return m_hostDObjs.end();
171  }

◆ endHostDObjs() [2/2]

template<typename DOBJ >
DataLinkVector::const_iterator ElementLinkVector< DOBJ >::endHostDObjs ( ) const
inline

Definition at line 175 of file AthLinks/ElementLinkVector.h.

175  {
176  return m_hostDObjs.end();
177  }

◆ erase() [1/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::erase ( iterator  first,
iterator  last 
)

Erase a set of elements from the vector.

◆ erase() [2/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::erase ( iterator  first,
iterator  last 
)

◆ erase() [3/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::erase ( iterator  position)

Erase one element from the vector.

◆ erase() [4/4]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::erase ( iterator  position)

◆ findHostDObj() [1/2]

template<typename DOBJ >
DataLinkVector::iterator ElementLinkVector< DOBJ >::findHostDObj ( const ElemLink link)

find the host of an element. Returns endHostDObjs() if not found

◆ findHostDObj() [2/2]

template<typename DOBJ >
DataLinkVector::const_iterator ElementLinkVector< DOBJ >::findHostDObj ( const ElemLink link) const

find the host of an element. Returns endHostDObjs() if not found

◆ front() [1/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::front ( ) const
inline

Get the first element.

Definition at line 136 of file A/AthLinks/ElementLinkVector.h.

136 { return m_elVec.front(); }

◆ front() [2/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::front ( ) const
inline

Definition at line 311 of file AthLinks/ElementLinkVector.h.

311 { return m_shortRefs.front().elementLink(); }

◆ hostDObjs()

template<typename DOBJ >
const DataLinkVector& ElementLinkVector< DOBJ >::hostDObjs ( ) const
inline

Definition at line 165 of file AthLinks/ElementLinkVector.h.

165 { return m_hostDObjs; }

◆ insert() [1/5]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::insert ( iterator  position,
const ElemLink link 
)

Insert a link in a certain position.

◆ insert() [2/5]

template<typename DOBJ >
iterator ElementLinkVector< DOBJ >::insert ( iterator  position,
const ElemLink link 
)

◆ insert() [3/5]

template<typename DOBJ >
template<class InputIterator >
void ElementLinkVector< DOBJ >::insert ( iterator  position,
InputIterator  first,
InputIterator  last 
)
private

◆ insert() [4/5]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::insert ( iterator  position,
size_type  n,
const ElemLink link 
)

Insert a number of identical links in a certain position.

◆ insert() [5/5]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::insert ( iterator  position,
size_type  n,
const ElemLink link 
)

◆ max_size() [1/2]

template<typename DOBJ >
size_type ElementLinkVector< DOBJ >::max_size ( ) const
inline

Get the maximal size of the object.

Definition at line 116 of file A/AthLinks/ElementLinkVector.h.

116 { return m_elVec.max_size(); }

◆ max_size() [2/2]

template<typename DOBJ >
size_type ElementLinkVector< DOBJ >::max_size ( ) const
inline

Definition at line 295 of file AthLinks/ElementLinkVector.h.

295 { return m_shortRefs.max_size(); }

◆ moveHostDObjs()

template<typename DOBJ >
void ElementLinkVector< DOBJ >::moveHostDObjs ( DataLinkVector dobjs)

◆ operator!=()

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::operator!= ( const ElementLinkVector< DOBJ > &  rhs) const

Comparison operator.

◆ operator=() [1/3]

template<typename DOBJ >
ElemLinkVec& ElementLinkVector< DOBJ >::operator= ( const ElemLinkVec rhs)

Assignment operator.

◆ operator=() [2/3]

template<typename DOBJ >
ElementLinkVector& ElementLinkVector< DOBJ >::operator= ( const ElemLinkVec vec)
inline

Definition at line 228 of file AthLinks/ElementLinkVector.h.

229  {
230  if (this != &vec) {
231  m_persKeys = vec.m_persKeys;
232  m_persIndices = vec.m_persIndices;
233  m_shortRefs = vec.m_shortRefs;
234  m_hostDObjs = vec.m_hostDObjs;
235  }
236  return *this;
237  }

◆ operator=() [3/3]

template<typename DOBJ >
ElementLinkVector& ElementLinkVector< DOBJ >::operator= ( ElemLinkVec &&  vec)
inlinenoexcept

Definition at line 239 of file AthLinks/ElementLinkVector.h.

240  {
241  if (this != &vec) {
242  m_persKeys = std::move(vec.m_persKeys);
243  m_persIndices = std::move(vec.m_persIndices);
244  m_shortRefs = std::move(vec.m_shortRefs);
245  m_hostDObjs = std::move(vec.m_hostDObjs);
246  }
247  return *this;
248  }

◆ operator==()

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::operator== ( const ElementLinkVector< DOBJ > &  rhs) const

Comparison operator.

◆ operator[]() [1/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::operator[] ( size_type  n) const
inline

Get the element at a given index.

Definition at line 132 of file A/AthLinks/ElementLinkVector.h.

132 { return m_elVec[ n ]; }

◆ operator[]() [2/2]

template<typename DOBJ >
const_reference ElementLinkVector< DOBJ >::operator[] ( size_type  n) const
inline

Definition at line 306 of file AthLinks/ElementLinkVector.h.

306 { return m_shortRefs[n].elementLink(); }

◆ persIndices() [1/2]

const std::vector< uint32_t >& ElementLinkVectorBase::persIndices ( ) const
inherited

Get the indices of the referenced objects in the containers.

◆ persIndices() [2/2]

const std::vector< uint32_t > & ElementLinkVectorBase::persIndices ( ) const
inherited

Get the indices of the referenced objects in the containers.

Definition at line 29 of file src/ElementLinkVectorBase.cxx.

29  {
30 
31  return m_persIndices;
32 }

◆ persKeys() [1/2]

const std::vector< uint32_t >& ElementLinkVectorBase::persKeys ( ) const
inherited

Get the keys/identifiers of the referenced containers.

◆ persKeys() [2/2]

const std::vector< uint32_t > & ElementLinkVectorBase::persKeys ( ) const
inherited

Get the keys/identifiers of the referenced containers.

Definition at line 17 of file src/ElementLinkVectorBase.cxx.

17  {
18 
19  return m_persKeys;
20 }

◆ pop_back() [1/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::pop_back ( )

Remove the last element from the vector.

◆ pop_back() [2/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::pop_back ( )
inline

Definition at line 322 of file AthLinks/ElementLinkVector.h.

322  { //FIXME CHECK
323  removeHostObj(back());
324  m_shortRefs.pop_back();
325  }

◆ push_back() [1/3]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::push_back ( const ElemLink el)

Add a new element link at the end of the vector.

◆ push_back() [2/3]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::push_back ( const ElemLink link)
inline

Definition at line 318 of file AthLinks/ElementLinkVector.h.

318  {
319  addHostDObj(link);
320  m_shortRefs.push_back(ElemLinkRef(link));
321  }

◆ push_back() [3/3]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::push_back ( typename DataLinkVector::size_type  nameIndex,
typename ElemLinkRef::index_type  elementIndex 
)

◆ rbegin() [1/4]

template<typename DOBJ >
reverse_iterator ElementLinkVector< DOBJ >::rbegin ( )
inline

Get a reverse iterator pointing at the last element.

Definition at line 99 of file A/AthLinks/ElementLinkVector.h.

99 { return m_elVec.rbegin(); }

◆ rbegin() [2/4]

template<typename DOBJ >
reverse_iterator ElementLinkVector< DOBJ >::rbegin ( )
inline

Definition at line 282 of file AthLinks/ElementLinkVector.h.

282 { return reverse_iterator(m_shortRefs.begin(), Short2LongRef()); }

◆ rbegin() [3/4]

template<typename DOBJ >
const_reverse_iterator ElementLinkVector< DOBJ >::rbegin ( ) const
inline

Get a constant reverse iterator pointing at the last element.

Definition at line 101 of file A/AthLinks/ElementLinkVector.h.

101 { return m_elVec.rbegin(); }

◆ rbegin() [4/4]

template<typename DOBJ >
const_reverse_iterator ElementLinkVector< DOBJ >::rbegin ( ) const
inline

Definition at line 283 of file AthLinks/ElementLinkVector.h.

283  {
284  return const_reverse_iterator(m_shortRefs.begin(), Short2LongRef());
285  }

◆ removeHostObj()

template<typename DOBJ >
void ElementLinkVector< DOBJ >::removeHostObj ( const ElemLink )
inlineprivate

remove host of link from list. O(N) in m_hostDObjs (which is small)

Definition at line 358 of file AthLinks/ElementLinkVector.h.

362  {
363 #ifdef __ELVDEBUG
364  std::cout << "DUMMY removeHostDObj called for link "
365  << link.dataID() << "/" << link.index() << std::endl;
366 #endif
367  //FIXME this is a dummy until we find how to remove an host w/o
368  //FIXME screwing up the otherElemLinkRefs
369  //FIXME m_hostDObjs.erase(findHostDObj(link));
370  }

◆ rend() [1/4]

template<typename DOBJ >
reverse_iterator ElementLinkVector< DOBJ >::rend ( )
inline

Get a reverse iterator pointing at the beginning of the container.

Definition at line 104 of file A/AthLinks/ElementLinkVector.h.

104 { return m_elVec.rend(); }

◆ rend() [2/4]

template<typename DOBJ >
reverse_iterator ElementLinkVector< DOBJ >::rend ( )
inline

Definition at line 286 of file AthLinks/ElementLinkVector.h.

286 { return reverse_iterator(m_shortRefs.end(), Short2LongRef()); }

◆ rend() [3/4]

template<typename DOBJ >
const_reverse_iterator ElementLinkVector< DOBJ >::rend ( ) const
inline

Get a constant reverse iterator pointing at the beginning of the container.

Definition at line 106 of file A/AthLinks/ElementLinkVector.h.

106 { return m_elVec.rend(); }

◆ rend() [4/4]

template<typename DOBJ >
const_reverse_iterator ElementLinkVector< DOBJ >::rend ( ) const
inline

Definition at line 287 of file AthLinks/ElementLinkVector.h.

287  {
288  return const_reverse_iterator(m_shortRefs.end(), Short2LongRef());
289  }

◆ reserve() [1/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::reserve ( size_type  n)
inline

Definition at line 299 of file AthLinks/ElementLinkVector.h.

299 { return m_shortRefs.reserve(n); }

◆ reserve() [2/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::reserve ( size_type  sz)
inline

Reserve some slots in the vector.

Definition at line 122 of file A/AthLinks/ElementLinkVector.h.

122 { m_elVec.reserve( sz ); }

◆ resize() [1/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::resize ( size_type  sz,
const ElemLink link = ElemLink() 
)

Resize the vector to the specified size.

◆ resize() [2/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::resize ( size_type  sz,
const ElemLink link = ElemLink() 
)

◆ setPersIndices() [1/2]

void ElementLinkVectorBase::setPersIndices ( const std::vector< uint32_t > &  indices)
inherited

Set the indices of the referenced objects in the containers.

◆ setPersIndices() [2/2]

void ElementLinkVectorBase::setPersIndices ( const std::vector< uint32_t > &  indices)
inherited

Set the indices of the referenced objects in the containers.

Definition at line 35 of file src/ElementLinkVectorBase.cxx.

36  {
37 
39  return;
40 }

◆ setPersKeys() [1/2]

void ElementLinkVectorBase::setPersKeys ( const std::vector< uint32_t > &  keys)
inherited

Set the keys/identifiers of the referenced containers.

◆ setPersKeys() [2/2]

void ElementLinkVectorBase::setPersKeys ( const std::vector< uint32_t > &  keys)
inherited

Set the keys/identifiers of the referenced containers.

Definition at line 23 of file src/ElementLinkVectorBase.cxx.

23  {
24 
25  m_persKeys = keys;
26  return;
27 }

◆ shortIterFromLong() [1/2]

template<typename DOBJ >
RefVector::const_iterator ElementLinkVector< DOBJ >::shortIterFromLong ( const_iterator  longIter) const
inlineprivate

get a short ref iterator from an iterator

Definition at line 377 of file AthLinks/ElementLinkVector.h.

377  {
378  typename RefVector::const_iterator ret(m_shortRefs.begin());
379  advance(ret, distance(begin(), longIter));
380 #ifdef __ELVDEBUG
381  std::cout << "shortIterFromLong(const version) called for "
382  << longIter->dataID() << "/" << longIter->index()
383  << " advance by " << distance(begin(), longIter)
384  << " result is " << ret->dataID() << "/" << ret->index() << std::endl;
385 #endif
386  return ret;
387  }

◆ shortIterFromLong() [2/2]

template<typename DOBJ >
RefVector::iterator ElementLinkVector< DOBJ >::shortIterFromLong ( iterator  longIter)
inlineprivate

get a short ref iterator from an iterator

Definition at line 391 of file AthLinks/ElementLinkVector.h.

391  {
392  typename RefVector::iterator ret(m_shortRefs.begin());
393  advance(ret, distance(begin(), longIter));
394 #ifdef __ELVDEBUG
395  std::cout << "shortIterFromLong called for "
396  << longIter->dataID() << "/" << longIter->index()
397  << " advance by " << distance(begin(), longIter)
398  << " result is " << ret->dataID() << "/" << ret->index() << std::endl;
399 #endif
400  return ret;
401  }

◆ size() [1/2]

template<typename DOBJ >
size_type ElementLinkVector< DOBJ >::size ( ) const
inline

Get the size of the vector.

Definition at line 114 of file A/AthLinks/ElementLinkVector.h.

114 { return m_elVec.size(); }

◆ size() [2/2]

template<typename DOBJ >
size_type ElementLinkVector< DOBJ >::size ( ) const
inline

Definition at line 294 of file AthLinks/ElementLinkVector.h.

294 { return m_shortRefs.size(); }

◆ swap() [1/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::swap ( ElemLinkVec vec)

Swap the container's contents with another object's.

◆ swap() [2/2]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::swap ( ElemLinkVec vec)
inline

Definition at line 338 of file AthLinks/ElementLinkVector.h.

338  {
339  m_hostDObjs.swap(vec.m_hostDObjs);
340  m_shortRefs.swap(vec.m_shortRefs);
341  }

◆ toPersistent() [1/3]

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::toPersistent ( )

Function copying the transient data into the persistent variables.

◆ toPersistent() [2/3]

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::toPersistent ( )

◆ toPersistent() [3/3]

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::toPersistent ( std::vector< typename DataLinkVector::size_type > &  shortrefs)

◆ toPersistentDL()

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::toPersistentDL ( )

◆ toTransient() [1/5]

template<typename DOBJ >
virtual bool ElementLinkVector< DOBJ >::toTransient ( )
virtual

Reset the object's internal cache.

Implements ElementLinkVectorBase.

◆ toTransient() [2/5]

template<typename DOBJ >
bool ElementLinkVector< DOBJ >::toTransient ( )
virtual

Reset the object's internal cache.

Implements ElementLinkVectorBase.

◆ toTransient() [3/5]

template<typename DOBJ >
template<typename INDEX_TYPE >
void ElementLinkVector< DOBJ >::toTransient ( INDEX_TYPE &  dummy)
private

Function taking care of all the other indexing types (no direct ROOT I/O)

◆ toTransient() [4/5]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::toTransient ( uint32_t &  dummy)
private

◆ toTransient() [5/5]

template<typename DOBJ >
void ElementLinkVector< DOBJ >::toTransient ( uint64_t &  dummy)
private

Function setting up the object for forward indexing types.

Friends And Related Function Documentation

◆ operator<

template<typename DOBJ >
bool operator< ( const ElemLinkVec lhs,
const ElemLinkVec rhs 
)
friend

access m_shortRefs

Definition at line 456 of file AthLinks/ElementLinkVector.h.

458  {
459  return (lhs.m_shortRefs < rhs.m_shortRefs);
460 }

◆ operator==

template<typename DOBJ >
bool operator== ( const ElemLinkVec lhs,
const ElemLinkVec rhs 
)
friend

access m_shortRefs

Definition at line 469 of file AthLinks/ElementLinkVector.h.

470  {
471  return (lhs.m_shortRefs == rhs.m_shortRefs);
472 }

Member Data Documentation

◆ m_elVec

template<typename DOBJ >
std::vector< ElemLink > ElementLinkVector< DOBJ >::m_elVec
private

Transient vector of element links.

Definition at line 181 of file A/AthLinks/ElementLinkVector.h.

◆ m_hostDObjs

template<typename DOBJ >
DataLinkVector ElementLinkVector< DOBJ >::m_hostDObjs
private

the dobjs hosting our elements. They are all of type DOBJ

Definition at line 96 of file AthLinks/ElementLinkVector.h.

◆ m_isDirectIO

bool ElementLinkVectorBase::m_isDirectIO
protectedinherited

A transient variable signaling when direct I/O is happening.

A transient variable signalling when direct I/O is happening.

This flag is used exclusively by the ElementLinkVector<>::toTransient() function to know when it should take the persistent data stored in this object into account. That function is called in normal P->T conversions as well, in which case using the data from this class would just reset the object to its default state.

Definition at line 66 of file AthLinks/ElementLinkVectorBase.h.

◆ m_persIndices

std::vector< uint32_t > ElementLinkVectorBase::m_persIndices
protectedinherited

Indices of the referenced objects in the containers.

Definition at line 56 of file AthLinks/ElementLinkVectorBase.h.

◆ m_persKeys

std::vector< uint32_t > ElementLinkVectorBase::m_persKeys
protectedinherited

Keys/identifiers of the referenced containers.

Definition at line 54 of file AthLinks/ElementLinkVectorBase.h.

◆ m_shortRefs

template<typename DOBJ >
RefVector ElementLinkVector< DOBJ >::m_shortRefs
private

Definition at line 93 of file AthLinks/ElementLinkVector.h.


The documentation for this class was generated from the following file:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
ElementLinkVector::iterator
ELVIterator< typename RefVector::iterator > iterator
Definition: AthLinks/ElementLinkVector.h:128
fitman.sz
sz
Definition: fitman.py:527
ElementLinkVector::reverse_iterator
ELVIterator< typename RefVector::reverse_iterator > reverse_iterator
Definition: AthLinks/ElementLinkVector.h:138
ElementLinkVectorBase::m_persIndices
std::vector< uint32_t > m_persIndices
Indices of the referenced objects in the containers.
Definition: AthLinks/ElementLinkVectorBase.h:56
ElementLinkVector::const_iterator
ELVIterator< typename RefVector::const_iterator > const_iterator
Definition: AthLinks/ElementLinkVector.h:129
Trk::indices
std::pair< long int, long int > indices
Definition: AlSymMatBase.h:24
ElementLinkVector::m_elVec
std::vector< ElemLink > m_elVec
Transient vector of element links.
Definition: A/AthLinks/ElementLinkVector.h:181
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
ElementLinkVector::removeHostObj
void removeHostObj(const ElemLink &)
remove host of link from list. O(N) in m_hostDObjs (which is small)
Definition: AthLinks/ElementLinkVector.h:358
ElementLinkVector::addHostDObj
void addHostDObj(const ElemLink &link)
add host of link to list. No duplicates. O(N) in m_hostDObjs
ElementLinkVector::m_hostDObjs
DataLinkVector m_hostDObjs
the dobjs hosting our elements. They are all of type DOBJ
Definition: AthLinks/ElementLinkVector.h:96
beamspotman.n
n
Definition: beamspotman.py:731
ElementLinkVectorBase::ElementLinkVectorBase
ElementLinkVectorBase(const std::vector< uint32_t > &keys=std::vector< uint32_t >(), const std::vector< uint32_t > &indices=std::vector< uint32_t >())
Default constructor.
Definition: src/ElementLinkVectorBase.cxx:11
ElementLinkVector::m_shortRefs
RefVector m_shortRefs
Definition: AthLinks/ElementLinkVector.h:93
ElementLinkVector::clear
void clear()
Definition: AthLinks/ElementLinkVector.h:343
ElementLinkVectorBase::m_persKeys
std::vector< uint32_t > m_persKeys
Keys/identifiers of the referenced containers.
Definition: AthLinks/ElementLinkVectorBase.h:54
ElementLinkVector::back
const_reference back() const
Definition: AthLinks/ElementLinkVector.h:313
DeMoScan.index
string index
Definition: DeMoScan.py:364
DeMoScan.first
bool first
Definition: DeMoScan.py:536
ElementLinkVector::begin
iterator begin()
Definition: AthLinks/ElementLinkVector.h:274
ElementLinkVector::size
size_type size() const
Definition: AthLinks/ElementLinkVector.h:294
ElementLinkVector::insert
iterator insert(iterator position, const ElemLink &link)
ElementLinkVector::ElemLinkRef
SG::ELVRef< DOBJ > ElemLinkRef
Definition: AthLinks/ElementLinkVector.h:68
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
ElementLinkVector::const_reverse_iterator
ELVIterator< typename RefVector::const_reverse_iterator > const_reverse_iterator
Definition: AthLinks/ElementLinkVector.h:139