Skip to content
Snippets Groups Projects
Commit c65b87cf authored by Attila Krasznahorkay's avatar Attila Krasznahorkay
Browse files

Updated the xAODEventInfo package's dictionary generation.

Made sure that all potentially useful/necessary types are generated
in an organised fashion, using the helper code from xAODCore.

Declared the typedef names to the generated ROOT dictionary.

Moved the pure STL types to the xAODCoreSTLDict dictionary.
parent f0f78a19
No related branches found
No related tags found
No related merge requests found
################################################################################ # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# Package: xAODEventInfo
################################################################################
# Declare the package name: # Declare the package name.
atlas_subdir( xAODEventInfo ) atlas_subdir( xAODEventInfo )
# Declare the package's dependencies: # External dependencies.
atlas_depends_on_subdirs(
PRIVATE
AtlasTest/TestTools
PUBLIC
Control/AthContainers
Control/AthLinks
Event/xAOD/xAODCore )
# External dependencies:
find_package( ROOT COMPONENTS Core Tree RIO ) find_package( ROOT COMPONENTS Core Tree RIO )
find_package( xAODUtilities )
# Component(s) in the package: # Component(s) in the package.
atlas_add_library( xAODEventInfo atlas_add_library( xAODEventInfo
xAODEventInfo/*.h Root/*.cxx xAODEventInfo/versions/*.h xAODEventInfo/*.h Root/*.cxx
PUBLIC_HEADERS xAODEventInfo PUBLIC_HEADERS xAODEventInfo
LINK_LIBRARIES AthContainers AthLinks xAODCore ) LINK_LIBRARIES AthContainers AthLinks xAODCore )
atlas_add_xaod_smart_pointer_dicts(
INPUT xAODEventInfo/selection.xml
OUTPUT _selectionFile
CONTAINERS "xAOD::EventInfoContainer_v1"
OBJECTS "xAOD::EventInfo_v1" )
atlas_add_dictionary( xAODEventInfoDict atlas_add_dictionary( xAODEventInfoDict
xAODEventInfo/xAODEventInfoDict.h xAODEventInfo/xAODEventInfoDict.h
xAODEventInfo/selection.xml ${_selectionFile}
LINK_LIBRARIES xAODEventInfo LINK_LIBRARIES xAODCore xAODEventInfo
EXTRA_FILES Root/dict/*.cxx ) EXTRA_FILES Root/dict/*.cxx )
# Test(s) in the package: # Test(s) in the package.
atlas_add_test( ut_xaodeventinfo_evtstore_test atlas_add_test( ut_xaodeventinfo_evtstore_test
SOURCES test/ut_xaodeventinfo_evtstore_test.cxx SOURCES test/ut_xaodeventinfo_evtstore_test.cxx
INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} INCLUDE_DIRS ${ROOT_INCLUDE_DIRS}
...@@ -47,12 +43,12 @@ atlas_add_test( ut_xaodeventinfo_subevent_test ...@@ -47,12 +43,12 @@ atlas_add_test( ut_xaodeventinfo_subevent_test
atlas_add_test( ut_xaodeventinfo_eventauxinfo_test atlas_add_test( ut_xaodeventinfo_eventauxinfo_test
SOURCES test/ut_xaodeventinfo_eventauxinfo_test.cxx SOURCES test/ut_xaodeventinfo_eventauxinfo_test.cxx
LINK_LIBRARIES AthLinks xAODCore xAODEventInfo TestTools ) LINK_LIBRARIES AthContainers TestTools xAODEventInfo )
atlas_add_test( ut_xaodeventinfo_eventinfoauxcontainer_v1_test atlas_add_test( ut_xaodeventinfo_eventinfoauxcontainer_v1_test
SOURCES test/ut_xaodeventinfo_eventinfoauxcontainer_v1_test.cxx SOURCES test/ut_xaodeventinfo_eventinfoauxcontainer_v1_test.cxx
LINK_LIBRARIES AthLinks xAODCore xAODEventInfo TestTools ) LINK_LIBRARIES AthContainers TestTools xAODEventInfo )
atlas_add_test( ut_xaodeventinfo_eventinfo_v1_test atlas_add_test( ut_xaodeventinfo_eventinfo_v1_test
SOURCES test/ut_xaodeventinfo_eventinfo_v1_test.cxx SOURCES test/ut_xaodeventinfo_eventinfo_v1_test.cxx
LINK_LIBRARIES AthLinks xAODCore xAODEventInfo ) LINK_LIBRARIES xAODEventInfo )
<!-- Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration --> <!-- Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration -->
<lcgdict> <lcgdict>
<!-- xAOD::EventInfo interface type(s). -->
<class name="xAOD::EventInfo_v1" <class name="xAOD::EventInfo_v1"
id="AE8BED6D-1D41-4CAF-994B-42613FC91A0A" > id="AE8BED6D-1D41-4CAF-994B-42613FC91A0A" >
<field name="m_streamTags" transient="true" /> <field name="m_streamTags" transient="true" />
...@@ -15,7 +16,12 @@ ...@@ -15,7 +16,12 @@
newObj->toTransient(); newObj->toTransient();
]]> ]]>
</read> </read>
<class name="xAOD::EventInfoContainer_v1"
id="8F061263-D744-4D72-9377-1573FE21CDCE" />
<typedef name="xAOD::EventInfo" />
<typedef name="xAOD::EventInfoContainer" />
<!-- xAOD::EventInfo auxiliary type(s). -->
<class name="xAOD::EventAuxInfo_v1" <class name="xAOD::EventAuxInfo_v1"
id="2CFD72A2-D3AA-4C18-9B40-E5ACBA20D785"> id="2CFD72A2-D3AA-4C18-9B40-E5ACBA20D785">
<field name="m_decorFlags" transient="true" /> <field name="m_decorFlags" transient="true" />
...@@ -38,9 +44,6 @@ ...@@ -38,9 +44,6 @@
]]> ]]>
</read> </read>
<class name="xAOD::EventInfoContainer_v1"
id="8F061263-D744-4D72-9377-1573FE21CDCE" />
<class name="xAOD::EventInfoAuxContainer_v1" <class name="xAOD::EventInfoAuxContainer_v1"
id="742479C0-2699-4949-A9D0-01DBC421BE5B"> id="742479C0-2699-4949-A9D0-01DBC421BE5B">
<field name="m_decorFlags" transient="true" /> <field name="m_decorFlags" transient="true" />
...@@ -52,27 +55,7 @@ ...@@ -52,27 +55,7 @@
]]> ]]>
</read> </read>
<!-- Smart pointer dictionaries: --> <typedef name="xAOD::EventAuxInfo" />
<class name="DataLink<xAOD::EventInfo_v1>" /> <typedef name="xAOD::EventInfoAuxContainer" />
<class name="std::vector<DataLink<xAOD::EventInfo_v1> >" />
<class name="ElementLink<xAOD::EventInfoContainer_v1>" />
<class name="std::vector<ElementLink<xAOD::EventInfoContainer_v1> >" />
<class name="std::vector<std::vector<ElementLink<xAOD::EventInfoContainer_v1> > >" />
<!-- Additional dictionaries for the payload: -->
<!-- MN: removing class name="std::pair<std::string,std::string>" as it is already in RELAX -->
<class name="std::vector<std::pair<std::string,std::string> >" />
<class name="std::vector<std::vector<std::pair<std::string,std::string> > >" />
<class name="std::set<uint32_t>" />
<class name="std::vector<std::set<uint32_t> >" />
<class name="std::vector<std::vector<std::set<unsigned> > >" />
<!-- 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>" />
</exclusion>
</lcgdict> </lcgdict>
<exclusion>
<class name="std::set<uint32_t>" />
<class name="std::vector<std::pair<std::string,std::string> >" />
</exclusion>
// Dear emacs, this is -*- c++ -*- // 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: xAODEventInfoDict.h 630576 2014-11-24 12:36:44Z krasznaa $
#ifndef XAODEVENTINFO_XAODEVENTINFODICT_H #ifndef XAODEVENTINFO_XAODEVENTINFODICT_H
#define XAODEVENTINFO_XAODEVENTINFODICT_H #define XAODEVENTINFO_XAODEVENTINFODICT_H
// System include(s): // Local include(s).
#include <vector>
#include <set>
// EDM include(s):
#include "AthLinks/ElementLink.h"
#include "AthLinks/DataLink.h"
// Local include(s):
#include "xAODEventInfo/EventInfo.h" #include "xAODEventInfo/EventInfo.h"
#include "xAODEventInfo/EventAuxInfo.h"
#include "xAODEventInfo/EventInfoContainer.h" #include "xAODEventInfo/EventInfoContainer.h"
#include "xAODEventInfo/versions/EventInfo_v1.h" #include "xAODEventInfo/versions/EventInfo_v1.h"
#include "xAODEventInfo/versions/EventAuxInfo_v1.h" #include "xAODEventInfo/versions/EventAuxInfo_v1.h"
...@@ -25,21 +15,15 @@ ...@@ -25,21 +15,15 @@
#include "xAODEventInfo/versions/EventInfoContainer_v1.h" #include "xAODEventInfo/versions/EventInfoContainer_v1.h"
#include "xAODEventInfo/versions/EventInfoAuxContainer_v1.h" #include "xAODEventInfo/versions/EventInfoAuxContainer_v1.h"
// EDM include(s).
#include "xAODCore/tools/DictHelpers.h"
// Instantiate all necessary types for the dictionary.
namespace { namespace {
struct GCCXML_DUMMY_INSTANTIATION_XAODEVENTINFO { struct GCCXML_DUMMY_INSTANTIATION_XAODEVENTINFO {
// Local type(s).
xAOD::EventInfoContainer_v1 c1; XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, EventInfoContainer_v1 );
XAOD_INSTANTIATE_NS_OBJECT_TYPES( xAOD, EventInfo_v1 );
DataLink< xAOD::EventInfo_v1 > dl1;
std::vector< DataLink< xAOD::EventInfo_v1 > > dl2;
ElementLink< xAOD::EventInfoContainer_v1 > el1;
std::vector< ElementLink< xAOD::EventInfoContainer_v1 > > el2;
std::vector< std::vector< ElementLink< xAOD::EventInfoContainer_v1 > > > el3;
std::set< uint32_t > set1;
std::vector< std::set< uint32_t > > set2;
}; };
} // private namespace } // private namespace
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment