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!

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.