diff --git a/Control/AthContainersRoot/src/getDynamicAuxID.cxx b/Control/AthContainersRoot/src/getDynamicAuxID.cxx index f25bbccb4940a480287a727cdcb57ac27d0a2d4c..534c07eb3421f6e3e3dac03de9b1b8f02daec8e4 100644 --- a/Control/AthContainersRoot/src/getDynamicAuxID.cxx +++ b/Control/AthContainersRoot/src/getDynamicAuxID.cxx @@ -1,8 +1,6 @@ /* - 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$ /** * @file AthContainersRoot/src/getDynamicAuxID.h * @author scott snyder <snyder@bnl.gov> @@ -32,7 +30,16 @@ TClass* getClassIfDictionaryExists (const std::string& cname) return nullptr; } - if (gInterpreter->GetClassSharedLibs (cname.c_str())) { + // The idea of calling GetClassSharedLibs was to test if a class was + // listed in the rootmap file, so we could avoid autoparsing. + // This worked with older versions of root 6. + // But now root has started doing dynamic linking itself, + // and GetClassSharedLibs will itself trigger autoparsing. + // So currently, this test does more harm than good. + // Still need to see if we can find a reliable way of failing + // a TClass lookup rather than triggering autoparsing. + //if (gInterpreter->GetClassSharedLibs (cname.c_str())) + { TClass* cl = TClass::GetClass (cname.c_str()); if (cl->HasDictionary()) return cl; diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/selection.xml b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/selection.xml index f0cabd38785e87197627149363dc5d75701cd960..ec86a1c2207f8269e37b1b8eab3219edf155d338 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/selection.xml +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/selection.xml @@ -35,6 +35,7 @@ <class name="xAOD::CaloClusterBadChannelData_v1" /> <class name="std::vector<xAOD::CaloClusterBadChannelData_v1>" /> <class name="std::vector<std::vector<xAOD::CaloClusterBadChannelData_v1> >" /> + <class name="SG::AuxTypeVectorFactory<std::vector<xAOD::CaloClusterBadChannelData_v1> >" /> <typedef name="xAOD::CaloClusterBadChannelData" /> <typedef name="xAOD::CaloClusterBadChannelList" /> diff --git a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/xAODCaloEventDict.h b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/xAODCaloEventDict.h index 29d9afc6223871c797a0f5e958db92f473bc0579..39d0c912638b98e45661acefb5d626440be397df 100644 --- a/Event/xAOD/xAODCaloEvent/xAODCaloEvent/xAODCaloEventDict.h +++ b/Event/xAOD/xAODCaloEvent/xAODCaloEvent/xAODCaloEventDict.h @@ -38,6 +38,7 @@ namespace { XAOD_INSTANTIATE_NS_CONTAINER_TYPES( xAOD, CaloTowerContainer_v1 ); std::vector< xAOD::CaloClusterBadChannelData_v1 > v1; std::vector< std::vector< xAOD::CaloClusterBadChannelData_v1 > > v2; + SG::AuxTypeVectorFactory<std::vector< xAOD::CaloClusterBadChannelData_v1 > > v3; }; } diff --git a/Event/xAOD/xAODPFlow/xAODPFlow/selection.xml b/Event/xAOD/xAODPFlow/xAODPFlow/selection.xml index 2c6e4664db7c05f53770cf27802c116ea5bc75c9..5d0b8c7f77f9c62732e99901f1ee49be80588213 100644 --- a/Event/xAOD/xAODPFlow/xAODPFlow/selection.xml +++ b/Event/xAOD/xAODPFlow/xAODPFlow/selection.xml @@ -47,6 +47,7 @@ <class name="std::pair<ElementLink<xAOD::CaloClusterContainer_v1>,double>" /> <class name="std::vector<std::pair<ElementLink<xAOD::CaloClusterContainer_v1>,double> >" /> <class name="std::vector<std::vector<std::pair<ElementLink<xAOD::CaloClusterContainer_v1>,double> > >" /> + <class name="SG::AuxTypeVectorFactory<std::vector<std::pair<ElementLink<xAOD::CaloClusterContainer_v1>,double> > >" /> <class name="std::vector<xAOD::PFODetails::PFOLeptonType>" /> </lcgdict> diff --git a/Event/xAOD/xAODPFlow/xAODPFlow/xAODPFlowDict.h b/Event/xAOD/xAODPFlow/xAODPFlow/xAODPFlowDict.h index 4829da63e9a1e00cf26ee9c14a1062233c1f556a..3bf4c8220ddc7036ddea7719e8bd05b4b6f31366 100644 --- a/Event/xAOD/xAODPFlow/xAODPFlow/xAODPFlowDict.h +++ b/Event/xAOD/xAODPFlow/xAODPFlow/xAODPFlowDict.h @@ -47,6 +47,7 @@ namespace { std::vector< std::pair< ElementLink< xAOD::CaloClusterContainer >, double > > FlowElemdummy2; std::vector< std::vector< std::pair< ElementLink< xAOD::CaloClusterContainer >, double > > > FlowElemdummy3; std::vector< xAOD::PFODetails::PFOLeptonType > FlowElemdummy4; + SG::AuxTypeVectorFactory<std::vector< std::pair< ElementLink< xAOD::CaloClusterContainer >, double> > > FlowElemdummy5; };