#ifndef __CINT__ #include "RooGlobalFunc.h" #endif #include "RooWorkspace.h" #include "RooRealVar.h" #include "RooAbsPdf.h" #include "RooGenericPdf.h" #include "RooArgList.h" #include "RooDataSet.h" #include "RooHist.h" #include "RooDataHist.h" #include "RooHistPdf.h" #include "RooPlot.h" #include "RooDataSet.h" #include "RooGlobalFunc.h" #include "RooGaussian.h" #include "RooConstVar.h" #include "RooTruthModel.h" #include "RooFormulaVar.h" #include "RooRealSumPdf.h" #include "RooPolyVar.h" #include "RooProduct.h" #include "RooFitResult.h" #include "TH1.h" #include "TCanvas.h" #include "TAxis.h" #include "RooStats/HistFactory/PiecewiseInterpolation.h" #include "RooMCStudy.h" #include "RooStats/ModelConfig.h" #include "RooStats/BernsteinCorrection.h" #include "TH1F.h" #include "TPad.h" #include "TLatex.h" #include "TCanvas.h" #include "TString.h" using namespace RooFit; using namespace RooStats; void do_workspace_pdf() { TFile* file_analysis= new TFile("analysis.root"); int x= 38; int min_bin=60; int max_bin=250; RooRealVar y("y","y",min_bin,max_bin); RooWorkspace* w = new RooWorkspace("w"); w->import(y); w->var("y")->setBins(38) ; y.setBins(38); TH1F* signal=(TH1F*)file_analysis->Get("signal"); TH1F* bkg_model_full=(TH1F*)file_analysis->Get("bkg_model_full__y"); TH1F* HighHistForSyst4=(TH1F*)file_analysis->Get("HighHistForSyst4__y"); TH1F* LowHistForSyst4=(TH1F*)file_analysis->Get("LowHistForSyst4__y"); RooDataHist signal_h("signal_h","signal_h",y,Import(*signal)); RooDataHist Bkg_Model_Full_h("Bkg_Model_Full_h","Bkg_Model_Full_h",y,Import(*bkg_model_full)); RooDataHist HighHistForSyst4_h("HighHistForSyst4_h","HighHistForSyst4_h",y,Import(*HighHistForSyst4)); RooDataHist LowHistForSyst4_h("LowHistForSyst4_h","LowHistForSyst4_h",y,Import(*LowHistForSyst4)); RooHistPdf signal_pdf("signal_pdf","signal_pdf",y,signal_h,0); RooHistPdf Bkg_Model_Full_pdf("Bkg_Model_Full_pdf","Bkg_Model_Full_pdf",y,Bkg_Model_Full_h,0); RooHistPdf HighHistForSyst4_pdf("HighHistForSyst4_pdf","HighHistForSyst4_pdf",y,HighHistForSyst4_h,0); RooHistPdf LowHistForSyst4_pdf("LowHistForSyst4_pdf","LowHistForSyst4_pdf",y,LowHistForSyst4_h,0); RooDataHist *data=HighHistForSyst4_pdf.generateBinned(y,2036834); RooRealVar N_data("N_data", "N_data",2036834); RooRealVar n_signal("n_signal", "n_signal",1.8); w->import(N_data); w->import(n_signal); w->import(signal_pdf); w->import(Bkg_Model_Full_pdf); w->factory("SUM::total_model(N_data*Bkg_Model_Full_pdf,n_signal*signal_pdf)"); auto modello=w->pdf("total_model"); //modello finale modello->SetName("modello"); RooStats::ModelConfig model_config("ModelConfig",w); model_config.SetPdf(*modello); model_config.SetParametersOfInterest(*w->var("n_signal")); model_config.SetObservables(*w->var("y")); w->import(model_config); w->import(*data); TString fileName = "model_config_pdf.root"; w->writeToFile(fileName,true); w->Print(); }