Open
Description
Check duplicate issues.
- Checked for duplicates
Description
The new cppyy produces an error when we try to call GetBranchAttr on one of our DataVector branches.
Reproducer
Reproducer using only the ATLAS environment, no files necessary:
export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase
source $ATLAS_LOCAL_ROOT_BASE/user/atlasLocalSetup.sh
asetup main--dev4LCG,latest,Athena
python
import ROOT, cppyy.ll
ROOT.TClass.GetClass('DataVector<xAOD::PixelCluster_v1>').HasDictionary()
True
cppyy.ll.cast['DataVector<xAOD::PixelCluster_v1>'](0)
TypeError: Could not find "cppyy_cast<DataVector<xAOD::PixelCluster_v1>>" (set cppyy.set_debug() for C++ errors):
Failed to instantiate "cppyy_cast<DataVector<xAOD::PixelCluster_v1>>(int)"
but using a typedef to the DataVector works (note the real type of the returned object):
cppyy.ll.cast['xAOD::PixelClusterContainer_v1>'](0)
<cppyy.gbl.DataVector<xAOD::PixelCluster_v1> object at 0x11cbd2c0>
and after the previous call autoloaded some libraries, the real type starts to work as well:
cppyy.ll.cast['DataVector<xAOD::PixelCluster_v1>'](0)
<cppyy.gbl.DataVector<xAOD::PixelCluster_v1> object at 0x1f542770>
ROOT version
6.32+, possibly since 6.30
Installation method
SFT dev nightlies
Operating system
alma9
Additional context
No response