File indexing completed on 2025-12-16 09:16:13
0001 #include "TFile.h"
0002 #include "TH1F.h"
0003 #include "TH2F.h"
0004
0005 #include "RooRealVar.h"
0006 #include "RooGaussian.h"
0007 #include "RooVoigtian.h"
0008 #include "RooDataHist.h"
0009 #include "RooPlot.h"
0010
0011
0012 void calculate_ratios()
0013 {
0014 TFile* Ks_file = TFile::Open("../mass_histograms/data_Kshort_mass.root");
0015 TFile* phi_file = TFile::Open("../mass_histograms/data_phi_mass.root");
0016 TFile* lambda_file = TFile::Open("../mass_histograms/data_lambda_mass.root");
0017
0018 TH1F* Ks_mass = (TH1F*)Ks_file->Get("Kshort_mass");
0019 TH2F* Ks_massvspt = (TH2F*)Ks_file->Get("Kshort_mass_vspt");
0020 TH2F* Ks_massvsntrk = (TH2F*)Ks_file->Get("Kshort_mass_vsntrk");
0021
0022 TH1F* phi_mass = (TH1F*)phi_file->Get("phi_mass");
0023 TH2F* phi_massvspt = (TH2F*)phi_file->Get("phi_mass_vspt");
0024 TH2F* phi_massvsntrk = (TH2F*)phi_file->Get("phi_mass_vsntrk");
0025
0026 TH1F* lambda_mass = (TH1F*)lambda_file->Get("lambda_mass");
0027 TH2F* lambda_massvspt = (TH2F*)lambda_file->Get("lambda_mass_vspt");
0028 TH2F* lambda_massvsntrk = (TH2F*)lambda_file->Get("lambda_mass_vsntrk");
0029
0030
0031
0032 RooRealVar m_ks("m_ks","m",0.4,0.6);
0033
0034 RooRealVar ks_mean("ks_mean","mean",0.5);
0035 RooRealVar ks_width("ks_width","width",0.1,0.,10.);
0036 RooGaussian ks_signal("ks_signal","signal",m_ks,ks_mean,ks_width);
0037
0038 RooRealVar ks_const_coef("ks_a0","a0",100.,0.,1e9);
0039 RooRealVar ks_lin_coef("ks_a1","a1",0.5,-10.,10.);
0040 RooRealVar ks_quad_coef("ks_a2","a2",0.1,-10.,10.);
0041 RooPolynomial ks_bkg("ks_bkg","background",m_ks,RooArgList(ks_const_coef,ks_lin_coef,ks_quad_coef));
0042
0043 RooRealVar ks_nsig("ks_nsig","nsignal",100.,0.,1e9);
0044 RooRealVar ks_nbkg("ks_nbkg","nbkg",100.,0.,1e9);
0045 RooAddPdf ks_massfit("ks_massfit","combined signal and background",RooArgList(ks_bkg,ks_signal),RooArgList(ks_nsig,ks_nbkg));
0046
0047
0048 RooRealVar m_phi("m_phi","m",0.95,1.1);
0049
0050 RooRealVar phi_mean("phi_mean","mean",1.02);
0051 RooRealVar phi_sigma("phi_sigma","sigma",0.1,0.,10.);
0052 RooRealVar phi_width("phi_width","width",0.01,0.,10.);
0053 RooVoigtian phi_signal("phi_signal","signal",m_phi,phi_mean,phi_width,phi_sigma);
0054
0055 RooRealVar phi_const_coef("phi_a0","a0",100.,0.,1e9);
0056 RooRealVar phi_lin_coef("phi_a1","a1",0.5,-10.,10.);
0057 RooRealVar phi_quad_coef("phi_a2","a2",0.1,-10.,10.);
0058 RooPolynomial phi_bkg("phi_bkg","background",m_phi,RooArgList(phi_const_coef,phi_lin_coef,phi_quad_coef));
0059
0060 RooRealVar phi_bkg_frac("ks_bkg_frac","background fraction",0.5,0.,1.);
0061 RooAddPdf phi_massfit("ks_massfit","combined signal and background",RooArgList(phi_bkg,phi_signal),phi_bkg_frac);
0062
0063
0064 RooRealVar m_lambda("m_lambda","m",1.05,1.2);
0065
0066 RooRealVar lambda_mean("lambda_mean","mean",0.5);
0067 RooRealVar lambda_width("lambda_width","width",0.1,0.,10.);
0068 RooGaussian lambda_signal("lambda_signal","signal",m_lambda,lambda_mean,lambda_width);
0069
0070 RooRealVar lambda_const_coef("lambda_a0","a0",100,0.,1e9);
0071 RooRealVar lambda_lin_coef("lambda_a1","a1",0.5,-10.,10.);
0072 RooRealVar lambda_quad_coef("lambda_a2","a2",0.1,-10.,10.);
0073 RooPolynomial lambda_bkg("lambda_bkg","background",m_lambda,RooArgList(lambda_const_coef,lambda_lin_coef,lambda_quad_coef));
0074
0075 RooRealVar lambda_bkg_frac("lambda_bkg_frac","background fraction",0.5,0.,1.);
0076 RooAddPdf lambda_massfit("lambda_massfit","combined signal and background",RooArgList(lambda_bkg,lambda_signal),lambda_bkg_frac);
0077
0078
0079 RooDataHist ks_hist("ks_hist","ks_hist",m_ks,RooFit::Import(*Ks_mass));
0080 RooDataHist phi_hist("phi_hist","phi_hist",m_phi,RooFit::Import(*phi_mass));
0081 RooDataHist lambda_hist("lambda_hist","lambda_hist",m_lambda,RooFit::Import(*lambda_mass));
0082
0083
0084 ks_massfit.fitTo(ks_hist);
0085
0086
0087
0088 RooPlot* ks_plot = m_ks.frame(RooFit::Title("Kshort mass"));
0089 ks_hist.plotOn(ks_plot);
0090 ks_massfit.plotOn(ks_plot);
0091
0092 }