using namespace RooFit; void korrelationen() { gStyle->SetPalette(1); RooWorkspace work("work",kTRUE) ; work.factory("expr::func('a0*(x-a1)*(x-a1)+a2',x[-5,5],a0[-0.2],a1[0],a2[3])"); work.factory("Gaussian::g(y[-5,5],func,sigma[0.5])"); // RooPlot* frame = work::g.frame(); // work::func.plotOn( frame ); // frame->Draw(); TH2* h = work::g.createHistogram("x,y"); //data->createHistogram("x,y"); // h->Draw("cont3"); h->SetStats( 0 ); h->SetTitle( "Unkorreliert, aber nicht unabhaengig!" ); h->Draw(); cout << h->GetCorrelationFactor() << endl; gPad->SaveAs( "uncorr_not_indep.pdf" ); // multivariater Gauss // TMatrixDSym cov(2) ; // cov(0,0) = cov(1,1) = 1 ; // cov(1,0) = cov(0,1) = -0.3; // TVectorD s(2); // mu(0) = mu(1) = 0; // RooArgList xvec, muvec; // RooRealVar* x = new RooRealVar( "x", "x", 0, -5, 5 ); // xvec.add( *x ); // RooRealVar* y = new RooRealVar( "y", "y", 0, -5, 5 ); // xvec.add( *y ); // RooRealVar* mu1 = new RooRealVar( "mu1","mu1", 0); // muvec.add( *mu1 ); // RooRealVar* mu2 = new RooRealVar( "mu2","mu2", 0); // muvec.add( *mu2 ); // RooMultiVarGaussian mvg( "mvg", "mvg", xvec, muvec, cov ); // RooDataSet* data = mvg.generate( xvec, 500 ); // TH2* h = data->createHistogram("x,y"); // h->SetStats( 0 ); // h->SetMarkerStyle( 2 ); // // h->SetTitle( "Positive Korrelation" ); // h->SetTitle( "Negative Korrelation" ); // h->Draw(); // cout << h->GetCorrelationFactor() << endl; // //gPad->SaveAs( "positive_corr.pdf" ); // gPad->SaveAs( "negative_corr.pdf" ); // work.import(m,"cov"); // work.import(s,"sig"); // work.factory("MultiVarGaussian::mvg({x[-5,5],y[-5,5]},sig,cov)"); // TH2* h = work::mvg.createHistogram("x,y"); // h->SetStats( 0 ); // h->SetTitle( "Zweidimensionale Gaussverteilung" ); // h->Draw("cont3"); }