00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 #ifndef __CINT__
00015 #include "RooGlobalFunc.h"
00016 #endif
00017 #include "RooRealVar.h"
00018 #include "RooDataSet.h"
00019 #include "RooGaussian.h"
00020 #include "TCanvas.h"
00021 #include "RooPlot.h"
00022 #include "TAxis.h"
00023 using namespace RooFit ;
00024 
00025 
00026 void rf101_basics()
00027 {
00028   
00029   
00030 
00031   
00032   RooRealVar x("x","x",-10,10) ;
00033   RooRealVar mean("mean","mean of gaussian",1,-10,10) ;
00034   RooRealVar sigma("sigma","width of gaussian",1,0.1,10) ;
00035 
00036   
00037   RooGaussian gauss("gauss","gaussian PDF",x,mean,sigma) ;  
00038 
00039   
00040   RooPlot* xframe = x.frame(Title("Gaussian p.d.f.")) ;
00041 
00042 
00043   
00044   
00045 
00046   
00047   gauss.plotOn(xframe) ;
00048 
00049   
00050   sigma.setVal(3) ;
00051 
00052   
00053   gauss.plotOn(xframe,LineColor(kRed)) ;
00054   
00055 
00056   
00057   
00058 
00059   
00060   RooDataSet* data = gauss.generate(x,10000) ;  
00061   
00062   
00063   
00064   RooPlot* xframe2 = x.frame(Title("Gaussian p.d.f. with data")) ;
00065   data->plotOn(xframe2) ;
00066   gauss.plotOn(xframe2) ;
00067   
00068 
00069   
00070   
00071 
00072   
00073   gauss.fitTo(*data) ;
00074 
00075   
00076   mean.Print() ;
00077   sigma.Print() ;
00078 
00079   
00080   TCanvas* c = new TCanvas("rf101_basics","rf101_basics",800,400) ;
00081   c->Divide(2) ;
00082   c->cd(1) ; gPad->SetLeftMargin(0.15) ; xframe->GetYaxis()->SetTitleOffset(1.6) ; xframe->Draw() ;
00083   c->cd(2) ; gPad->SetLeftMargin(0.15) ; xframe2->GetYaxis()->SetTitleOffset(1.6) ; xframe2->Draw() ;
00084   
00085  
00086 }