Pythia8 (8180 / 8185) as plugin to ROOT (5.34.17 / 5.99)

Dear all,

I’m trying to get Pythia8 accessible by the ROOT command line (cint/cling interpreters), without success.

I understand that a dictionary should be generated to this end. Running ‘make dick’ in $PYTHIA8/rootexamples gives the following output with pythia8185 and the latest root (5.99/05):

[quote]rootcint -f pythiaDict.cc -c -I/home/elena/pythia/pythia8185/include
-DPYTHIA8_COMPLETE_ROOT_DICTIONARY
pythiaROOT.h pythiaLinkdef.h
g++ -shared -fPIC -o pythiaDict.so pythiaDict.cc
-DPYTHIA8_COMPLETE_ROOT_DICTIONARY
-I/home/elena/pythia/pythia8185/include -pthread -m64 -I/home/elena/ROOT/latest/root/include -m64 -L/home/elena/ROOT/latest/root/lib -lGui -lCore -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic -L/home/elena/pythia/pythia8185/lib -lpythia8 -llhapdfdummy
In file included from /home/elena/pythia/pythia8185/include/Pythia8/SigmaProcess.h:36:0,
from /home/elena/pythia/pythia8185/include/Pythia8/UserHooks.h:16,
from /home/elena/pythia/pythia8185/include/Pythia8/TimeShower.h:22,
from /home/elena/pythia/pythia8185/include/Pythia8/ParticleDecays.h:20,
from /home/elena/pythia/pythia8185/include/Pythia8/HadronLevel.h:22,
from /home/elena/pythia/pythia8185/include/Pythia8/Pythia.h:18,
from pythiaROOT.h:2,
from pythiaDict.cc:39:
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h: In instantiation of ‘static void ROOT::TCollectionProxyInfo::Pushback::resize(void*, size_t) [with T = std::vectorPythia8::ResonanceWidths; size_t = long unsigned int]’:
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h:525:73: required from ‘static ROOT::TCollectionProxyInfo* ROOT::TCollectionProxyInfo::Generate(const T&) [with T = ROOT::TCollectionProxyInfo::Pushback<std::vectorPythia8::ResonanceWidths >]’
pythiaDict.cc:2580:140: required from here
/home/elena/pythia/pythia8185/include/Pythia8/ResonanceWidths.h:78:3: error: ‘Pythia8::ResonanceWidths::ResonanceWidths()’ is protected
ResonanceWidths() {}
^
In file included from pythiaDict.cc:30:0:
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h:347:10: error: within this context
c->resize(n);
^
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h:347:10: note: when instantiating default argument for call to void std::vector<_Tp, _Alloc>::resize(std::vector<_Tp, _Alloc>::size_type, std::vector<_Tp, _Alloc>::value_type) [with _Tp = Pythia8::ResonanceWidths; _Alloc = std::allocatorPythia8::ResonanceWidths; std::vector<_Tp, _Alloc>::size_type = long unsigned int; std::vector<_Tp, _Alloc>::value_type = Pythia8::ResonanceWidths]
In file included from /home/elena/pythia/pythia8185/include/Pythia8/SigmaProcess.h:36:0,
from /home/elena/pythia/pythia8185/include/Pythia8/UserHooks.h:16,
from /home/elena/pythia/pythia8185/include/Pythia8/TimeShower.h:22,
from /home/elena/pythia/pythia8185/include/Pythia8/ParticleDecays.h:20,
from /home/elena/pythia/pythia8185/include/Pythia8/HadronLevel.h:22,
from /home/elena/pythia/pythia8185/include/Pythia8/Pythia.h:18,
from pythiaROOT.h:2,
from pythiaDict.cc:39:
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h: In instantiation of ‘static void* ROOT::TCollectionProxyInfo::Type::construct(void*, size_t) [with T = std::vectorPythia8::ResonanceWidths; size_t = long unsigned int]’:
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h:525:73: required from ‘static ROOT::TCollectionProxyInfo* ROOT::TCollectionProxyInfo::Generate(const T&) [with T = ROOT::TCollectionProxyInfo::Pushback<std::vectorPythia8::ResonanceWidths >]’
pythiaDict.cc:2580:140: required from here
/home/elena/pythia/pythia8185/include/Pythia8/ResonanceWidths.h:78:3: error: ‘Pythia8::ResonanceWidths::ResonanceWidths()’ is protected
ResonanceWidths() {}
^
In file included from pythiaDict.cc:30:0:
/home/elena/ROOT/latest/root/include/TCollectionProxyInfo.h:307:13: error: within this context
::new(m) Value_t();
^
make: *** [dict] Errore 1
[/quote]

ROOT was of course compiled with all the necessary flags, i.e.:

and the configure successfully located Pythia’s headers and libs, and Pythia in turn was configured with

So far, I’ve been unsuccessfull also with the previous versions of the two softwares. If you want I can recompile them with the appropriate flags and post the outputs. For example, here is the output of ‘make dict’ for the pair pythia8185 + root 5.34.17:

[quote]rootcint -f pythiaDict.cc -c -I/home/elena/pythia/pythia8185/include
-DPYTHIA8_COMPLETE_ROOT_DICTIONARY
pythiaROOT.h pythiaLinkdef.h
g++ -shared -fPIC -o pythiaDict.so pythiaDict.cc
-DPYTHIA8_COMPLETE_ROOT_DICTIONARY
-I/home/elena/pythia/pythia8185/include -pthread -m64 -I/home/elena/ROOT/root-5.34.17/root/include -m64 -L/home/elena/ROOT/root-5.34.17/root/lib -lGui -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic -L/home/elena/pythia/pythia8185/lib -lpythia8 -llhapdfdummy
pythiaDict.cc: In function ‘void G__setup_memfuncPythia8()’:
pythiaDict.cc:19993:150: error: address of overloaded function with no contextual type information
"d - - 0 - s u ‘Pythia8::Wave4’ - 11 - w", (char*)NULL, (void*) G__func2void( (Pythia8::Wave4 ()(double, const Pythia8::Wave4&))(&Pythia8::operator) ), 0);
^
make: *** [dict] Errore 1
[/quote]

Is there any known incompatibility between any two of the releases listed in the title? How can I get this running?

Update: I am now trying to use an adapted version of the scripts from [url]Pythia8 as a ROOT Plugin in order to generate the dictionary.
You will find them in this attached file:
pythiaDict.zip (1.16 KB)

Here are the errors I get when trying to execute it using the latest root (5.99/5) and Pythia8 185:
errors_latest2.txt (493 KB)

Here are the errors I get when using root 5.34.17 and Pythia8 185:
errors_2.txt (28.7 KB)

I’m using g++ version 4.8.1

$PYTHIA8/config.mk:

[quote]SHELL = /bin/sh
ARCH = Linux-gcc4
MYLCGPLATFORM = x86_64-slc5-gcc43-opt
SHAREDLIBS = yes
FC = gfortran
CC = gcc
FFLAGS = -O2
CFLAGS = -O2
CXXFLAGS = -O2 -ansi -pedantic -W -Wall -Wshadow
FLIBS = -lgfortran -lgfortranbegin
LDFLAGSSHARED = -O2 -ansi -pedantic -W -Wall -Wshadow -fPIC -shared
LDFLAGLIBNAME = -Wl,-soname
SHAREDSUFFIX = so
[/quote]

Still trying with no luck.
Anybody? I would be supposed to have it running by tomorrow… :wink: