Hello,
I am trying to rerun a ROOT fit with externally written RooFit classes which contain extensions to the original. This works with the class RooGExpModelB2, but fails with RooBDecayKin. Both contain small extensions to the originals RooGExpModel and RooBDecay. However both classes are tested and working in a pure ROOT environment, but the latter fails in a pyROOT script.
Here is a minimal example of what I am doing (I just name the two important vars and set all else to 1):
import ROOT
ROOT.gInterpreter.AddIncludePath("../cpfitter/include")
ROOT.gSystem.Load("../cpfitter/lib/libCPfitter.so");
ROOT.gInterpreter.ProcessLine('#include "RooGExpModelB2.h"')
ROOT.gInterpreter.ProcessLine('#include "RooBDecayKin.h"')
ROOT.gInterpreter.ProcessLine('#include "Linkdef.h"')
t = ROOT.RooRealVar("t","t",3.0, -20,20)
cosThetaCMS = ROOT.RooRealVar("cosThetaCMS","thetaCMS", 0, -1, 1)
a = ROOT.RooRealVar("a","a", 1)
GE = ROOT.RooGExpModel("gausExp", "gaus X exp", t, a, a, a, a, a, a, 0, ROOT.RooGExpModel.Type.Flipped)
dt_pdf = ROOT.RooBDecayKin("dt_pdf","dt_pdf",t, cosThetaCMS, a, a, a, a, a, a, GE, a)
For anyone wondering, I tried to set the side behavior (Normal, Flipped, DoubleSided) of RooBDecayKin by giving the class an integer value. This was just an attempt to fix things
This gives the Error:
TypeError: cannot instantiate incomplete class 'RooBDecayKin'
and:
Error in <TClass::LoadClassInfo>: no interpreter information for class RooBDecayKin is available even though it has a TClass initialization routine.
I cannot yet put links in the topic, but I can provide the code for the two classes if needed.
Thank you very much in advance!
ROOT Version: 6.26/04
Platform: Centos 7
Compiler: gcc 10.04