Skip to content

Problem using type with default template parameters in the interpreter #15996

Open
@Nowakus

Description

@Nowakus

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

Metadata

Metadata

Assignees

Labels

bugexperimentAffects an experiment / reported by its software & computimng experts

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions