#include #include #include #include #include #include #include using namespace RooFit; TRandom3 *rdm; TH1F* generateSimulation(RooRealVar *y,RooAbsPdf *pdf_fondo,RooAbsPdf *pdfHiggs,int n_fondo,int n_Higgs){ rdm=new TRandom3(); rdm->SetSeed(0); TString name_histo="histo_n"; name_histo+=(int)(rdm->Rndm()*1000000); TH1F *histogram=new TH1F(name_histo.Data(),"histogram",(y->getMax()-y->getMin())/5,y->getMin(),y->getMax()); RooDataSet* simulation=pdf_fondo->generate(*y,n_fondo); RooDataSet* Hsim=pdfHiggs->generate(*y,n_Higgs); for(int i=0;isumEntries();i++)histogram->Fill((simulation->get(i))->getRealValue(y->GetName())); for(int i=0;isumEntries();i++)histogram->Fill((Hsim->get(i))->getRealValue(y->GetName())); n_fondo=simulation->sumEntries(); n_Higgs=Hsim->sumEntries(); delete simulation; delete Hsim; return histogram; } TH1F* generateSimulation(RooRealVar *y,RooAbsPdf *pdf_fondo,RooAbsPdf *pdfHiggs,RooAbsPdf *pdfZ,int n_fondo,int n_Higgs,int n_Z){ rdm=new TRandom3(); rdm->SetSeed(0); TString name_histo="histo_n"; name_histo+=(int)(rdm->Rndm()*1000000); TH1F *histogram=new TH1F(name_histo.Data(),"histogram",(y->getMax()-y->getMin())/5,y->getMin(),y->getMax()); RooDataSet* simulation=pdf_fondo->generate(*y,n_fondo); RooDataSet* Hsim=pdfHiggs->generate(*y,n_Higgs); RooDataSet* Zeta=pdfZ->generate(*y,n_Z); for(int i=0;isumEntries();i++)histogram->Fill((simulation->get(i))->getRealValue(y->GetName())); for(int i=0;isumEntries();i++)histogram->Fill((Hsim->get(i))->getRealValue(y->GetName())); for(int i=0;isumEntries();i++)histogram->Fill((Zeta->get(i))->getRealValue(y->GetName())); n_fondo=simulation->sumEntries(); n_Higgs=Hsim->sumEntries(); n_Z=Zeta->sumEntries(); delete simulation; delete Hsim; delete Zeta; return histogram; }