ATLAS Offline Software
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
AuxTypeVectorFactory.h
Factory object that creates vectors using AuxTypeVector.