diff --git a/Event/xAOD/xAODBTagging/CMakeLists.txt b/Event/xAOD/xAODBTagging/CMakeLists.txt index 4e166259db4799962bf4d5ba73784c51462a906f..9cf5cafbfac512d40ee18d4ff9f4dbdb25d50808 100644 --- a/Event/xAOD/xAODBTagging/CMakeLists.txt +++ b/Event/xAOD/xAODBTagging/CMakeLists.txt @@ -1,29 +1,25 @@ -# $Id: CMakeLists.txt 744481 2016-05-03 13:36:43Z krasznaa $ -################################################################################ -# Package: xAODBTagging -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -# Declare the package name: +# Declare the package name. atlas_subdir( xAODBTagging ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthContainers - Event/xAOD/xAODBase - Event/xAOD/xAODCore - Event/xAOD/xAODTracking - Control/AthLinks - Control/CxxUtils) +# Pull in the helper CMake code. +find_package( xAODUtilities ) # Component(s) in the package: atlas_add_library( xAODBTagging xAODBTagging/*.h xAODBTagging/versions/*.h Root/*.cxx PUBLIC_HEADERS xAODBTagging - LINK_LIBRARIES AthContainers AthLinks xAODBase xAODCore xAODTracking CxxUtils) + LINK_LIBRARIES AthContainers AthLinks xAODBase xAODCore xAODTracking + CxxUtils ) + +atlas_add_xaod_smart_pointer_dicts( + INPUT xAODBTagging/selection.xml + OUTPUT _selectionFile + CONTAINERS "xAOD::BTaggingContainer_v1" "xAOD::BTagVertexContainer_v1" ) atlas_add_dictionary( xAODBTaggingDict xAODBTagging/xAODBTaggingDict.h - xAODBTagging/selection.xml - LINK_LIBRARIES xAODBTagging + ${_selectionFile} + LINK_LIBRARIES xAODCore xAODBTagging EXTRA_FILES Root/dict/*.cxx ) diff --git a/Event/xAOD/xAODBTagging/xAODBTagging/selection.xml b/Event/xAOD/xAODBTagging/xAODBTagging/selection.xml index 613f87c7c51b222bb365b5182642220485056040..5130d025d0ebda309bd62929b609bbabd0392268 100644 --- a/Event/xAOD/xAODBTagging/xAODBTagging/selection.xml +++ b/Event/xAOD/xAODBTagging/xAODBTagging/selection.xml @@ -1,54 +1,34 @@ -<!-- $Id: selection.xml 688348 2015-08-10 09:03:52Z kleney $ --> +<!-- Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration --> <lcgdict> - <!-- BTagging_v1 dictionaries: --> - <class name="xAOD::BTagging_v1" /> - <class name="xAOD::BTaggingContainer_v1" - id="5D19F171-E07E-4F65-BC1F-FC4F4099E9F1" /> - <class name="xAOD::BTaggingAuxContainer_v1" - id="5E1973D2-D860-4BB1-B8EF-C9AD8E6C66A2" /> - <class name="xAOD::BTaggingTrigAuxContainer_v1" - id="1B738105-2F3E-4DCB-9DAE-DA3A4964486E" /> - - <!-- Smart pointers to BTagging_v1 objects: --> - <class name="DataLink<xAOD::BTaggingContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::BTaggingContainer_v1> >" /> - - <class name="ElementLink<xAOD::BTaggingContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::BTaggingContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::BTaggingContainer_v1> > >" /> - - <!-- BTagVertex_v1 dictionaries: --> - <class name="xAOD::BTagVertex_v1" /> - <class name="xAOD::BTagVertexContainer_v1" - id="E225A9EC-9782-43F7-B7BF-1B215187C11C" /> - <class name="xAOD::BTagVertexAuxContainer_v1" - id="09CD44BA-0F40-4FDB-BB30-2F4226FF3E18" /> - - <!-- Smart pointers to BTagVertex_v1 objects: --> - <class name="DataLink<xAOD::BTagVertexContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::BTagVertexContainer_v1> >" /> - - <class name="ElementLink<xAOD::BTagVertexContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::BTagVertexContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::BTagVertexContainer_v1> > >" /> - - - <class name="std::vector< std::vector< bool > >" /> - <class name="std::vector< std::vector< int > >" /> - - <!--Add Helper Functions --> - <function pattern="xAOD::SecVtxHelper::*" /> - - <!-- 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 pattern="xAOD::TrackParticle*" /> - <class pattern="DataVector<xAOD::TrackParticle*" /> - <class pattern="ElementLink<DataVector<xAOD::TrackParticle*" /> - <class name="DataVector<xAOD::IParticle>" /> - </exclusion> + <!-- xAOD::BTagging interface type(s). --> + <class name="xAOD::BTagging_v1" /> + <class name="xAOD::BTaggingContainer_v1" + id="5D19F171-E07E-4F65-BC1F-FC4F4099E9F1" /> + <typedef name="xAOD::BTagging" /> + <typedef name="xAOD::BTaggingContainer" /> + + <!-- xAOD::BTagging auxiliary type(s). --> + <class name="xAOD::BTaggingAuxContainer_v1" + id="5E1973D2-D860-4BB1-B8EF-C9AD8E6C66A2" /> + <class name="xAOD::BTaggingTrigAuxContainer_v1" + id="1B738105-2F3E-4DCB-9DAE-DA3A4964486E" /> + <typedef name="xAOD::BTaggingAuxContainer" /> + <typedef name="xAOD::BTaggingTrigAuxContainer" /> + + <!-- xAOD::BTagVertex interface type(s). --> + <class name="xAOD::BTagVertex_v1" /> + <class name="xAOD::BTagVertexContainer_v1" + id="E225A9EC-9782-43F7-B7BF-1B215187C11C" /> + <typedef name="xAOD::BTagVertex" /> + <typedef name="xAOD::BTagVertexContainer" /> + + <!-- xAOD::BTagVertex auxiliary type(s). --> + <class name="xAOD::BTagVertexAuxContainer_v1" + id="09CD44BA-0F40-4FDB-BB30-2F4226FF3E18" /> + <typedef name="xAOD::BTagVertexAuxContainer" /> + + <!-- Additional helper functions. --> + <function pattern="xAOD::SecVtxHelper::*" /> </lcgdict> diff --git a/Event/xAOD/xAODBTagging/xAODBTagging/xAODBTaggingDict.h b/Event/xAOD/xAODBTagging/xAODBTagging/xAODBTaggingDict.h index c165c4d1c6bb618c8a3a6b940dadd15ab0b9eab1..4a36d87343514712ca8256a17783bc71c3033845 100644 --- a/Event/xAOD/xAODBTagging/xAODBTagging/xAODBTaggingDict.h +++ b/Event/xAOD/xAODBTagging/xAODBTagging/xAODBTaggingDict.h @@ -1,60 +1,40 @@ // 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 */ - -// $Id: xAODBTaggingDict.h 688348 2015-08-10 09:03:52Z kleney $ #ifndef XAODBTAGGING_XAODBTAGGINGDICT_H #define XAODBTAGGING_XAODBTAGGINGDICT_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 <vector> - -// EDM include(s): -#include "AthLinks/DataLink.h" -#include "AthLinks/ElementLink.h" - -// Local include(s): +// Local include(s). +#include "xAODBTagging/BTagging.h" #include "xAODBTagging/BTaggingContainer.h" #include "xAODBTagging/BTaggingAuxContainer.h" #include "xAODBTagging/BTaggingTrigAuxContainer.h" -#include "xAODBTagging/BTagVertexContainer.h" -#include "xAODBTagging/BTagVertexAuxContainer.h" -// #include "xAODBTagging/versions/BTaggingContainer_v1.h" -// #include "xAODBTagging/versions/BTaggingAuxContainer_v1.h" -// #include "xAODBTagging/versions/BTaggingTrigAuxContainer_v1.h" -// #include "xAODBTagging/versions/BTagVertexContainer_v1.h" -// #include "xAODBTagging/versions/BTagVertexAuxContainer_v1.h" - -namespace { - struct GCCXML_DUMMY_INSTANTIATION_XAODBTAGGING { - xAOD::BTaggingContainer_v1 c1; - DataLink< xAOD::BTaggingContainer_v1 > dl1; - std::vector< DataLink< xAOD::BTaggingContainer_v1 > > dl2; - ElementLink< xAOD::BTaggingContainer_v1 > el1; - std::vector< ElementLink< xAOD::BTaggingContainer_v1 > > el2; - std::vector< std::vector< ElementLink< xAOD::BTaggingContainer_v1 > > > el3; +#include "xAODBTagging/versions/BTagging_v1.h" +#include "xAODBTagging/versions/BTaggingContainer_v1.h" +#include "xAODBTagging/versions/BTaggingAuxContainer_v1.h" +#include "xAODBTagging/versions/BTaggingTrigAuxContainer_v1.h" +#include "xAODBTagging/BTagVertex.h" +#include "xAODBTagging/BTagVertexContainer.h" +#include "xAODBTagging/BTagVertexAuxContainer.h" +#include "xAODBTagging/versions/BTagVertex_v1.h" +#include "xAODBTagging/versions/BTagVertexContainer_v1.h" +#include "xAODBTagging/versions/BTagVertexAuxContainer_v1.h" - std::vector< std::vector< bool > > atmp; - std::vector< std::vector< int > > anothertmp; +#include "xAODBTagging/SecVtxHelper.h" - - xAOD::BTagVertexContainer_v1 cx1; - DataLink< xAOD::BTagVertexContainer_v1 > dlx1; - std::vector< DataLink< xAOD::BTagVertexContainer_v1 > > dlx2; - ElementLink< xAOD::BTagVertexContainer_v1 > elx1; - std::vector< ElementLink< xAOD::BTagVertexContainer_v1 > > elx2; - std::vector< std::vector< ElementLink< xAOD::BTagVertexContainer_v1 > > > elx3; +// EDM include(s). +#include "xAODCore/tools/DictHelpers.h" - ElementLink< xAOD::TrackParticleContainer > auxlink1; - std::vector<ElementLink< xAOD::TrackParticleContainer > > auxlink2; +// Instantiate all necessary types for the dictionary. +namespace { + struct GCCXML_DUMMY_INSTANTIATION_XAODBTAGGING { + // Local type(s). + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, BTaggingContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, BTagVertexContainer_v1 ); + // Type(s) needed for the dictionary generation to succeed. + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, TrackParticleContainer ); }; }