Using Pythia8, libEGPythia8.so troubles

Hello,

I’m using the binary install of Linux RHEL 5 (SLC5) x86-64 with gcc 3.4, version 5.28/00 and a freshly compiled install of pythia 8145 with the shared libraries configure option enabled. Root seems to be working fine in general but when I try to run $ROOTSYS/tutorials/pythia/pythia8.C with $PYTHIA8 and $PYTHIA8DATA set to the appropriate values I get the following response from root:

Processing pythia8.C... dlopen error: /hepsoft/root_v5.28.00/lib/libEGPythia8.so: undefined symbol: _ZN7Pythia817ParticleDataTable3pdtE Load Error: Failed to load Dynamic link library /hepsoft/root_v5.28.00/lib/libEGPythia8.so (int)(-1) *** Interpreter error recovered ***

This is probably obvious from the error but /hepsoft/root_v5.28.00/lib/libEGPythia8.so and /hepsoft/root_v5.28.00/lib/libEGPythia8.rootmap do exist so it isn’t an issue with root simply finding them. I’m not really sure how to approach this problem; if anyone else has any insight it will be much appreciated.

Thanks!

1 Like

Were you able to solve this problem?

Philippe.

Hi,

note that you have to load libpythia8.so (from Pythia) before you can load ROOT’s libEGPythia8.

Cheers, Axel.

Hi-

I have the same error:

[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > root .x FastJet.C Warning in <TApplication::GetOptions>: macro .x not found root [0] Processing FastJet.C... dlopen error: /afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/lib/libEGPythia8.so: undefined symbol: _ZN7Pythia817ParticleDataTable3pdtE Load Error: Failed to load Dynamic link library /afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/lib/libEGPythia8.so *** Interpreter error recovered ***

Here is the relevant code from my FastJet.C macro:

[code]{
//Load Pythia8 Libraries
gSystem->Load("$PYTHIA8/lib/libpythia8.so");
gSystem->Load(“libEG.so”);
gSystem->Load(“libEGPythia8.so”);
gROOT->ProcessLine(".include $PYTHIA8/include/");

//Load FastJet Libraries
gROOT->ProcessLine(".include $FASTJETINST/include/");
gSystem->Load("$FASTJETINST/lib/libfastjet.so");

//Load Analysis
gROOT->ProcessLine(".L JETS.C+");
JETS();
return 0;
}
[/code]

It never executes the JETS.C code so I assume that is not the problem.

Thanks
Spencer

instead of

root .x FastJet.C do

root .x FastJet.C or run root and at the prompt, do

root > .x FastJet.C
Rene

Hi Rene-

In your second code snippet I think you mean

but that is not the problem.

I can tell you that I have been able to get this to run on a “personal” copy of root:

[code][atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > echo $ROOTSYS
/afs/slac/g/atlas/work/s/sgess/root
[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > echo $LD_LIBRARY_PATH
/afs/slac/g/atlas/work/s/sgess/root/lib:/usr/local/lib
[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > echo $PATH
/afs/slac/g/atlas/work/s/sgess/root/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/etc:/usr/afsws/bin:/usr/afsws/etc:/usr/bin/X11:/cern/pro/bin:.
[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > root FastJet.C


  •                                     *
    
  •    W E L C O M E  to  R O O T       *
    
  •                                     *
    
  • Version 5.29/01 15 December 2010 *
  •                                     *
    
  • You are welcome to visit our Web site *
  •      http://root.cern.ch            *
    
  •                                     *
    

ROOT 5.29/01 (trunk@37905, Jan 28 2011, 16:22:28 on linuxx8664gcc)

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0]
Processing FastJet.C…

------------------------------------------------------------------------------------
| |
| ------------------------------------------------------------------------------ |
| | | |
| | | |
| | PPP Y Y TTTTT H H III A Welcome to the Lund Monte Carlo! | |
| | P P Y Y T H H I A A This is PYTHIA version 8.145 | |
| | PPP Y T HHHHH I AAAAA Last date of change: 10 Nov 2010 | |
| | P Y T H H I A A | |
| | P Y T H H III A A Now is 26 Jun 2011 at 15:06:45 | |
[/code]

However, when I try and use the “system” root, I get:

[code][atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > echo $ROOTSYS
/afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3
[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > echo $LD_LIBRARY_PATH
/afs/slac.stanford.edu/g/atlas/packages/gcc432/gcc-alt-432/x86_64-slc5-gcc43-opt/lib64:/afs/slac.stanford.edu/g/atlas/packages/gcc432/gcc-alt-432/x86_64-slc5-gcc43-opt/lib::/afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/lib:/afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/bin/root:usr/local/lib
[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > echo $PATH
/afs/slac.stanford.edu/g/atlas/packages/gcc432/gcc-alt-432/x86_64-slc5-gcc43-opt/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/etc:/usr/afsws/bin:/usr/afsws/etc:/usr/bin/X11:/cern/pro/bin:.://afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/bin
[atlint01] /afs/slac/g/atlas/work/s/sgess/runTellDat > root FastJet.C


  •                                     *
    
  •    W E L C O M E  to  R O O T       *
    
  •                                     *
    
  • Version 5.28/00a 21 February 2011 *
  •                                     *
    
  • You are welcome to visit our Web site *
  •      http://root.cern.ch            *
    
  •                                     *
    

ROOT 5.28/00a (tags/v5-28-00a@38195, Feb 23 2011, 14:22:24 on linuxx8664gcc)

CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0]
Processing FastJet.C…
dlopen error: /afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/lib/libEGPythia8.so: undefined symbol: _ZN7Pythia817ParticleDataTable3pdtE
Load Error: Failed to load Dynamic link library /afs/slac.stanford.edu/g/atlas/packages/root/root_v5.28.00a.Linux-slc5_amd64-gcc4.3/lib/libEGPythia8.so
*** Interpreter error recovered ***
[/code]

Both versions of root I have used have the correct libraries in the correct places. Could it be something between version 5.28 and 5.29?

Thanks
Spencer

[quote] Could it be something between version 5.28 and 5.29?[/quote]It indeed could. Could you try v5.30?

Philippe.

Hello,

I’ve been using without problems PYTHIA8.135 interfaced via ROOT 5.28 for more than a year on my SL5 laptop

uname -a
Linux localhost.localdomain 2.6.18-238.12.1.el5xen #1 SMP Tue May 31 13:35:45 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux

Yesterday, I updated PYTHIA8.160, and ROOT 5.30 (root_v5.30.06.Linux-slc5_amd64-gcc4.3) and 5.32 (root_v5.32.00.Linux-slc5_amd64-gcc4.3) binaries.

For both ROOT versions I encounter the same problem when uploading the following libs in CINT:

gSystem->SetIncludePath("-I$PYTHIA8/include");
gSystem->Load("$PYTHIA8/lib/libpythia8");
gSystem->Load(“libEG”);
gSystem->Load(“libEGPythia8”);
dlopen error: /usr/root_v5.30.06.Linux-slc5_amd64-gcc4.3/lib/libEGPythia8.so: undefined symbol: _ZN7Pythia817ParticleDataTable3pdtE
Load Error: Failed to load Dynamic link library /usr/root_v5.30.06.Linux-slc5_amd64-gcc4.3/lib/libEGPythia8.so

which points to this missing symbol:

c++filt _ZN7Pythia817ParticleDataTable3pdtE
Pythia8::ParticleDataTable::pdt

I saw this previous post where a similar problem was reported and in principle solved.
Any hints ? Thanks in advance.

I had the same problem last week, but I figured out that the entry “Pythia8::ParticleDataTable::pdt” is no longer used in Pythia from version 8.135+.

In ROOT, libEGPythia8.so calls ParticleDataTable::pdt, but the ParticleData.cc code in Pythia 8.135+ (which generates the table) doesn’t have this entry, and your code crashes.

To “solve” it, you have to find Pythia and ROOT versions that match to each other, i.e., a version of Pythia 8 that has the ParticleDataTable::pdt entry. I found that the lastest version including it is v.8.130. However, it’s just a temporary fix, since I’d like to work with the newest version of Pythia. I tried it with Pythia v.8.162 and ROOT v.5.30, but I got the same problem.

If someone finds a way to make it work in ROOT v.5.30 and Pythia 8.162, please give a feedback.

Cheers.

Hi,

the problem is due to a binary incompatibility, not source incompatibility. To get ROOT to work with the new Pythia8, you have to first compile pythia8 and then ROOT again.

Cheers, Fons.

hi @rdm

I did as you explained but still gives error when compiling root.

collect2: error: ld returned 1 exit status
/home/oem/root/montecarlo/pythia8/Module.mk:54: recipe for target ‘lib/libEGPythia8.so’ failed

First I compiled Pythia8 than Root with like this:
./configure --enable-pythia8 --with-pythia8-incdir=/home/oem/pythia8/include --with-pythia8-libdir=/home/oem/pythia8/lib

make.

but still gives this error.