ShipSoft / shipdist

Recipes to build SHiP software and its dependencies
2 stars 10 forks source link

Use newest ROOT bugfix version #60

Closed olantwin closed 4 years ago

olantwin commented 4 years ago

Various bugfixes. Our stack and FairShip build fine (tested on Fedora 30), so I recommend we adopt them.

Early warning: The next major release, 6.22, was tagged and is available, but will require some changes on our side.

ThomasRuf commented 4 years ago

When this new version of ROOT, I run into the problem that the execution gets stuck when issuing: P8gen = ROOT.HNLPythia8Generator()

No idea how to debug this. Adding a print statement in the first line of the constructor is not shown during execution.

ThomasRuf commented 4 years ago

ROOT.TPythia8() has the same problem. To reproduce the problem, start python: import ROOT ROOT.TPythia8()

ThomasRuf commented 4 years ago

small correction: after a VERY long time,>10minutes, running with 100% CPU load, it eventually instantiates the object. But this is of course not sustainable.

olantwin commented 4 years ago

This might actually be the issue I also encountered with the new fairroot version + new root version. Not sure how to debug either...

olantwin commented 4 years ago

None of the changes in the changelog seem related to TPythia...

olantwin commented 4 years ago

Indeed, this is the change that broke run_simScript.py rather than the changes to FairRoot. Very strange... I'll try to investigate!

ThomasRuf commented 4 years ago

tried to change Pythia8 version

gives compile error which I don't know how to fix: SHiPBuild/sw/SOURCES/FairShip/master/0/shipgen/FixedTargetGenerator.h:13:7: note: forward declaration of 'class EvtGenDecays' 13 | class EvtGenDecays; | ^~~~ /media/disk0/SHiPBuild/sw/SOURCES/FairShip/master/0/shipgen/FixedTargetGenerator.cxx:201:91: error: invalid use of incomplete type 'class EvtG enDecays' 201 | evtgenN = new EvtGenDecays(fPythiaN, DecayFile.Data(), ParticleFile.Data(),myEvtGenPtr); ...

ThomasRuf commented 4 years ago

going back to ship pythia8. In python, the stopping of the program when instantiating TPythia8 can be avoided by loading the library first: import ROOT ROOT.gSystem.Load('libEGPythia8') test = ROOT.TPythia8()

with Load('libEGPythia8'), program blocks. However, this is not the solution for run_simScript and HNLGenerator, where TPythia8 is instantiated within C++.

olantwin commented 4 years ago

I'm currently tracking down which ROOT commit broke things. Maybe that will give us a hint towards fixing it (or maybe there is a bug in ROOT). 4-5 steps more, so might be able to pinpoint it today.

olantwin commented 4 years ago

This commit is the culprit: https://github.com/root-project/root/commit/4c2e366cc87122b9fcfb5925535eaa8e15fd23b0

ThomasRuf commented 4 years ago

Should I submit a ROOT bug report or will you do?

olantwin commented 4 years ago

If you could submit it, that would be great, as you have a better understanding of what run_simScript.py is doing than me.

olantwin commented 4 years ago

For completeness, I checked with ROOT 6.22.0, and the issue is still present there as well.