ATLAS Offline Software
Loading...
Searching...
No Matches
xAODBaseDict.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2/*
3 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
4*/
5#ifndef XAODBASE_XAODBASEDICT_H
6#define XAODBASE_XAODBASEDICT_H
7
8// STL include(s):
9#include <vector>
10
11// EDM include(s):
12#include "AthLinks/DataLink.h"
13#include "AthLinks/ElementLink.h"
15
16// Local include(s):
19
20// Instantiate all necessary types for the dictionary.
21namespace {
22 struct GCCXML_DUMMY_INSTANTIATION_XAODBASE {
24 DataLink< xAOD::IParticleContainer > l1;
25 std::vector< DataLink< xAOD::IParticleContainer > > l2;
26 ElementLink< xAOD::IParticleContainer > l3;
27 std::vector< ElementLink< xAOD::IParticleContainer > > l4;
28 std::vector< std::vector< ElementLink< xAOD::IParticleContainer > > > l5;
29 SG::AuxTypeVectorFactory< DataLink< xAOD::IParticleContainer > > l6;
30 SG::AuxTypeVectorFactory< ElementLink< xAOD::IParticleContainer > > l7;
31 SG::AuxTypeVectorFactory< std::vector< ElementLink< xAOD::IParticleContainer > > > l8;
32 };
33}
34
35// Not sure if this line is necessary but it shouldn't hurt...
36template class DataVector<xAOD::IParticle>;
37
40#define INST_AUXFUNC( TYPE ) \
41 template TYPE& \
42 xAOD::IParticle::auxdata< TYPE >( const std::string& name, \
43 const std::string& clsname = "" ); \
44 template const TYPE& \
45 xAOD::IParticle::auxdata< TYPE >( const std::string& name, \
46 const std::string& clsname = "" ) const; \
47 template bool \
48 xAOD::IParticle::isAvailable< TYPE >( const std::string& name, \
49 const std::string& clsname = "" ) const
50
51// Instantiate the functions for a couple of regularly used types.
53INST_AUXFUNC( float );
54INST_AUXFUNC( double );
56INST_AUXFUNC( unsigned int );
57INST_AUXFUNC( uint8_t );
58
59// Clean up.
60#undef INST_AUXFUNC
61
62#endif // XAODBASE_XAODBASEDICT_H
Factory object that creates vectors using AuxTypeVector.
Derived DataVector<T>.
Definition DataVector.h:795
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
#define INST_AUXFUNC(TYPE)
Helper macro for instantiating all the template functions that we need a dictionary for.