ROOT with Pythia6 and Pythia8


I am desperately trying to compile ROOT with both Pythia6 and Pythia8 support included.
I installed and compiled both Pythia versions without issues and added the --with-pythia6-libdir, --with-pythia8-incdir and --with-pythia8-libdir options with the according paths in the configure step.
Yet, no combinations of Pythia versions and ROOT versions seems to work for me.

It works fine for only Pythia6 using ROOT 5.34/30 and --disable-pythia8 in configure!?

Depending on the ROOT version I use, the errors during ROOT compilation on the Pythia8 part vary.

Thanks in advance

Hi Sascha,

For Pythia 6:
Take this tar file file: and replace the pythia6416.f with the version you prefer (I just tried with pythia-6.4.28.f), and then run the makePythia6 script which corresponds to your architecture

For Pythia 8: you can use any version of Pythia 8 with ROOT 6, but with ROOT 5, you have to use Pythia 8.1 at most

If you don’t manage to get it working, please post the error message you get

Cheers, Bertrand.

For Pythia6 inside ROOT see this old thread:
[Select a PDFset for pythia6 inside Root

Hi Bertrand,

thanks for the hint. I guess it was the Pythia8 version we were unlucky with (though I thought we tried a 8.1.* as well).

Anyways, just for completeness, here’s a full recipe that worked for us now …

mkdir Pythia
cd Pythia

tar zxvf pythia6.tar.gz
rm -rf pythia6.tar.gz
gzip -d pythia-6.4.28.f.gz
mv pythia-6.4.28.f pythia6/pythia6428.f
rm -rf pythia6/pythia6416.f
mv pythia6 pythia6428
cd pythia6428
cd ..

tar zxvf pythia8186.tgz
rm -rf pythia8186.tgz
cd pythia8186
./configure --enable-shared --enable-64bit
make -j 4
cd ..

cat >setupPythiaROOT <<EOL
export PYTHIA6=$PWD/pythia6428
export PYTHIA8=$PWD/pythia8186
export PYTHIA8DATA=$PWD/pythia8186/xmldoc
source setupPythiaROOT

tar zxvf root_v5.34.30.source.tar.gz
mv root root53430
rm -rf root_v5.34.30.source.tar.gz
cd root53430
./configure --fail-on-missing \
  --with-pythia8-incdir=$PYTHIA8/include \
  --with-pythia8-libdir=$PYTHIA8/lib \
  --with-pythia6-libdir=$PYTHIA6 \
  --enable-pythia6 \
make -j 4
cd ..

cat >>setupPythiaROOT <<EOL
source root53430/bin/

cp root53430/tutorials/pythia/pythiaExample.C .
cp root53430/tutorials/pythia/pythia8.C .

# adjust pythia6 path in pythiaExample.C to $PYTHIA6/libPythia6

Hi guys,

are there any chances to get Pythia 8.2 running with root 5 as well or do you really not maintain the framework for that.


The problem with Pythia 8.2 and ROOT 5 that I am aware is that CINT is not able to digest the header file dlfcn.h. See Since we are not going to improve CINT to do it, you can avoid the problem by patching your version of Pythia8 and protect the inclusion of the dlfcn.h with #ifdef MAKECINT#endif.