ATLAS Offline Software
Control
DataModelAthenaPool
DataModelAthenaPool
ElementLink_p3.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef DATAMODELATHENAPOOL_ELEMENTLINK_P3_H
6
#define DATAMODELATHENAPOOL_ELEMENTLINK_P3_H
7
13
#include <string>
14
#include <inttypes.h>
15
16
#include "
CxxUtils/sgkey_t.h
"
17
22
template
<
class
INDEXTYPE>
23
class
ElementLink_p3
{
24
public
:
25
26
ElementLink_p3
() =
default
;
27
28
INDEXTYPE
m_elementIndex
{};
29
SG::sgkey_t
m_SGKeyHash
{0};
30
};
31
32
33
// If you define more ElementLink_pN types, remember to add template instantiations to the Dict file
34
35
typedef
ElementLink_p3<uint32_t>
ElementLinkInt_p3
;
36
typedef
ElementLink_p3<std::string>
ElementLinkStr_p3
;
37
38
39
// Helper template for conversion from the index type in transient ElementLink
40
// to the persistent index type
41
42
template
<
typename
ContIndxType>
43
struct
GenerateELinkIndexType_p3
{
44
// typedef MISSING_DEFINITION_OF_GenerateELinkIndexType_FOR_<ContIndxType> type;
45
};
46
47
template
<>
48
struct
GenerateELinkIndexType_p3
<
uint32_t
> {
49
typedef
uint32_t
type
;
50
};
51
52
template
<>
53
struct
GenerateELinkIndexType_p3
<
uint64_t
> {
54
typedef
uint32_t
type
;
55
};
56
57
template
<>
58
struct
GenerateELinkIndexType_p3
<
int
> {
59
typedef
uint32_t
type
;
60
};
61
62
#ifdef __APPLE__
63
template
<>
64
struct
GenerateELinkIndexType_p3
<size_t> {
65
typedef
uint32_t
type
;
66
};
67
#endif
68
69
template
<>
70
struct
GenerateELinkIndexType_p3
<std::string> {
71
typedef
std::string
type
;
72
};
73
74
75
// Helper template to generate type of the persistent ElementLink_pN
76
// from the type of the transient ElementLink
77
// Used in the ElementlinkCnv_pN
78
79
template
<
class
LINK>
80
struct
GeneratePersELinkType_p3
{
81
typedef
ElementLink_p3<typename GenerateELinkIndexType_p3<typename LINK::index_type>::type
>
type
;
82
};
83
84
#endif // DATAMODELATHENAPOOL_ELEMENTLINK_P3_H
85
86
87
CaloCellPos2Ntuple.int
int
Definition:
CaloCellPos2Ntuple.py:24
xAOD::uint32_t
setEventNumber uint32_t
Definition:
EventInfo_v1.cxx:127
ElementLinkStr_p3
ElementLink_p3< std::string > ElementLinkStr_p3
Definition:
ElementLink_p3.h:36
GenerateELinkIndexType_p3< int >::type
uint32_t type
Definition:
ElementLink_p3.h:59
GenerateELinkIndexType_p3< uint64_t >::type
uint32_t type
Definition:
ElementLink_p3.h:54
ElementLink_p3
Definition:
ElementLink_p3.h:23
ElementLinkInt_p3
ElementLink_p3< uint32_t > ElementLinkInt_p3
Definition:
ElementLink_p3.h:35
ElementLink_p3::ElementLink_p3
ElementLink_p3()=default
xAOD::uint64_t
uint64_t
Definition:
EventInfo_v1.cxx:123
ElementLink_p3::m_elementIndex
INDEXTYPE m_elementIndex
Definition:
ElementLink_p3.h:28
ElementLink_p3::m_SGKeyHash
SG::sgkey_t m_SGKeyHash
Definition:
ElementLink_p3.h:29
GenerateELinkIndexType_p3< uint32_t >::type
uint32_t type
Definition:
ElementLink_p3.h:49
SG::sgkey_t
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition:
CxxUtils/CxxUtils/sgkey_t.h:32
GenerateELinkIndexType_p3< std::string >::type
std::string type
Definition:
ElementLink_p3.h:71
sgkey_t.h
Define the type used for hashed StoreGate key+CLID pairs.
GeneratePersELinkType_p3::type
ElementLink_p3< typename GenerateELinkIndexType_p3< typename LINK::index_type >::type > type
Definition:
ElementLink_p3.h:81
python.CaloScaleNoiseConfig.type
type
Definition:
CaloScaleNoiseConfig.py:78
GenerateELinkIndexType_p3
Definition:
ElementLink_p3.h:43
GeneratePersELinkType_p3
Definition:
ElementLink_p3.h:80
Generated on Thu Nov 7 2024 21:14:35 for ATLAS Offline Software by
1.8.18