Fitting shifted RooAbsPdf

Hi everybody,
I am trying to fit a shifted RooAbsPdf but it seems I only get useless results. I do not see what I could be doing wrong. My code looks like this:

   RooRealVar mass("Mass","Missing Mass",0,2000);
   RooPlot * Massframe = mass.frame(Title(TString("Missing Mass")));
   TFile * g=TFile::Open("Test.root");
   TString* HistPost = new TString("FittedTrack_BeamEnergyVsMissingMassKaonPlusBE");
   TH2 * HistSigStar2 = (TH2*) g->FindObjectAny(*HistPost);

   TH1 * HistSigStar = (TH1*) HistSigStar2->ProjectionX(TString("SigStar_"),1,119)->Rebin(5,0);
   RooRealVar shiftSigStar("shiftSigStar","Shift of SigStar",0,-10,10);
   RooFormulaVar MassShifted("MassShift","Mass + shiftSigStar",RooArgList(mass,shiftSigStar));
   RooDataHist SimSigStar("SimSigStar","Simulation of SigStar",mass,Import(*(HistSigStar)));
   RooHistPdf * CurveSigStar = new RooHistPdf("CurveSigStar","Kurve SigStar",MassShifted,mass,SimSigStar);
   RooHistPdf * CurveSigStarNorm = new RooHistPdf("CurveSigStar","Kurve SigStar",mass,SimSigStar);

   RooRealVar testVar("TV","TV",10,0,1000);
   RooAddPdf test("t","t",RooArgList(*CurveSigStar),RooArgList(testVar));

   RooDataSet * ToyData = CurveSigStarNorm->generate(mass,10000);
   ToyData->plotOn(Massframe);
   test.fitTo(*ToyData);
   CurveSigStar->fitTo(*ToyData,Range(1000,1600));
   std::cout<<"Norm: "<<CurveSigStar->getNorm()<<std::endl;
   CurveSigStar->plotOn(Massframe);
   CurveSigStar->paramOn(Massframe);
   test.plotOn(Massframe, LineColor(kGreen));
   CurveSigStarNorm->plotOn(Massframe, LineColor(kRed));
   CurveSigStarNorm->paramOn(Massframe);
   Massframe->Draw();

The used data is here: https://uni-bonn.sciebo.de/s/C9DzcQXSDkix7Vz
Maybe someone can tell me what’s wrong.
Thanks,
Emil

I think @jonas can most probably help you with this

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