Presentation is loading. Please wait.

Presentation is loading. Please wait.

2D fit Zheng Wang 2009/05/20.

Similar presentations


Presentation on theme: "2D fit Zheng Wang 2009/05/20."— Presentation transcript:

1 2D fit Zheng Wang 2009/05/20

2 2 gaussians for signal mass, one gaussain resolution for signal PDL.
Slope shape for prompt Jpsi and BB bgs’s mass. BB bg’s PDL same as that of signal. Prompt Jpsi PDL are zero with a one gaussian. Fit range: M( ), PDL(-0.05, 0.4) Import data: 10pb-1 b->J/psiX+Prompt J/psi (mass, PDL) samples

3 The Roofit script void RooFit_data_my2() {
//Here you should include your Fit Code gSystem->Load("libRooFit.so"); gROOT->SetStyle("Plain"); using namespace RooFit; RooRealVar *mass = new RooRealVar("mass","mass",5.15,5.6,"GeV/c^{2}"); //two gaussians //gaussian 0 : (mean0, sigma0) RooRealVar *Mean0_mass = new RooRealVar("M_{0}","mass mean 0",5.28, 5.27, 5.29); RooRealVar *Sigma0_mass = new RooRealVar("#sigma_{M0}","mass sigma 0",0.1, 0.05, 0.5); RooResolutionModel* g0_mass = new RooGaussModel("g0_mass", "mass resolution",*mass,*Mean0_mass,*Sigma0_mass); //gaussian 1 : (mean1, sigma1) RooRealVar *Mean1_mass = new RooRealVar("M_{1}","mass mean 1",5.28, 5.27, 5.29); RooRealVar *Sigma1_mass = new RooRealVar("#sigma_{M1}","mass sigma 1",0.025, 0.01, 0.05); RooResolutionModel* g1_mass = new RooGaussModel("g1_mass","mass resolution", *mass, *Mean1_mass,*Sigma1_mass);

4 Signal mass // two gaussion resol. fraction
RooRealVar *frac_g0_mass = new RooRealVar("f_g0_M"," gaussion resol. fraction 0", 0.05, , 0.3); RooRealVar *frac_g1_mass = new RooRealVar("f_g1_M"," gaussion resol. fraction 1", 0.3, 0.01, 0.8); // RooAbsPdf* mass_b_pdf = new RooAddModel("mass_b_pdf","dual gaussian Pdf", RooArgList(*g0_mass,*g1_mass), RooArgList(*frac_g0_mass, *frac_g1_mass)); RooRealVar* N_b = new RooRealVar ("N_{b}","Signal number B Jpsi K", 1500, 1000,2000); RooAbsPdf* mass_b_epdf = new RooExtendPdf("mass_b_epdf", "mass sig B 2 jpsi K", *mass_b_pdf, *N_b ); /// >>>>>>>>>OK, signal mass PDF is ready

5 Signal time ///>>>>>signal time PDF<<<<<<< RooRealVar *tom = new RooRealVar("tom","proper decay length", -0.05, 0.4,"cm"); RooRealVar *b_tau = new RooRealVar("c#tau_{b}","B ctau", , 0.04, 0.055) ; //cm RooRealVar *Mean_tom = new RooRealVar("tomMean","proper time mean",0); RooRealVar *ratio_tom = new RooRealVar("s_{to}","ratio",1, 0.01, 50) ; RooRealVar *tom_err = new RooRealVar("tom_err","tom_err",0, 1.0,"cm"); RooRealVar *Sigma0_tom = new RooRealVar("#sigma_{t0}","proper time sigma", , 0., 0.005); // RooFormulaVar *Sigma1_tom = new RooFormulaVar *Sigma1_tom = new RooRealVar *frac_g_tom = new RooRealVar("f_g_#sigma_{t0}"," gaussion resol. fraction", , 0.01, 0.01); //

6 RooResolutionModel* g0_tom = new RooGaussModel("g0_tom",
"proper time resolution", *tom,*Mean_tom,*Sigma0_tom); RooResolutionModel* g1_tom = new RooGaussModel("g1_tom", *tom,*Mean_tom,*Sigma1_tom); RooResolutionModel* properTimeRes = new RooGaussModel("g1_tom","proper time resolution", *tom, *Mean_tom,*Sigma1_tom); // RooResolutionModel* properTimeRes = new RooAddModel("properTimeRes","dual gaussian Pdf", RooArgList(*g0_tom,*g1_tom), RooArgList(*frac_g_tom)); RooAbsPdf* time_b_pdf = new RooDecay("time_b_pdf","time pdf B 2 jpsi K", *tom,*b_tau,*properTimeRes,RooDecay::SingleSided); // OK, signal time PDF is ready // Combining Signal PDFs (mass +time) RooAbsPdf* masstimeSigpdf = new RooProdPdf("masstimeSigpdf","signal m * t", RooArgSet(*time_b_pdf,*mass_b_epdf));

7 Jpsi bg ///prompt J/psi mass
RooRealVar *slope = new RooRealVar("slope","slope",0.0) ; RooAbsPdf* mass_pJpsi_pdf = new RooPolynomial("mass_pJpsi_pdf","mass pdf pJpsi",*mass,*slope); RooRealVar* N_pJpsi = new RooRealVar ("N_{p-J/#psi}","Signal number prompt Jpsi",4000,2000,10000); RooAbsPdf* mass_pJpsi_epdf = new RooExtendPdf("mass_pJpsi_epdf", "mass sig pJpsi", *mass_pJpsi_pdf, *N_pJpsi ); // prompt J/psi time RooAbsPdf* time_pJpsi_pdf =new RooGaussModel("g1_tom", "proper time resolution", *tom,*Mean_tom,*Sigma1_tom) ; //background jpsi mass+time RooAbsPdf* masstimeBkgpdf = new RooProdPdf("masstimeBkgpdf","background m * t", RooArgSet(*time_pJpsi_pdf,*mass_pJpsi_epdf)); /////OK background jpsi is ready

8 BB bg ///BB mass RooAbsPdf* mass_BB_pdf = new RooPolynomial("mass_QCD_pdf","mass pdf QCD",*mass,*slope); RooRealVar* N_BB = new RooRealVar ("N_{BB}","Signal number BB", 500,100,2000); RooAbsPdf* mass_BB_epdf = new RooExtendPdf("mass_BB_epdf", "mass BB", *mass_BB_pdf, *N_BB ); // prompt BB time RooAbsPdf* time_BB_pdf = new RooDecay("time_BB_pdf","time pdf BB", *tom,*b_tau,*properTimeRes,RooDecay::SingleSided); //background BB mass+time RooAbsPdf* masstimeBkgpdf2 = new RooProdPdf("masstimeBkgpdf2","background2 m * t", RooArgSet(*time_BB_pdf,*mass_BB_epdf)); ///// OK background2 BB is ready ///Sig+bg PDF RooAbsPdf* pdf_fit = new RooAddPdf("pdf_fit","Total(B+S) PDF", RooArgSet(*masstimeSigpdf,*masstimeBkgpdf,*masstimeBkgpdf2));

9 Fit //// Real data generate
RooArgSet *pdf_obs = new RooArgSet(*mass, *tom); RooDataSet *dataB = RooDataSet::read("fitsample.txt",RooArgList(*pdf_obs)); //// -----Fitting---- // Define differen -log(L) for B->ff, B->f fbar and B->fbar f RooNLLVar *nllB = new RooNLLVar("nllB","-log(L)",*pdf_fit,*dataB,Extended(true)); RooMinuit m1(*nllB); // RooMinuit m1(*L); m1.setVerbose(kTRUE) ; // m1.setLogFile(logFile); m1.setProfile(1); m1.setPrintLevel(3); m1.setStrategy(2); m1.migrad() ;

10 Fit result


Download ppt "2D fit Zheng Wang 2009/05/20."

Similar presentations


Ads by Google