I want to run a Root (Roofit) application using the grid.
People from my experiment suggest to define a compiled library containing the code (pdf / generation / fit) that is loaded from a macro and run.
The general use case works perfectly, but I have a slightly different problem.
I want to generate with a pdf(pdf1) and fit with another one (pdf2)
for this reason in my library there are two sections: one for each pdf
From my macro first (step1) I call pdf1 that writes the data,
then (step2) I call pdf2 that reads and fits the data.
Step1 works as expected, but Step2 fails with errors like:
Symbol G__exception is not defined in current scope /pool/grid/lhbplt01/38065669/globus-tmp.lxbra6507.26700.0/https_3a_2f_2frb03.pic.es_3a9000_2fVLiUxf0XsR4PbJUAM40nSA/3870505/./././runMain.C:50:
I also notice that the few minimization steps it does, the most robust parameters gets absurd values.
I suspect that I have a memory corruption (inside each step the pdf/variables have the same name… I bet that this might be a problem…??).
I also tried adding a gROOT->Reset() in the macro
between step1 and step2, without success.
Step2 alone works.
The same code, splitted in 2 different executables run without any problems on the batch queues
Can you give me some advise on how to understand better (and prevent) this memory problem?
The files are attached.
runMain.C is the CINT macro that is executed,
Main.cpp(h) and library.cpp is the library.