Getting sweights

Hi,

I am using trying to get the sweights for my data. Following is the code:

    TFile* file1 = new TFile("TMVA_output_splots.root");
    TTree* datatree = (TTree*)(file1->Get("tree"));

    TH1F* data_p_30_bdt = (TH1F*)(file1->Get("p_30_bdt"));
    TH1F* data_p_b_30_bdt = (TH1F*)(file1->Get("p_b_30_bdt"));
    TH1F* data_p_n_30_bdt = (TH1F*)(file1->Get("p_n_30_bdt"));

    RooRealVar BDT_response("BDT_response", "BDT_response",-1,1);
    RooRealVar BDT_response_30("BDT_response_30", "BDT_response_30",-1,1);
    RooRealVar jet_pt("jet_pt", "jet_pt",-1,1);

    RooDataSet data_set("data_set","data_set",RooArgSet(jet_pt,BDT_response),Import(*datatree));

    RooDataHist p_30_bdt("p_30_bdt","p_30_bdt",RooArgList(BDT_response),Import(*data_p_30_bdt));
    RooDataHist p_b_30_bdt("p_b_30_bdt","p_b_30_bdt",RooArgList(BDT_response),Import(*data_p_b_30_bdt));
    RooDataHist p_n_30_bdt("p_n_30_bdt","p_n_30_bdt",RooArgList(BDT_response),Import(*data_p_n_30_bdt));

    RooRealVar yield_b_30("yield_b_30","yield_b_30",100,0,max);
    RooRealVar yield_n_30("yield_n_30","yield_n_30",100,0,max);

    RooHistPdf pdf_b_30("pdf_b_30","",BDT_response,p_b_30_bdt);
    RooHistPdf pdf_n_30("pdf_n_30","",BDT_response,p_n_30_bdt);
  
    RooAddPdf totalPdf_30("totalPdf_30","totalPdf_30",RooArgList(pdf_b_30,pdf_n_30),RooArgList(yield_b_30,yield_n_30));
    totalPdf_30.fitTo(p_30_bdt,Extended());

//There is no error till here.

    RooAbsPdf* kkk = &totalPdf_30;
    RooStats::SPlot* sData = new RooStats::SPlot("sData","An SPlot",data_set,kkk,RooArgList(yield_b_30,yield_n_30));

So, I am unable to get my dataset with s weights.

The error is :

Error in <TDecompLU::DecomposeLUCrout>: matrix is singular
Error in <TDecompLU::DecomposeLUCrout>: matrix is singular
[#0] ERROR:Eval -- SPlot Error: covariance matrix is singular; I can't invert it!

Can’t understand why this is happening even if I change the variables in my dataset.

Thanks!

Hi,

The problem got solved!
The issue was with the branch itself.

Thanks!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.