Problem in fitting

Dear Experts,

I am fitting a bmass. I am getting error as mentioned below.

Error: Can’t call RooDataSet::RooDataSet(“data”,“dataset with Bmass”,RooArgSet(Bmass,Mumumass,Triggers,Phimass,Kppt,Kmpt,Bcosalphabs2d,Blxysig,Kptrkdcasigbs,Kmtrkdcasigbs),Import(t1)) in current scope bmassphimumufit.c:23:
Possible candidates are…
(in RooDataSet)
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(void);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(const char
name,const char* title,const RooArgSet& vars,const char* wgtVarName=0);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(const char* name,const char* title,const RooArgSet& vars,const RooCmdArg& arg1,const RooCmdArg& arg2=RooCmdArg(),const RooCmdArg& arg3=RooCmdArg(),const RooCmdArg& arg4=RooCmdArg(),const RooCmdArg& arg5=RooCmdArg(),const RooCmdArg& arg6=RooCmdArg(),const RooCmdArg& arg7=RooCmdArg(),const RooCmdArg& arg8=RooCmdArg());
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(const char* name,const char* title,RooDataSet* data,const RooArgSet& vars,const char* cuts=0,const char* wgtVarName=0);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(const char* name,const char* title,RooDataSet* data,const RooArgSet& vars,const RooFormulaVar& cutVar,const char* wgtVarName=0);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(const char* name,const char* title,TTree* ntuple,const RooArgSet& vars,const char* cuts=0,const char* wgtVarName=0);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(const char* name,const char* title,TTree* t,const RooArgSet& vars,const RooFormulaVar& cutVar,const char* wgtVarName=0);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 public: RooDataSet RooDataSet::RooDataSet(RooDataSet const& other,const char* newname=0);
/home/deepak/root/lib/libRooFitCore.so -1:-1 0 protected: RooDataSet RooDataSet::RooDataSet(const char* name,const char* title,RooDataSet* ntuple,const RooArgSet& vars,const RooFormulaVar* cutVar,const char* cutRange,int nStart,int nStop,Bool_t copyCache,const char* wgtVarName=0);
(in RooAbsData)
(in RooPrintable)
(in RooDirItem)
*** Interpreter error recovered ***
Error: Symbol null is not defined in current scope :0:

Thanks,
Deepak

Hi,

My macro is pasted here.

{

gSystem->Load(“libRooFit”);
using namespace RooFit;

TFile *f = new TFile(“sel_BsToPhiMuMu_BCDEFG_data_s0.root”);
TTree t1 =(TTree)f->Get(“tree”);

int nentries_ = t1->GetEntries();
cout << "\n=> total entries in the data BsToPhiMuMu tree = " << nentries_ << endl;

RooRealVar Bmass(“Bmass”,“M(B_{s}^{0}) [GeV/c^{2}]”, 5.2, 5.6);//defines variable Bmass
RooRealVar Mumumass(“Mumumass”,“M^{#mu#mu}”, 0., 10.);
RooRealVar Triggers(“Triggers”,“HLT”, 0, 1);
RooRealVar Phimass(“Phimass”,“M^{#phi}”, 0., 2.);
RooRealVar Kppt(“Kppt”,"",0.,20);
RooRealVar Kmpt(“Kmpt”,"",0.,20);
RooRealVar Bcosalphabs2d(“Bcosalphabs2d”,"",0,1);
RooRealVar Blxysig(“Blxysig”,"",0,100);
RooRealVar Kptrkdcasigbs(“Kptrkdcasigbs”,"",0,50);
RooRealVar Kmtrkdcasigbs(“Kptrkdcasigbs”,"",0,50);

RooDataSet data(“data”,“dataset with Bmass”, RooArgSet(Bmass, Mumumass,Triggers,Phimass,Kppt,Kmpt,Bcosalphabs2d,Blxysig,Kptrkdcasigbs,Kmtrkd
casigbs), Import(*t1));

TCut c3 = “Triggers==1”;
TCut bm = “Bmass > 5.1 && Bmass < 5.6”;
TCut jpR = “Mumumass < 2.9 || Mumumass > 4.0”;
TCut phim = “Phimass > 1.01 && Phimass < 1.03”;
TCut kpt = “Kppt > 0.8 && Kmpt > 0.8”;
TCut bcos = “Bcosalphabs2d > 0.9994”;
TCut blxy = “Blxysig > 12”;
TCut trkdca = “(Kptrkdcasigbs > 2.0 && Kmtrkdcasigbs >2.0)”;

RooDataSet redData = (RooDataSet)data.reduce(c3 && bm && jpR && phim && kpt && bcos && blxy && trkdca);

RooRealVar mean(“mean”,“mean of the gaussians”, 5.367, 5.2, 5.6);
RooRealVar sigma(“sigma”,“sigma of the gaussian”, 0.015,0, 1.);

RooGaussian sig(“sig”,“Signal component”,Bmass,mean,sigma) ;

RooRealVar lambda(“lambda”,“slope”, -4.0, 4.0);//background for combinatorial
RooExponential bkgExpo(“bkgExpo”,“exponential PDF”, Bmass, lambda);

RooRealVar nsigG(“sigG”,“signal events”, 0, 1147);
RooRealVar nbkg(“nbkg”,“number of bkg events”, 0, 1147);

RooAddPdf model(“model”,"",RooArgSet(sig,bkgExpo),RooArgSet(nsigG,nbkg));
model.Print(“t”);

RooFitResult* fitres = model.fitTo(*redData, Extended(true), Save(true) );

RooPlot *xframe = Bmass.frame(Title(“B_{s}#rightarrow#mu^{+}#mu^{-} #Phi”),Bins(15) ); //50
redData->plotOn(xframe);
model.plotOn(xframe);

model.plotOn(xframe, Components(“sig”), LineStyle(kDashed), LineColor(kRed), FillColor(kGreen), FillStyle(3013), DrawOption(“F”) );
model.plotOn(xframe, Components(“bkgExpo”), LineStyle(kDotted), LineColor(kRed) );

TCanvas *c = new TCanvas(“c”,“c”, 600,600);
gPad->SetLeftMargin(0.15);
xframe->GetYaxis()->SetTitleOffset(1.7);
xframe->Draw();

TPaveText* paveText = new TPaveText(0.62,0.70,0.80,0.88,“NDC”);
paveText->SetBorderSize(0.0);
paveText->SetFillColor(kWhite);
paveText->SetFillStyle(0);
paveText->SetTextSize(0.02);
paveText->AddText(Form(“nsigG = %.0f #pm %.0f evts”, nsigG.getVal(), nsigG.getError()));

paveText->AddText(Form(“nbkg = %.0f #pm %.0f evts”, nbkg.getVal(), nbkg.getError()));
paveText->AddText(Form(“mean = %.5f #pm %.5f GeV”, mean.getVal(), mean.getError()));
paveText->AddText(Form(“sigma = %.5f #pm %.5f GeV”, sigma.getVal(), sigma.getError()));
c->Update();
}

Your two variables Kptrkdcasigbs and Kmtrkdcasigbs have the same name, so the second will overwrite the first, I think, in the RooArgSet (which can only contain unique elements, since it is a set).

Try to include your code with the proper surrounding tags to improve readability. See the following post:

Hi Experts,

It’s running with
RooDataSet redData = (RooDataSet)data.reduce(c3 && bm && jpR && phim && kpt && bcos && blxy );

But when I add trkdca

RooDataSet redData = (RooDataSet)data.reduce(c3 && bm && jpR && phim && kpt && bcos && blxy && trkdca);

It’s not running,giving error.

Thanks,
Deepak

You need to be more specific than “giving error”.

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