Below is more of the code:
vector <RooDataSet *> rds(6);
vector <RooAbsPdf *> rap(6);
RooRealVar mass("mass", "mass", min, max);
RooRealVar sigweight("sigweight", "sigweight", 0., 1.e6);
RooArgSet var;
var.add(mass), var.add(sigweight);
TString oName = oname;
TFile *tfile = new TFile(oName);
RooWorkspace *work = (RooWorkspace *)tfile -> Get("work");
TString cuts = Form("(mass>%f) && (mass<%f)", min, max);
RooRealVar *fix = work -> var("fixedRatio");
for (int i = 0; i < inVec.size(); i++)
{
tf[i] = new TFile(inVec[i],"read");
TString tname = "background";
if (inVec[i].Contains("mc")){tname = "signal";}
tt[i] = (TTree *)tf[i] -> Get(tname);
rds[i] = new RooDataSet(tsNom[i] + "_dset", tsNom[i], tt[i], var, cuts, "sigweight");
rap[i] = work -> pdf(tsNom[i] + "_kpdf");
}
RooRealVar q1(*fix, "emp");
RooRealVar q2("dy", "coeff", 0.5,0.0, 1.);
RooRealVar q3("jpsi", "coeff", 0.2,0.0, 1.);
RooRealVar q4("psip", "coeff", 0.1,0.0, 1.);
RooRealVar q5("jmix", "coeff", 0.3,0.0, 1.);
RooDataHist rdh(tsNom[0] + "_dh", "", var, *rds[0]);
RooAddPdf *model = new RooAddPdf("model", "model", RooArgList(*rap[1], *rap[2], *rap[4], *rap[5], *rap[3]), RooArgList(q1, q2, q4, q5));
RooFitResult *res = model -> fitTo(*rds[0], RooFit::Save(), PrintLevel(0), NumCPU(2,0), Minimizer("Minuit2","migrad"));
model -> fixAddCoefNormalization(RooArgList(q1, q2, q4, q5), kTRUE);
printf("Sum of Coefficients(%f)\n", model -> evaluate());
I tried the fixAddCoefNormaization() both containing/not containing q3 and kTRUE/kFALSE and I get -nan as the answer for all of them.