Hi! I am following the FCC Tutorial. In, 2.4.2: Part II: Produce a flat tree and analyse events, I am running into the error: no member named ‘TrackerHitData’ in namespace ‘edm4hep’ while trying to run the treemaker_flavor.py.
I am using the key4hep/releases/2025-05-29. The analysis fails with the following error message:
----> INFO: Loading analyzers from libFCCAnalyses...
----> INFO: Loading analysis script:
/afs/cern.ch/user/s/sbakare/FCC/FCCSW/FCCAnalyses/treemaker_flavor.py
----> INFO: Multithreading enabled. Running over 4 threads
----> INFO: Loading functions.h...
Warning in <TClass::Init>: no dictionary for class edm4hep::MCRecoParticleAssociationData is available
Warning in <TClass::Init>: no dictionary for class edm4hep::TrackerHitData is available
Warning in <TClass::Init>: no dictionary for class edm4hep::ObjectID is available
Warning in <TClass::Init>: no dictionary for class edm4hep::Vector2i is available
----> INFO: Number of the output files: 1
----> INFO: Running locally...
----> INFO: Creating dataframe object from files:
- ./localSamples//p8_ee_ZH_Zmumu_ecm240/p8_ee_ZH_Zmumu_ecm240_edm4hep.root
----> INFO: Number of local events: 10,000
----> INFO: Output file path:
./outputs/treemaker/flavor/p8_ee_ZH_Zmumu_ecm240.root
Warning in <TStreamerInfo::BuildOld>: Cannot convert edm4hep::ReconstructedParticleData::covMatrix from type: float to type: edm4hep::CovMatrix4f, skip element
Warning in <TStreamerInfo::BuildOld>: Cannot convert edm4hep::MCParticleData::momentum from type: edm4hep::Vector3f to type: edm4hep::Vector3d, skip element
Warning in <TStreamerInfo::BuildOld>: Cannot convert edm4hep::MCParticleData::momentumAtEndpoint from type: edm4hep::Vector3f to type: edm4hep::Vector3d, skip element
Warning in <TStreamerInfo::BuildOld>: Cannot convert edm4hep::ClusterData::positionError from type: float to type: edm4hep::CovMatrix3f, skip element
input_line_168:2:225: error: no member named 'TrackerHitData' in namespace 'edm4hep'
...var1, ROOT::VecOps::RVec<float>& var2, ROOT::VecOps::RVec<edm4hep::ClusterData>& var3, ROOT::VecOps::RVec<edm4hep::TrackerHitData>& var4, ...
~~~~~~~~~^
input_line_172:2:225: error: no member named 'TrackerHitData' in namespace 'edm4hep'
...var1, ROOT::VecOps::RVec<float>& var2, ROOT::VecOps::RVec<edm4hep::ClusterData>& var3, ROOT::VecOps::RVec<edm4hep::TrackerHitData>& var4, ...
~~~~~~~~~^
Traceback (most recent call last):
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/bin/fccanalysis", line 136, in <module>
main()
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/bin/fccanalysis", line 131, in main
run(parser)
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/python/run_analysis.py", line 728, in run
run_stages(args, rdf_module, anapath)
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/python/run_analysis.py", line 389, in run_stages
run_local(rdf_module, chunk_list[0], args)
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/python/run_analysis.py", line 221, in run_local
inn, outn = run_rdf(rdf_module, file_list, outfile_path, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/python/run_analysis.py", line 113, in run_rdf
dframe3 = get_element(rdf_module.RDFanalysis, "analysers")(dframe2)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/afs/cern.ch/user/s/sbakare/FCC/FCCSW/FCCAnalyses/treemaker_flavor.py", line 176, in analysers
df = jetFlavourHelper.define(df)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/cvmfs/sw.hsf.org/key4hep/releases/2025-05-29/x86_64-almalinux9-gcc14.2.0-opt/fccanalyses/0.11.0-a25snu/python/addons/ONNXRuntime/jetFlavourHelper.py", line 224, in define
df = df.Define(var, call)
^^^^^^^^^^^^^^^^^^^^
File "/cvmfs/sw.hsf.org/key4hep/releases/2024-10-03/x86_64-almalinux9-gcc14.2.0-opt/root/6.32.04-vms5ij/lib/ROOT/_pythonization/_rdf_pyz.py", line 372, in _PyDefine
return rdf._OriginalDefine(col_name, callable_or_str)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: Template method resolution failed:
ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void> ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void>::Define(string_view name, string_view expression) =>
runtime_error:
RDataFrame: An error occurred during just-in-time compilation. The lines above might indicate the cause of the crash
All RDF objects that have not run an event loop yet should be considered in an invalid state.
ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void> ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void>::Define(string_view name, string_view expression) =>
runtime_error:
RDataFrame: An error occurred during just-in-time compilation. The lines above might indicate the cause of the crash
All RDF objects that have not run an event loop yet should be considered in an invalid state.
Failed to instantiate "Define(ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void>&,std::string,std::string)"
Failed to instantiate "Define(ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void>*,std::string,std::string)"
Failed to instantiate "Define(ROOT::RDF::RInterface<ROOT::Detail::RDF::RJittedFilter,void>,std::string,std::string)"
It looks like the jetFlavourHelper is calling some C++ code (like JetConstituentsUtils::get_mtof) that expects an edm4hep::TrackerHitData collection, but this data type doesn’t seem to exist in the edm4hep.
How do I solve this issue?