diff --git a/Event/xAOD/xAODMissingET/CMakeLists.txt b/Event/xAOD/xAODMissingET/CMakeLists.txt index 4c067e509de4a5c325102663acac2fac840e49eb..ad1cfc64818636688e24151fc2870ae4a196392c 100644 --- a/Event/xAOD/xAODMissingET/CMakeLists.txt +++ b/Event/xAOD/xAODMissingET/CMakeLists.txt @@ -1,28 +1,13 @@ -# $Id: CMakeLists.txt 766460 2016-08-04 14:17:04Z khoo $ -################################################################################ -# Package: xAODMissingET -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -# Declare the package name: +# Declare the package name. atlas_subdir( xAODMissingET ) -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthContainers - Control/AthLinks - Event/xAOD/xAODBase - Event/xAOD/xAODCore - Event/xAOD/xAODJet - PRIVATE - Event/xAOD/xAODCaloEvent - Event/xAOD/xAODTracking - Event/xAOD/xAODTruth ) - -# External dependencies: +# External dependencies. find_package( Boost COMPONENTS unit_test_framework ) +find_package( xAODUtilities ) -# Component(s) in the package: +# Component(s) in the package. atlas_add_library( xAODMissingET xAODMissingET/*.h xAODMissingET/versions/*.h xAODMissingET/versions/*.icc Root/*.cxx @@ -31,17 +16,23 @@ atlas_add_library( xAODMissingET LINK_LIBRARIES AthContainers AthLinks xAODBase xAODCore xAODJet PRIVATE_LINK_LIBRARIES xAODCaloEvent xAODTracking xAODTruth ) +atlas_add_xaod_smart_pointer_dicts( + INPUT xAODMissingET/selection.xml + OUTPUT _selectionFile + CONTAINERS "xAOD::MissingETContainer_v1" "xAOD::MissingETComponentMap_v1" + "xAOD::MissingETAssociationMap_v1" ) + atlas_add_dictionary( xAODMissingETDict xAODMissingET/xAODMissingETDict.h - xAODMissingET/selection.xml - LINK_LIBRARIES xAODMissingET + ${_selectionFile} + LINK_LIBRARIES xAODCore xAODMissingET EXTRA_FILES Root/dict/*.cxx ) atlas_add_executable( xAODMissingET_testMETHash util/testMETHash.cxx LINK_LIBRARIES xAODMissingET ) -# Test(s) in the package: +# Test(s) in the package. atlas_add_test( edm_test SOURCES test/edm_test.cxx LINK_LIBRARIES xAODMissingET ) @@ -50,4 +41,3 @@ atlas_add_test( ut_edmTest SOURCES test/ut_edmTest.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} xAODMissingET CxxUtils) - diff --git a/Event/xAOD/xAODMissingET/xAODMissingET/selection.xml b/Event/xAOD/xAODMissingET/xAODMissingET/selection.xml index 344c91e0dffc75dbf6af20c44ead7a33ed2c4dd1..781949aae28e37c11a61a29a9cc654cbd8de74e9 100644 --- a/Event/xAOD/xAODMissingET/xAODMissingET/selection.xml +++ b/Event/xAOD/xAODMissingET/xAODMissingET/selection.xml @@ -1,82 +1,68 @@ -<!-- $Id: selection.xml 742675 2016-04-25 14:50:23Z rsmith $ --> +<!-- Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration --> <lcgdict> - <!-- MissingET_v1 dictionaries: --> - <class name="xAOD::MissingET_v1"> - <field name="m_nameHash" transient="true" /> - </class> - <class name="DataVector<xAOD::MissingET_v1>" /> - <class name="xAOD::MissingETContainer_v1" id="F49162FE-6BC0-49BC-A7DA-A792136BD939" /> - <class name="xAOD::MissingETAuxContainer_v1" id="2F92EC94-8CD1-49F3-BCA4-3D78599D4D60" /> + <!-- xAOD::MissingET interface type(s). --> + <class name="xAOD::MissingET_v1" > + <field name="m_nameHash" transient="true" /> + </class> + <class name="DataVector<xAOD::MissingET_v1>" /> + <class name="xAOD::MissingETContainer_v1" + id="F49162FE-6BC0-49BC-A7DA-A792136BD939" /> + <typedef name="xAOD::MissingET" /> + <typedef name="xAOD::MissingETContainer" /> - <!-- MissingETComponent_v1/MissingETComponentMap_v1 dictionaries: --> - <class name="xAOD::MissingETComponent_v1" /> - <class name="xAOD::MissingETComponent_v1::Weight"> - <field name="m_wpx" transient="true" /> - <field name="m_wpy" transient="true" /> - <field name="m_wet" transient="true" /> - </class> - <class name="DataVector<xAOD::MissingETComponent_v1>" /> - <class name="xAOD::MissingETComponentMap_v1" id="994D9D32-820F-47B1-A54B-37C15CD0FD1E" > - <field name="m_clusterLinks" transient="true" /> - <field name="m_trackLinks" transient="true" /> - <field name="m_particleLinks" transient="true" /> - </class> - <class name="xAOD::MissingETAuxComponentMap_v1" id="96287268-4165-4288-8FC1-6227FD4AB95D" /> + <!-- xAOD::MissingET auxiliary type(s). --> + <class name="xAOD::MissingETAuxContainer_v1" + id="2F92EC94-8CD1-49F3-BCA4-3D78599D4D60" /> + <typedef name="xAOD::MissingETAuxContainer" /> - <!-- MissingETAssociation_v1/MissingETAssociationMap_v1 dictionaries: --> - <class name="xAOD::MissingETAssociation_v1"> - <field name="m_objConstLinks" transient="true" /> - <field name="m_override" transient="true" /> - </class> - <class name="xAOD::MissingETAssociation_v1::ConstVec"> - <field name="m_cpx" transient="true" /> - <field name="m_cpy" transient="true" /> - <field name="m_cpz" transient="true" /> - <field name="m_ce" transient="true" /> - <field name="m_sumpt" transient="true" /> - </class> - <class name="DataVector<xAOD::MissingETAssociation_v1>" /> - <class name="xAOD::MissingETAssociationMap_v1" id="E2EAA116-F03E-430E-B4EF-216AAF7DEEE8"> - <field name="m_jetConstLinks" transient="true" /> - </class> - <!-- Schema evolve aux container --> - <class name="xAOD::MissingETAuxAssociationMap_v1" id="48EEF1CD-F937-445C-A09C-B978D152868E" /> - <class name="xAOD::MissingETAuxAssociationMap_v2" id="05184C74-A3CE-4C89-959E-D7E9F0A98D13" /> + <!-- xAOD::MissingETComponent interface type(s). --> + <class name="xAOD::MissingETComponent_v1" /> + <class name="xAOD::MissingETComponent_v1::Weight" > + <field name="m_wpx" transient="true" /> + <field name="m_wpy" transient="true" /> + <field name="m_wet" transient="true" /> + </class> + <class name="DataVector<xAOD::MissingETComponent_v1>" /> + <class name="xAOD::MissingETComponentMap_v1" + id="994D9D32-820F-47B1-A54B-37C15CD0FD1E" > + <field name="m_clusterLinks" transient="true" /> + <field name="m_trackLinks" transient="true" /> + <field name="m_particleLinks" transient="true" /> + </class> + <typedef name="xAOD::MissingETComponent" /> + <typedef name="xAOD::MissingETComponentMap" /> - <!-- Smart pointer dictionaries: --> - <class name="DataLink<xAOD::MissingETContainer_v1>" /> - <class name="std::vector<DataLink<xAOD::MissingETContainer_v1> >" /> + <!-- xAOD::MissingETComponent auxiliary type(s). --> + <class name="xAOD::MissingETAuxComponentMap_v1" + id="96287268-4165-4288-8FC1-6227FD4AB95D" /> + <typedef name="xAOD::MissingETAuxComponentMap" /> - <class name="DataLink<xAOD::MissingETComponentMap_v1>" /> - <class name="std::vector<DataLink<xAOD::MissingETComponentMap_v1> >" /> + <!-- xAOD::MissingETAssociation interface type(s). --> + <class name="xAOD::MissingETAssociation_v1" > + <field name="m_objConstLinks" transient="true" /> + <field name="m_override" transient="true" /> + </class> + <class name="xAOD::MissingETAssociation_v1::ConstVec" > + <field name="m_cpx" transient="true" /> + <field name="m_cpy" transient="true" /> + <field name="m_cpz" transient="true" /> + <field name="m_ce" transient="true" /> + <field name="m_sumpt" transient="true" /> + </class> + <class name="DataVector<xAOD::MissingETAssociation_v1>" /> + <class name="xAOD::MissingETAssociationMap_v1" + id="E2EAA116-F03E-430E-B4EF-216AAF7DEEE8" > + <field name="m_jetConstLinks" transient="true" /> + </class> + <typedef name="xAOD::MissingETAssociation" /> + <typedef name="xAOD::MissingETAssociationMap" /> - <class name="ElementLink<xAOD::MissingETContainer_v1>" /> - <class name="std::vector<ElementLink<xAOD::MissingETContainer_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::MissingETContainer_v1> > >" /> - - <class name="ElementLink<xAOD::MissingETComponentMap_v1>" /> - <class name="std::vector<ElementLink<xAOD::MissingETComponentMap_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::MissingETComponentMap_v1> > >" /> - - <class name="ElementLink<xAOD::MissingETAssociationMap_v1>" /> - <class name="std::vector<ElementLink<xAOD::MissingETAssociationMap_v1> >" /> - <class name="std::vector<std::vector<ElementLink<xAOD::MissingETAssociationMap_v1> > >" /> - - <class name="std::vector<std::vector<unsigned long long> >" /> - <class name="std::vector<std::vector<std::vector<size_t> > >" /> - <class name="std::vector<std::vector<std::vector<unsigned long> > >" /> - <class name="std::vector<std::vector<std::vector<unsigned char> > >" /> - <class name="std::vector<std::vector<std::vector<unsigned long 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>" /> - <class name="ElementLink<DataVector<xAOD::IParticle> >" /> - <class name="ElementLink<DataVector<xAOD::Jet_v1> >" /> - </exclusion> + <!-- xAOD::MissingETAssociation auxiliary type(s). --> + <class name="xAOD::MissingETAuxAssociationMap_v1" + id="48EEF1CD-F937-445C-A09C-B978D152868E" /> + <class name="xAOD::MissingETAuxAssociationMap_v2" + id="05184C74-A3CE-4C89-959E-D7E9F0A98D13" /> + <typedef name="xAOD::MissingETAuxAssociationMap" /> </lcgdict> diff --git a/Event/xAOD/xAODMissingET/xAODMissingET/xAODMissingETDict.h b/Event/xAOD/xAODMissingET/xAODMissingET/xAODMissingETDict.h index 1e67356d93299e71f665bf00463df8220679251d..3ec3bcefa663ecb7d71c9f7ceafe19c7a93f52f5 100644 --- a/Event/xAOD/xAODMissingET/xAODMissingET/xAODMissingETDict.h +++ b/Event/xAOD/xAODMissingET/xAODMissingET/xAODMissingETDict.h @@ -1,76 +1,47 @@ // 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: xAODMissingETDict.h 693950 2015-09-09 15:29:18Z khoo $ #ifndef XAODMISSINGET_XAODMISSINGETDICT_H #define XAODMISSINGET_XAODMISSINGETDICT_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 "xAODMissingET/MissingET.h" #include "xAODMissingET/MissingETContainer.h" #include "xAODMissingET/MissingETAuxContainer.h" +#include "xAODMissingET/versions/MissingET_v1.h" +#include "xAODMissingET/versions/MissingETContainer_v1.h" +#include "xAODMissingET/versions/MissingETAuxContainer_v1.h" + +#include "xAODMissingET/MissingETComponent.h" #include "xAODMissingET/MissingETComponentMap.h" #include "xAODMissingET/MissingETAuxComponentMap.h" +#include "xAODMissingET/versions/MissingETComponent_v1.h" +#include "xAODMissingET/versions/MissingETComponentMap_v1.h" +#include "xAODMissingET/versions/MissingETAuxComponentMap_v1.h" + +#include "xAODMissingET/MissingETAssociation.h" #include "xAODMissingET/MissingETAssociationMap.h" #include "xAODMissingET/MissingETAuxAssociationMap.h" +#include "xAODMissingET/versions/MissingETAssociation_v1.h" +#include "xAODMissingET/versions/MissingETAssociationMap_v1.h" #include "xAODMissingET/versions/MissingETAuxAssociationMap_v1.h" +#include "xAODMissingET/versions/MissingETAuxAssociationMap_v2.h" + #include "xAODMissingET/versions/MissingETBase.h" +// EDM include(s). +#include "xAODCore/tools/DictHelpers.h" + +// Instantiate all necessary types for the dictionary. namespace { struct GCCXML_DUMMY_INSTANTIATION_XAODMISSINGET { - // Container(s): - DataVector< xAOD::MissingET_v1 > c1; - xAOD::MissingETContainer_v1 c2; - DataVector< xAOD::MissingETComponent_v1 > c3; - xAOD::MissingETComponentMap_v1 c4; - DataVector< xAOD::MissingETAssociation_v1 > c5; - xAOD::MissingETAssociationMap_v1 c6; - // Smart pointer(s): - DataLink< xAOD::MissingETContainer_v1 > dl1; - std::vector< DataLink< xAOD::MissingETContainer_v1 > > dl2; - ElementLink< xAOD::MissingETContainer_v1 > el1; - std::vector< ElementLink< xAOD::MissingETContainer_v1 > > el2; - std::vector< std::vector< ElementLink< xAOD::MissingETContainer_v1 > > > el3; - DataLink< xAOD::MissingETComponentMap_v1 > dl3; - std::vector< DataLink< xAOD::MissingETComponentMap_v1 > > dl4; - ElementLink< xAOD::MissingETComponentMap_v1 > el4; - std::vector< ElementLink< xAOD::MissingETComponentMap_v1 > > el5; - std::vector< std::vector< ElementLink< xAOD::MissingETComponentMap_v1 > > > el6; - DataLink< xAOD::MissingETAssociationMap_v1 > dl5; - std::vector< DataLink< xAOD::MissingETAssociationMap_v1 > > dl6; - ElementLink< xAOD::MissingETAssociationMap_v1 > el7; - std::vector< ElementLink< xAOD::MissingETAssociationMap_v1 > > el8; - std::vector< std::vector< ElementLink< xAOD::MissingETAssociationMap_v1 > > > el9; - - // Smart pointers needed for the correct generation of the auxiliary - // class dictionaries: - ElementLink< xAOD::IParticleContainer > el10; - std::vector< ElementLink< xAOD::IParticleContainer > > el11; - std::vector< std::vector< ElementLink< xAOD::IParticleContainer > > > el12; - - std::vector< MissingETBase::Types::bitmask_t > vec1; - std::vector< unsigned long long > vec2; - std::vector< std::vector< size_t > > vec3; - std::vector< std::vector< unsigned char > > vec4; - std::vector< std::vector< unsigned long long > > vec5; - std::vector< std::vector< std::vector< size_t > > > vec6; - std::vector< std::vector< std::vector< unsigned long > > > vec7; - std::vector< std::vector< std::vector< unsigned char > > > vec8; - std::vector< std::vector<std::vector<unsigned long long> > > vec9; + // Local type(s). + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, MissingETContainer_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, MissingETComponentMap_v1 ); + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, MissingETAssociationMap_v1 ); + // Type(s) needed for the dictionary generation to succeed. + XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, IParticleContainer ); }; }