ATLAS Offline Software
Loading...
Searching...
No Matches
DictHelpers.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2//
3// Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
4//
5#ifndef XAODCORE_TOOLS_DICTHELPERS_H
6#define XAODCORE_TOOLS_DICTHELPERS_H
7
8// EDM include(s).
9#include "AthLinks/DataLink.h"
10#include "AthLinks/ElementLink.h"
12
13// System include(s).
14#include <vector>
15
16#ifdef XAOD_STANDALONE
17# define XAOD_BASEINFO_TYPE(TYPE) int
18#else
19# define XAOD_BASEINFO_TYPE(TYPE) SG::BaseInfo<TYPE>
20#endif
21
24#define XAOD_INSTANTIATE_CONTAINER_TYPES( TYPE ) \
25 TYPE dummy_##TYPE##_1; \
26 DataLink< TYPE > dummy_##TYPE##_2; \
27 ElementLink< TYPE > dummy_##TYPE##_3; \
28 std::vector< DataLink< TYPE > > dummy_##TYPE##_4; \
29 std::vector< ElementLink< TYPE > > dummy_##TYPE##_5; \
30 std::vector< std::vector< ElementLink< TYPE > > > dummy_##TYPE##_6; \
31 SG::AuxTypeVectorFactory< DataLink< TYPE > > dummy_##TYPE##_7; \
32 SG::AuxTypeVectorFactory< ElementLink< TYPE > > dummy_##TYPE##_8; \
33 SG::AuxTypeVectorFactory< std::vector< ElementLink< TYPE > > > \
34 dummy_##TYPE##_9; \
35 XAOD_BASEINFO_TYPE(TYPE) dummy_##TYPE##_10; \
36 DataVectorBase< TYPE::base_value_type > dummy_##TYPE##_11
37
40#define XAOD_INSTANTIATE_NS_CONTAINER_TYPES( NS, TYPE ) \
41 NS::TYPE dummy_##NS##_##TYPE##_1; \
42 DataLink< NS::TYPE > dummy_##NS##_##TYPE##_2; \
43 ElementLink< NS::TYPE > dummy_##NS##_##TYPE##_3; \
44 std::vector< DataLink< NS::TYPE > > dummy_##NS##_##TYPE##_4; \
45 std::vector< ElementLink< NS::TYPE > > dummy_##NS##_##TYPE##_5; \
46 std::vector< std::vector< ElementLink< NS::TYPE > > > \
47 dummy_##NS##_##TYPE##_6; \
48 SG::AuxTypeVectorFactory< DataLink< NS::TYPE > > dummy_##NS##_##TYPE##_7; \
49 SG::AuxTypeVectorFactory< ElementLink< NS::TYPE > > dummy_##NS##_##TYPE##_8;\
50 SG::AuxTypeVectorFactory< std::vector< ElementLink< NS::TYPE > > > \
51 dummy_##NS##_##TYPE##_9; \
52 XAOD_BASEINFO_TYPE(NS::TYPE) dummy_##NS##_##TYPE##_10; \
53 DataVectorBase< NS::TYPE::base_value_type > dummy_##NS##_##TYPE##_11
54
57#define XAOD_INSTANTIATE_OBJECT_TYPES( TYPE ) \
58 TYPE dummy_##TYPE##_1; \
59 DataLink< TYPE > dummy_##TYPE##_2; \
60 std::vector< DataLink< TYPE > > dummy_##TYPE##_3; \
61 SG::AuxTypeVectorFactory< DataLink< TYPE > > dummy_##TYPE##_4
62
65#define XAOD_INSTANTIATE_NS_OBJECT_TYPES( NS, TYPE ) \
66 NS::TYPE dummy_##NS##_##TYPE##_1; \
67 DataLink< NS::TYPE > dummy_##NS##_##TYPE##_2; \
68 std::vector< DataLink< NS::TYPE > > dummy_##NS##_##TYPE##_3; \
69 SG::AuxTypeVectorFactory< DataLink< NS::TYPE > > dummy_##NS##_##TYPE##_4
70
71#endif // XAODCORE_TOOLS_DICTHELPERS_H
Factory object that creates vectors using AuxTypeVector.