Problem in fitting pdf

Dear Experts,

I am taking the right side of equation(attached as a png file) as my fitting pdf and trying to get the values of FL, S3, S4, S7, A5, A6, A8, A9. But I am getting the error as

[#0] ERROR:Eval -- RooFormula::eval(f_sig): Formula doesn't compile: 9/(32*(3.142))(3/4*(1-fl)*(1-genCosThetaK*genCosThetaK)+fl*genCosThetaK*genCosThetaK+1/4*(1-fl)*(1-genCosThetaK*genCosThetaK)*(2*genCosThetaL*genCosThetaL-1)-fl*genCosThetaK*genCosThetaK*(2*genCosThetaL*genCosThetaL-1)+s3*(1-genCosThetaK*genCosThetaK)*(1-genCosThetaL*genCosThetaL)*TMath::Cos(2*genPhiAng)+s4*4*genCosThetaK*genCosThetaL*TMath::Sqrt(1-genCosThetaK*genCosThetaK)*TMath::Sqrt(1-genCosThetaL*genCosThetaL)*TMath::Cos(genPhiAng)+a5*2*genCosThetaK*TMath::Sqrt(1-genCosThetaK*genCosThetaK)*TMath::Sqrt(1-genCosThetaL*genCosThetaL)*TMath::Cos(genPhiAng)+a6*(1-genCosThetaK*genCosThetaK)*genCosThetaL+a8*4*genCosThetaK*genCosThetaL*TMath::Sqrt(1-genCosThetaK*genCosThetaK)*TMath::Sqrt(1-genCosThetaL*genCosThetaL)*TMath::Sin(genPhiAng)+a9*(1-genCosThetaK*genCosThetaK)*(1-genCosThetaL*genCosThetaL)*TMath::Sin(2*genPhiAng))

The snippet of the code is pasted below.

  RooRealVar genCosThetaK("genCosThetaK", "cos#theta_{K}", -1., 1.);
  RooRealVar genCosThetaL("genCosThetaL", "cos#theta_{L}", -1., 1.);
  RooRealVar genPhiAng("genPhiAng", "#phi", -TMath::Pi(), TMath::Pi());
  RooRealVar genQ2("genQ2","q^{2}",0.5,20.);

  // CP averaged observables                                                                                                                    
  RooRealVar fl("fl", "F_{L}", 0.1, 0.9);
  RooRealVar s3("s3", "S_{3}", -0.75, 0.75);
  RooRealVar s4("s4", "S_{4}", -0.75, 0.75);
  RooRealVar s7("s7", "S_{7}", -0.75, 0.75);

  // CP asymmetries observables                                                                                                                 
  RooRealVar a5("a5", "A_{5}", -0.75, 0.75);
  RooRealVar a6("a6", "A_{6}", -0.75, 0.75);
  RooRealVar a8("a8", "A_{8}", -0.75, 0.75);
  RooRealVar a9("a9", "A_{9}", -0.75, 0.75);


  RooRealVar nsig("nsig","nsig",1E6,1E2,1E9);
  RooRealVar nbkg("nbkg","nbkg",10,0.1,1E6);


    RooArgSet s(genCosThetaK,genCosThetaL,fl,s3,s4,s7,a5);
    s.add(RooArgSet(a6,a8,a9));

    //RooGenericPdf f_sig("f_sig", "9/(32*(3.142))( 3/4*(1-fl)*(1-genCosThetaK*genCosThetaK))",RooArgSet(genCosThetaK,fl));                     
  RooGenericPdf f_sig("f_sig", "9/(32*(3.142))(3/4*(1-fl)*(1-genCosThetaK*genCosThetaK)+fl*genCosThetaK*genCosThetaK+1/4*(1-fl)*(1-genCosThetaK\
*genCosThetaK)*(2*genCosThetaL*genCosThetaL-1)-fl*genCosThetaK*genCosThetaK*(2*genCosThetaL*genCosThetaL-1)+s3*(1-genCosThetaK*genCosThetaK)*(1\
-genCosThetaL*genCosThetaL)*TMath::Cos(2*genPhiAng)+s4*4*genCosThetaK*genCosThetaL*TMath::Sqrt(1-genCosThetaK*genCosThetaK)*TMath::Sqrt(1-genCo\
sThetaL*genCosThetaL)*TMath::Cos(genPhiAng)+a5*2*genCosThetaK*TMath::Sqrt(1-genCosThetaK*genCosThetaK)*TMath::Sqrt(1-genCosThetaL*genCosThetaL)\
*TMath::Cos(genPhiAng)+a6*(1-genCosThetaK*genCosThetaK)*genCosThetaL+a8*4*genCosThetaK*genCosThetaL*TMath::Sqrt(1-genCosThetaK*genCosThetaK)*TM\
ath::Sqrt(1-genCosThetaL*genCosThetaL)*TMath::Sin(genPhiAng)+a9*(1-genCosThetaK*genCosThetaK)*(1-genCosThetaL*genCosThetaL)*TMath::Sin(2*genPhi\
Ang))", s);

  RooExtendPdf f("f","",f_sig,nsig);
 RooDataSet *data = new RooDataSet("data","data",ch,RooArgSet(genCosThetaK,genCosThetaL,genPhiAng,genQ2),genQ2range[iBin],0);

  RooFitResult *f_fitresult = f.fitTo(*data,Extended(kTRUE),Save(kTRUE),Minimizer("Minuit"),Minos(kFALSE),NumCPU(4));

Could you please tell me how to solve this issue?

Thanks,
Deepak

Dear Experts,

I am waiting for your reply.

Thanks,
Deepak

I guess @moneta may have an idea.

This is really hard to debug, because the syntax parser parses your code. This way a*b*c becomes abc (with an italic b).

To prevent this, surround your code with triple backtricks (```).

I think it should be "9/(32*(3.142))*(3/4*(1-fl)... instead.

The actual problem, though, is that genPhiAng is missing from the ArgSet s, so it does not know it.

Dear Graphier,

Thanks a lot. It’s working.

Thanks,
Deepak

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.