From 683d962b1348c0dfee49c2da498e90d0b36e053b Mon Sep 17 00:00:00 2001 From: Attila Krasznahorkay <Attila.Krasznahorkay@cern.ch> Date: Tue, 26 May 2020 10:24:40 +0200 Subject: [PATCH] Updated the xAODTracking package's dictionary generation. Made sure that all potentially useful/necessary types are generated in an organised fashion, using the helper code from xAODCore. Removed code not necessary with modern ROOT versions. Declared the typedef names to the generated ROOT dictionary. Moved the pure STL types to the xAODCoreSTLDict dictionary. --- Event/xAOD/xAODTracking/CMakeLists.txt | 58 ++-- .../xAODTracking/xAODTracking/selection.xml | 305 ++++++++---------- .../xAODTracking/xAODTrackingDict.h | 127 +++----- 3 files changed, 195 insertions(+), 295 deletions(-) diff --git a/Event/xAOD/xAODTracking/CMakeLists.txt b/Event/xAOD/xAODTracking/CMakeLists.txt index 0ebb21124b0..4a0db8be2f7 100644 --- a/Event/xAOD/xAODTracking/CMakeLists.txt +++ b/Event/xAOD/xAODTracking/CMakeLists.txt @@ -1,57 +1,41 @@ -################################################################################ -# Package: xAODTracking -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -# Declare the package name: +# Declare the package name. atlas_subdir( xAODTracking ) -# Extra dependencies, based on what environment we are in: +# Extra dependencies, based on what environment we are in. if( NOT XAOD_STANDALONE AND NOT XAOD_ANALYSIS ) - set( extra_deps Tracking/TrkEvent/TrkNeutralParameters - Tracking/TrkEvent/TrkParameters - Tracking/TrkEvent/TrkTrack - Tracking/TrkEvent/VxVertex ) - set( extra_libs TrkNeutralParameters TrkParameters TrkTrack VxVertex ) + set( extra_libs TrkNeutralParameters TrkParameters TrkTrack VxVertex ) endif() -if (BUILDVP1LIGHT) - if( BUILDVP1LIGHT_DIST STREQUAL "ubuntu") - set( extra_libs ${extra_libs} GenVector ) - endif() -endif() - -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/CxxUtils - Control/AthContainers - Control/AthLinks - DetectorDescription/GeoPrimitives - Event/EventPrimitives - Event/xAOD/xAODBase - Event/xAOD/xAODCore - ${extra_deps} ) - -# External dependencies: -find_package( Eigen ) +# External dependencies. find_package( ROOT COMPONENTS Core GenVector ) +find_package( xAODUtilities ) -# Component(s) in the package: +# Component(s) in the package. atlas_add_library( xAODTracking xAODTracking/*.h xAODTracking/versions/*.h Root/*.cxx PUBLIC_HEADERS xAODTracking - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} ${ROOT_LIBRARIES} AthContainers - AthLinks GeoPrimitives + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks GeoPrimitives EventPrimitives xAODBase xAODCore ${extra_libs} ) +atlas_add_xaod_smart_pointer_dicts( + INPUT xAODTracking/selection.xml + OUTPUT _selectionFile + CONTAINERS "xAOD::TrackParticleContainer_v1" + "xAOD::NeutralParticleContainer_v1" "xAOD::VertexContainer_v1" + "xAOD::TrackMeasurementValidationContainer_v1" + "xAOD::TrackStateValidationContainer_v1" + "xAOD::SCTRawHitValidationContainer_v1" ) + atlas_add_dictionary( xAODTrackingDict xAODTracking/xAODTrackingDict.h - xAODTracking/selection.xml - LINK_LIBRARIES xAODTracking + ${_selectionFile} + LINK_LIBRARIES xAODCore xAODTracking EXTRA_FILES Root/dict/*.cxx ) -# Test(s) in the package: +# Test(s) in the package. atlas_add_test( xAODTracking_TrackParticle_test SOURCES test/xAODTracking_TrackParticle_test.cxx LINK_LIBRARIES xAODTracking ) diff --git a/Event/xAOD/xAODTracking/xAODTracking/selection.xml b/Event/xAOD/xAODTracking/xAODTracking/selection.xml index 1c70c76fd1a..a36b2eaca42 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/selection.xml +++ b/Event/xAOD/xAODTracking/xAODTracking/selection.xml @@ -1,180 +1,135 @@ +<!-- Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration --> <lcgdict> - <!-- VERTEX DICTIONARIES --> - - <!-- Vertex_v1 dictionaries: --> - <class name="xAOD::Vertex_v1" > - <field name="m_position" transient="true" /> - <field name="m_covariance" transient="true" /> - </class> - <read sourceClass="xAOD::Vertex_v1" version="[1-]" - targetClass="xAOD::Vertex_v1" source="" target="" > - <![CDATA[ - newObj->resetCache(); - ]]> - </read> - <class name="xAOD::VertexContainer_v1" - id="00B6DBA1-0E0D-4FDA-BFEF-F08EEFFE4BA0" /> - <class name="xAOD::VertexAuxContainer_v1" - id="B1F73A82-9B4E-4508-8EB0-EF7D6E05BA57" /> - - <!-- Vertex_v1 links: --> - <class name="DataLink<xAOD::VertexContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::VertexContainer_v1> >" /> - <class name="ElementLink<xAOD::VertexContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::VertexContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::VertexContainer_v1> > >" /> + <!-- xAOD::TrackParticle interface type(s). --> + <class name="xAOD::TrackParticle_v1" > + <field name="m_perigeeParameters" transient="true" /> + </class> + <read sourceClass="xAOD::TrackParticle_v1" version="[1-]" + targetClass="xAOD::TrackParticle_v1" source="" target="" > + <![CDATA[ + newObj->resetCache(); + ]]> + </read> + <class name="xAOD::TrackParticleContainer_v1" + id="F7564EE8-3BD2-11E3-A42F-6C3BE51AB9F1" /> + <typedef name="xAOD::TrackParticle" /> + <typedef name="xAOD::TrackParticleContainer" /> + + <!-- xAOD::TrackParticle auxiliary type(s). --> + <class name="xAOD::TrackParticleAuxContainer_v1" + id="C3B01EA0-CA87-4C96-967F-E0F9A75BD370"/> + <class name="xAOD::TrackParticleAuxContainer_v2" + id="53031BE5-2156-41E8-B70C-41A1C0572FC5"/> + <read sourceClass="xAOD::TrackParticleAuxContainer_v2" version="[1-]" + targetClass="xAOD::TrackParticleAuxContainer_v2" + source="" target="" > + <![CDATA[ + newObj->toTransient(); + ]]> + </read> + <class name="xAOD::TrackParticleAuxContainer_v3" + id="F41DF744-242D-11E6-B472-02163E010CEC"/> + <read sourceClass="xAOD::TrackParticleAuxContainer_v3" version="[1-]" + targetClass="xAOD::TrackParticleAuxContainer_v3" + source="" target="" > + <![CDATA[ + newObj->toTransient(); + ]]> + </read> + <class name="xAOD::TrackParticleAuxContainer_v4" + id="403ceb6e-2a3d-11e8-b048-080027f5cbda"/> + <read sourceClass="xAOD::TrackParticleAuxContainer_v4" version="[1-]" + targetClass="xAOD::TrackParticleAuxContainer_v4" + source="" target="" > + <![CDATA[ + newObj->toTransient(); + ]]> + </read> + <class name="xAOD::TrackParticleAuxContainer_v5" + id="3CE194F2-99D1-42D5-A3EB-D193E0AFA9FF"/> + <typedef name="xAOD::TrackParticleAuxContainer" /> + + <!-- xAOD::NeutralParticle interface type(s). --> + <class name="xAOD::NeutralParticle_v1" > + <field name="m_perigeeParameters" transient="true" /> + </class> + <read sourceClass="xAOD::NeutralParticle_v1" version="[1-]" + targetClass="xAOD::NeutralParticle_v1" source="" target="" > + <![CDATA[ + newObj->resetCache(); + ]]> + </read> + <class name="xAOD::NeutralParticleContainer_v1" + id="12869D6A-5CEB-11E3-B64A-02163E00A92F" /> + <typedef name="xAOD::NeutralParticle" /> + <typedef name="xAOD::NeutralParticleContainer" /> + + <!-- xAOD::NeutralParticle auxiliary type(s). --> + <class name="xAOD::NeutralParticleAuxContainer_v1" + id="006862BC-5CEB-11E3-9FB4-02163E00A92F" /> + <typedef name="xAOD::NeutralParticleAuxContainer" /> - <!-- TRACK PARTICLE DICTIONARIES --> - - <!-- TrackParticle_v1 dictionaries: --> - <class name="xAOD::TrackParticle_v1"> - <field name="m_perigeeParameters" transient="true"/> - </class> - <read sourceClass="xAOD::TrackParticle_v1" version="[1-]" - targetClass="xAOD::TrackParticle_v1" source="" target="" > - <![CDATA[ - newObj->resetCache(); - ]]> - </read> - <class name="xAOD::TrackParticleAuxContainer_v1" - id="C3B01EA0-CA87-4C96-967F-E0F9A75BD370"/> - <class name="xAOD::TrackParticleContainer_v1" - id="F7564EE8-3BD2-11E3-A42F-6C3BE51AB9F1"/> - - <class name="xAOD::TrackParticleAuxContainer_v2" - id="53031BE5-2156-41E8-B70C-41A1C0572FC5"/> - - <class name="xAOD::TrackParticleAuxContainer_v3" - id="F41DF744-242D-11E6-B472-02163E010CEC"/> - - <class name="xAOD::TrackParticleAuxContainer_v4" - id="403ceb6e-2a3d-11e8-b048-080027f5cbda"/> - - <class name="xAOD::TrackParticleAuxContainer_v5" - id="3CE194F2-99D1-42D5-A3EB-D193E0AFA9FF"/> - - <read sourceClass="xAOD::TrackParticleAuxContainer_v4" version="[1-]" - targetClass="xAOD::TrackParticleAuxContainer_v4" - source="" target="" > - <![CDATA[ - newObj->toTransient(); - ]]> - </read> - - <read sourceClass="xAOD::TrackParticleAuxContainer_v3" version="[1-]" - targetClass="xAOD::TrackParticleAuxContainer_v3" - source="" target="" > - <![CDATA[ - newObj->toTransient(); - ]]> - </read> - - <read sourceClass="xAOD::TrackParticleAuxContainer_v2" version="[1-]" - targetClass="xAOD::TrackParticleAuxContainer_v2" - source="" target="" > - <![CDATA[ - newObj->toTransient(); - ]]> - </read> - - <!-- NeutralParticle_v1 dictionaries: --> - <class name="xAOD::NeutralParticle_v1"> - <field name="m_perigeeParameters" transient="true"/> - </class> - <read sourceClass="xAOD::NeutralParticle_v1" version="[1-]" - targetClass="xAOD::NeutralParticle_v1" source="" target="" > - <![CDATA[ - newObj->resetCache(); - ]]> - </read> - <class name="xAOD::NeutralParticleAuxContainer_v1" - id="006862BC-5CEB-11E3-9FB4-02163E00A92F"/> - <class name="xAOD::NeutralParticleContainer_v1" - id="12869D6A-5CEB-11E3-B64A-02163E00A92F"/> - - <!-- All smart pointer dictionaries for xAOD::IParticle --> - <class name="DataLink<xAOD::TrackParticleContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::TrackParticleContainer_v1> >" /> - - <class name="ElementLink<xAOD::TrackParticleContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::TrackParticleContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::TrackParticleContainer_v1> > >" /> - - <!-- All smart pointer dictionaries for xAOD::IParticle --> - <class name="DataLink<xAOD::NeutralParticleContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::NeutralParticleContainer_v1> >" /> - - <class name="ElementLink<xAOD::NeutralParticleContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::NeutralParticleContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::NeutralParticleContainer_v1> > >" /> - - <!-- SCTRawHitValidation_v1 dictionaries: --> - <class name="xAOD::SCTRawHitValidation_v1"/> - <class name="xAOD::SCTRawHitValidationAuxContainer_v1" - id="788781DA-FE8A-414A-A72B-6E846094FCF8" /> - <class name="xAOD::SCTRawHitValidationContainer_v1" - id="4F8042A1-64B0-42AB-B0A4-C9716C15336A" /> - - <!-- Smart pointers to objects: --> - <class name="DataLink<xAOD::SCTRawHitValidationContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::SCTRawHitValidationContainer_v1> >" /> - - <class name="ElementLink<xAOD::SCTRawHitValidationContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::SCTRawHitValidationContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::SCTRawHitValidationContainer_v1> > >" /> - - <!-- TrackMeasurementValidation_v1 dictionaries: --> - <class name="xAOD::TrackMeasurementValidation_v1"/> - <class name="xAOD::TrackMeasurementValidationAuxContainer_v1" - id="61B62A1A-4C51-43A2-9623-1B9E910A81E8"/> - <class name="xAOD::TrackMeasurementValidationContainer_v1" - id="868F1FD8-AFE7-4B40-B12E-73716C37A6B0"/> - - <!-- Smart pointers to objects: --> - <class name="DataLink<xAOD::TrackMeasurementValidationContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::TrackMeasurementValidationContainer_v1> >" /> - - <class name="ElementLink<xAOD::TrackMeasurementValidationContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::TrackMeasurementValidationContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::TrackMeasurementValidationContainer_v1> > >" /> - - - <!-- TrackStateValidation_v1 dictionaries: --> - <class name="xAOD::TrackStateValidation_v1"/> - <class name="xAOD::TrackStateValidationAuxContainer_v1" - id="797432BD-DBEE-4C08-BF8E-E0556434A3F3"/> - <class name="xAOD::TrackStateValidationContainer_v1" - id="149664B4-C7A7-4373-B5BA-D8D2DB3E65B5"/> - - <!-- Smart pointers to objects: --> - <class name="DataLink<xAOD::TrackStateValidationContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::TrackStateValidationContainer_v1> >" /> - - <class name="ElementLink<xAOD::TrackStateValidationContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::TrackStateValidationContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::TrackStateValidationContainer_v1> > >" /> - - <class name="xAOD::CurvilinearParameters_t" /> - - <!-- Enums --> - <enum pattern="xAOD::*" /> - - <class name="std::vector<std::vector<std::vector<int> > >"/> - <class name="std::vector<std::vector<std::vector<float> > >"/> - <class name="std::vector<std::vector<unsigned long> >"/> - - - <!-- Suppress the unwanted classes found by ROOT 6. --> - <!-- Hopefully we can remove these extra lines at one point... --> - <exclusion> - <class name="SG::IConstAuxStore" /> - <class name="DataLink<SG::IConstAuxStore>" /> - <class name="DataVector<xAOD::IParticle>" /> - <enum name="xAOD::Type::ObjectType" /> - </exclusion> - - <!--Add Helper Functions --> - <function pattern="xAOD::TrackParticleHelpers::*" /> + <!-- xAOD::Vertex interface type(s). --> + <class name="xAOD::Vertex_v1" > + <field name="m_position" transient="true" /> + <field name="m_covariance" transient="true" /> + </class> + <read sourceClass="xAOD::Vertex_v1" version="[1-]" + targetClass="xAOD::Vertex_v1" source="" target="" > + <![CDATA[ + newObj->resetCache(); + ]]> + </read> + <class name="xAOD::VertexContainer_v1" + id="00B6DBA1-0E0D-4FDA-BFEF-F08EEFFE4BA0" /> + <typedef name="xAOD::Vertex" /> + <typedef name="xAOD::VertexContainer" /> + + <!-- xAOD::Vertex auxiliary type(s). --> + <class name="xAOD::VertexAuxContainer_v1" + id="B1F73A82-9B4E-4508-8EB0-EF7D6E05BA57" /> + <typedef name="xAOD::VertexAuxContainer" /> + + <!-- xAOD::TrackMeasurementValidation interface type(s). --> + <class name="xAOD::TrackMeasurementValidation_v1" /> + <class name="xAOD::TrackMeasurementValidationContainer_v1" + id="868F1FD8-AFE7-4B40-B12E-73716C37A6B0" /> + <typedef name="xAOD::TrackMeasurementValidation" /> + <typedef name="xAOD::TrackMeasurementValidationContainer" /> + + <!-- xAOD::TrackMeasurementValidation auxiliary type(s). --> + <class name="xAOD::TrackMeasurementValidationAuxContainer_v1" + id="61B62A1A-4C51-43A2-9623-1B9E910A81E8" /> + <typedef name="xAOD::TrackMeasurementValidationAuxContainer" /> + + <!-- xAOD::TrackStateValidation interface type(s). --> + <class name="xAOD::TrackStateValidation_v1" /> + <class name="xAOD::TrackStateValidationContainer_v1" + id="149664B4-C7A7-4373-B5BA-D8D2DB3E65B5" /> + <typedef name="xAOD::TrackStateValidation" /> + <typedef name="xAOD::TrackStateValidationContainer" /> + + <!-- xAOD::TrackStateValidation auxiliary type(s). --> + <class name="xAOD::TrackStateValidationAuxContainer_v1" + id="797432BD-DBEE-4C08-BF8E-E0556434A3F3" /> + <typedef name="xAOD::TrackStateValidationAuxContainer" /> + + <!-- xAOD::SCTRawHitValidation interface type(s). --> + <class name="xAOD::SCTRawHitValidation_v1" /> + <class name="xAOD::SCTRawHitValidationContainer_v1" + id="4F8042A1-64B0-42AB-B0A4-C9716C15336A" /> + <typedef name="xAOD::SCTRawHitValidation" /> + <typedef name="xAOD::SCTRawHitValidationContainer" /> + + <!-- xAOD::SCTRawHitValidation auxiliary type(s). --> + <class name="xAOD::SCTRawHitValidationAuxContainer_v1" + id="788781DA-FE8A-414A-A72B-6E846094FCF8" /> + <typedef name="xAOD::SCTRawHitValidationAuxContainer" /> + + <!-- Additional type(s). --> + <class name="xAOD::CurvilinearParameters_t" /> + <enum pattern="xAOD::*" /> + <function pattern="xAOD::TrackParticleHelpers::*" /> </lcgdict> diff --git a/Event/xAOD/xAODTracking/xAODTracking/xAODTrackingDict.h b/Event/xAOD/xAODTracking/xAODTracking/xAODTrackingDict.h index 02b9e789550..78f6ff384d6 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/xAODTrackingDict.h +++ b/Event/xAOD/xAODTracking/xAODTracking/xAODTrackingDict.h @@ -1,48 +1,49 @@ // Dear emacs, this is -*- c++ -*- - /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ - #ifndef XAODTRACKING_XAODTRACKINGDICT_H #define XAODTRACKING_XAODTRACKINGDICT_H - -// Needed to successfully generate the dictionary in standalone mode: -#if defined(__GCCXML__) and not defined(EIGEN_DONT_VECTORIZE) -# define EIGEN_DONT_VECTORIZE -#endif // __GCCXML__ - -// System include(s): -#include <bitset> - -// EDM include(s): -#include "AthLinks/DataLink.h" -#include "AthLinks/ElementLink.h" -// Local include(s): +// Local include(s). +#include "xAODTracking/TrackParticle.h" #include "xAODTracking/TrackParticleContainer.h" +#include "xAODTracking/TrackParticleAuxContainer.h" +#include "xAODTracking/versions/TrackParticle_v1.h" #include "xAODTracking/versions/TrackParticleContainer_v1.h" #include "xAODTracking/versions/TrackParticleAuxContainer_v1.h" #include "xAODTracking/versions/TrackParticleAuxContainer_v2.h" #include "xAODTracking/versions/TrackParticleAuxContainer_v3.h" #include "xAODTracking/versions/TrackParticleAuxContainer_v4.h" #include "xAODTracking/versions/TrackParticleAuxContainer_v5.h" + +#include "xAODTracking/NeutralParticle.h" #include "xAODTracking/NeutralParticleContainer.h" +#include "xAODTracking/NeutralParticleAuxContainer.h" +#include "xAODTracking/versions/NeutralParticle_v1.h" #include "xAODTracking/versions/NeutralParticleContainer_v1.h" #include "xAODTracking/versions/NeutralParticleAuxContainer_v1.h" -#include "xAODTracking/versions/Vertex_v1.h" + +#include "xAODTracking/Vertex.h" #include "xAODTracking/VertexContainer.h" -#include "xAODTracking/versions/VertexContainer_v1.h" +#include "xAODTracking/VertexAuxContainer.h" +#include "xAODTracking/versions/Vertex_v1.h" #include "xAODTracking/versions/VertexContainer_v1.h" #include "xAODTracking/versions/VertexAuxContainer_v1.h" + +#include "xAODTracking/TrackMeasurementValidation.h" #include "xAODTracking/TrackMeasurementValidationContainer.h" +#include "xAODTracking/TrackMeasurementValidationAuxContainer.h" +#include "xAODTracking/versions/TrackMeasurementValidation_v1.h" #include "xAODTracking/versions/TrackMeasurementValidationContainer_v1.h" #include "xAODTracking/versions/TrackMeasurementValidationAuxContainer_v1.h" + +#include "xAODTracking/TrackStateValidation.h" #include "xAODTracking/TrackStateValidationContainer.h" +#include "xAODTracking/TrackStateValidationAuxContainer.h" +#include "xAODTracking/versions/TrackStateValidation_v1.h" #include "xAODTracking/versions/TrackStateValidationContainer_v1.h" #include "xAODTracking/versions/TrackStateValidationAuxContainer_v1.h" -#include "xAODTracking/TrackingPrimitives.h" -#include "xAODTracking/TrackParticlexAODHelpers.h" #include "xAODTracking/SCTRawHitValidation.h" #include "xAODTracking/SCTRawHitValidationContainer.h" @@ -51,73 +52,33 @@ #include "xAODTracking/versions/SCTRawHitValidationContainer_v1.h" #include "xAODTracking/versions/SCTRawHitValidationAuxContainer_v1.h" -namespace { - struct GCCXML_DUMMY_INSTANTIATION_XAODTRACKING { - xAOD::TrackParticleContainer_v1 c1; - DataLink< xAOD::TrackParticleContainer_v1 > l1; - std::vector< DataLink< xAOD::TrackParticleContainer_v1 > > l2; - ElementLink< xAOD::TrackParticleContainer > l3; - std::vector< ElementLink< xAOD::TrackParticleContainer_v1 > > l4; - std::vector< std::vector< ElementLink< xAOD::TrackParticleContainer_v1 > > > l5; - - xAOD::NeutralParticleContainer_v1 nc1; - DataLink< xAOD::NeutralParticleContainer_v1 > nl1; - std::vector< DataLink< xAOD::NeutralParticleContainer_v1 > > nl2; - ElementLink< xAOD::NeutralParticleContainer > nl3; - std::vector< ElementLink< xAOD::NeutralParticleContainer_v1 > > nl4; - std::vector< std::vector< ElementLink< xAOD::NeutralParticleContainer_v1 > > > nl5; - -#if ( ! defined(XAOD_STANDALONE) ) && ( ! defined(XAOD_MANACORE) ) - std::bitset< 11 > dummy1; - TrackCollection c2; - ElementLink<TrackCollection> l8; -#endif // not XAOD_STANDALONE and not XAOD_MANACORE - - // Container(s): - xAOD::VertexContainer_v1 c3; - // Data link(s): - DataLink< xAOD::VertexContainer_v1 > dl1; - std::vector< DataLink< xAOD::VertexContainer_v1 > > dl2; - // Element link(s): - ElementLink< xAOD::VertexContainer > el1; - std::vector< ElementLink< xAOD::VertexContainer_v1 > > el2; - std::vector< std::vector< ElementLink< xAOD::VertexContainer_v1 > > > el3; - - // Container(s): - xAOD::TrackMeasurementValidationContainer_v1 c4; - // Data link(s): - DataLink< xAOD::TrackMeasurementValidationContainer_v1 > pdl1; - std::vector< DataLink< xAOD::TrackMeasurementValidationContainer_v1 > > pdl2; - // Element link(s): - ElementLink< xAOD::TrackMeasurementValidationContainer > pel1; - std::vector< ElementLink< xAOD::TrackMeasurementValidationContainer_v1 > > pel2; - std::vector< std::vector< ElementLink< xAOD::TrackMeasurementValidationContainer_v1 > > > pel3; +#include "xAODTracking/TrackingPrimitives.h" +#include "xAODTracking/TrackParticlexAODHelpers.h" - // Container(s): - xAOD::TrackStateValidationContainer_v1 c5; - // Data link(s): - DataLink< xAOD::TrackStateValidationContainer_v1 > mdl1; - std::vector< DataLink< xAOD::TrackStateValidationContainer_v1 > > mdl2; - // Element link(s): - ElementLink< xAOD::TrackStateValidationContainer > mel1; - std::vector< ElementLink< xAOD::TrackStateValidationContainer_v1 > > mel2; - std::vector< std::vector< ElementLink< xAOD::TrackStateValidationContainer_v1 > > > mel3; +// EDM include(s). +#include "xAODCore/tools/DictHelpers.h" - std::vector<std::vector<std::vector<int> > > vecDummyIntX; - std::vector<std::vector<std::vector<float> > > vecDummyFltX; - std::vector<std::vector<unsigned long> > vecDummyULX; +// Instantiate all necessary types for the dictionary. +namespace { + struct GCCXML_DUMMY_INSTANTIATION_XAODTRACKING { + // Local type(s). + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, TrackParticleContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, NeutralParticleContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, VertexContainer_v1 ); - // Container(s): - xAOD::SCTRawHitValidationContainer_v1 c6; - // Data link(s): - DataLink< xAOD::SCTRawHitValidationContainer_v1 > rdodl1; - std::vector< DataLink< xAOD::SCTRawHitValidationContainer_v1 > > rdodl2; - // Element link(s): - ElementLink< xAOD::SCTRawHitValidationContainer > rdoel1; - std::vector< ElementLink< xAOD::SCTRawHitValidationContainer_v1 > > rdoel2; - std::vector< std::vector< ElementLink< xAOD::SCTRawHitValidationContainer_v1 > > > rdoel3; + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, + TrackMeasurementValidationContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, + TrackStateValidationContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, + SCTRawHitValidationContainer_v1 ); - }; + // Type(s) needed for the dictionary generation to succeed. +#ifndef XAOD_STANDALONE + XAOD_INSTANTIATE_CONTAINER_TYPES( TrackCollection ); +#endif // not XAOD_STANDALONE + xAOD::CurvilinearParameters_t dummy; + }; } #endif // XAODTRACKPARTICLE_XAODTRACKPARTICLEDICT_H -- GitLab