Significance estimations
ProfileLikelihood Calculator (roostats)
nominal case / no systematics:
using the entire mass range 7-14
x2 = 0.213796 +/- 0.0881078 x23 = 0.148275 +/- 0.0576889
the significance of this is 6.3 sigma
modified case i: restrict fit range
truncating the range to 8-14
x2 = 0.185549 +/- 0.0896092 x23 = 0.126762 +/- 0.064579
the significance goes down to 5.4 sigma
modified case ii: discard events
performing the nominal fit to a sub-set of the data (to inflate stat errors)
plan: generate about 10**6 pseudo-experiments with either no systematics or latest evaluations (15% for X23 and 10% for X2)
Force x2 = 1, x3 = 1
- RooFitResult: minimized FCN value: -79598.1, estimated distance to minimum: 0.000187477
covariance matrix quality: Full, accurate covariance matrixConstant Parameter Value
- ——————– ————
mscale_hi 1.0000e+00 mscale_pp 1.0000e+00
- npow 2.3000e+00
- x2 1.0000e+00 x3 1.0000e+00
Floating Parameter InitialValue FinalValue +/- Error GblCorr.
- ——————– ———— ————————– ——–
alpha 1.1178e+00 1.0872e+00 +/- 1.16e-01 <none>bkg_a1_pp 3.6390e-01 2.9483e-01 +/- 8.27e-02 <none> bkg_a2_pp -4.3799e-01 -5.8112e-01 +/- 9.17e-02 <none>
- decay_hi 6.0756e+00 6.5805e+00 +/- 7.83e-01 <none>
f2 1.1883e-01 1.6712e-01 +/- 2.62e-02 <none> f3 2.4369e-02 7.1444e-02 +/- 2.42e-02 <none>mean_hi 9.4552e+00 9.4555e+00 +/- 4.18e-03 <none> mean_pp 9.4457e+00 9.4512e+00 +/- 1.12e-02 <none> nbkg_hi 1.1670e+04 1.1546e+04 +/- 1.44e+02 <none> nbkg_pp 3.3735e+02 3.8035e+02 +/- 2.32e+01 <none>
nsig1_hi 1.3177e+03 1.3158e+03 +/- 7.35e+01 <none> nsig1_pp 8.8229e+01 1.0544e+02 +/- 1.29e+01 <none>
sigma1 7.9382e-02 7.9284e-02 +/- 4.38e-03 <none>
- turnOn_hi 7.8960e+00 7.7720e+00 +/- 1.89e-01 <none>
- width_hi 2.2974e+00 2.2925e+00 +/- 2.56e-01 <none>
chi2/ndf = (74.997 + 71.282)/125 = 1.170 chi2 prob = 0.0938 min nll = -79598.11763910
the delta of S is : 20.1263 the delta of ndof is : 2 the C.L. is : 1 the significance level is : 6.01342 (one side)
the C.L. is : 1, the significance level is : 6.01342 sigma (one side)
based on nominal fit results
from individual fits:
PbPb
- N_{2S+3S}/N_{1S} 0.155 +/- 0.038
- N_{2S}/N_{1S} 0.127 +/- 0.027
- pp
- N_{2S+3S}/N_{1S} 0.879 +/- 0.17 N_{2S}/N_{1S} 0.496 +/- 0.12
- pp-PbPb
- N_{2S+3S}/N_{1S} 0.724 +/- 0.17 N_{2S}/N_{1S} 0.369 +/- 0.12
pp-PbPb: #sigmas away from zero [note this assumes gaussian errors] 0.72/0.17 = 4.3 0.37/0.12 = 3.1
- maximum significance allowed by pp data alone (assume full suppression in PbPb):
- 0.879/0.17=5.2 0.496/0.12=4.1
from simultaneous fit:
x23 = 0.147 +/- 0.048
x2 = 0.214 +/- 0.069
x3 = 0.059 +/- 0.060
#sigmas away from unit [note however ratio of gaussian pdf’s is not gaussian!]
(1 - 0.147) / 0.048 ~ 18
(1 - 0.214) / 0.069 ~14
# #Guillermo Breto Rangel UPC xsection vs root(s) # import math from ROOT import TCanvas, TGraph, TGraphErrors, TF1, TLegend from ROOT import gROOT from math import pow from array import array gROOT.Reset() c1 = TCanvas( 'c1', 'A parameter as funtion of \sqrt{s}', 400, 400, 700, 500 ) #c1.SetFillColor( 42 ) #c1.SetGrid() #n = 3 lumi = 134000 p_T = array( 'd',[0.1, 0.3, 0.5, 0.7, 0.9, 1.1, 1.5] ) yields_dpT = array( 'd',[3062,2989,6050, 2426, 1687] ) dsigma_dy = array( 'd',[20539./lumi,7251./lumi,3062./lumi,2989./lumi,3191./lumi, 2426./lumi, 1734./lumi] ) err_x = array( 'd',[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.3]) err_y = array('d',[167./lumi, 70./lumi, 56./lumi, 56./lumi, 59./lumi, 50./lumi, 42./lumi]) def cross_section(eff, lumi, weighted_jpsi_yield): xsection = weighted_jpsi_yield/(eff*lumi) return xsection lumi = 134/math.pow(10,-3) eff_list = [1, 0.98, 0.95, 0.90, 0.85, 0.80] weighted_jpsi_yield = round(sum(dsigma_dy),4)*lumi for i in range(len(eff_list)): eff = eff_list[i] print "The value of the cross section for "+ eff*100+"% efficiency is "+ str(round(cross_section(eff,lumi,weighted_jpsi_yield),3))+ "mb" print "the total cross ssection is", round(sum(dsigma_dy),4) print dsigma_dy n = len(p_T) gr_dsigma_pT = TGraphErrors(7) for i in range(7): gr_dsigma_pT.SetPoint(i,p_T[i],dsigma_dy[i]/(2.0*math.pi*0.2*p_T[i])) print p_T[i] print dsigma_dy[i]/(0.2*p_T[i]) gr_dsigma_pT.SetPointError(i, 0.1, err_y[i]) if (i == n - 1): gr_dsigma_pT.SetPoint(i,p_T[i],dsigma_dy[i]/(2.0*math.pi*0.6*p_T[i])) gr_dsigma_pT.SetPointError(i, 0.3, err_y[i]) gr = TGraphErrors(7) for i in range(7): gr.SetPoint(i,p_T[i],dsigma_dy[i]) gr.SetPointError(i, 0.1, err_y[i]) if (i == n - 1): gr.SetPoint(i,p_T[i],dsigma_dy[i]/(0.6*p_T[i])) gr.SetPointError(i, 0.3, err_y[i]) #gr = TGraphErrors( 7, p_T, dsigma_dy, err_x, err_y ) #gr.SetLineColor( 2 ) gr.SetLineWidth( 1 ) gr_dsigma_pT.SetLineWidth( 1 ) gr_dsigma_pT.SetMarkerColor(6) gr.SetMarkerColor( 4 ) gr.SetMarkerStyle( 21 ) gr_dsigma_pT.SetMarkerStyle( 24 ) gr.SetTitle( 'p_{T} Spectra' ) gr_dsigma_pT.SetTitle( 'UPC J/#Psi, p_{T} Spectra L = 134 #mub^{-1}' ) gr.GetXaxis().SetTitle( 'p_{T} GeV/c' ) gr_dsigma_pT.GetXaxis().SetTitle( 'p_{T} GeV/c ' ) gr.GetXaxis().SetRangeUser(0, 2) #c1.SetLogx() gr.GetYaxis().SetTitle( '#frac{d#sigma}{dy} (#mub)' ) gr_dsigma_pT.GetYaxis().SetTitle( 'mb or mb/(GeVc^{-1})^{2}' ) gr.GetYaxis().SetTitleOffset(1.2) gr.GetYaxis().SetRangeUser(0, 10) gr_dsigma_pT.GetYaxis().SetRangeUser(-10, 2) gr_dsigma_pT.Draw('AP') gr.Draw("psame") #gr_dsigma_pT.Draw('same') c1.SetLogy() leg = TLegend(0.53,0.63,0.85,0.85) leg.SetBorderSize(0) leg.SetFillColor(0) leg.SetTextSize(0.03) leg.AddEntry(gr,"#frac{d#sigma}{dy}","P") leg.AddEntry(gr_dsigma_pT,"#frac{d#sigma}{2#pip_{T}dydp_{T}}","P") leg.AddEntry(gr, "the total #sigma = "+ str(round(sum(dsigma_dy),4))+" mb") leg.Draw('same') # TCanvas.Update() draws the frame, after which one can change it c1.Update() #c1.GetFrame().SetFillColor(0) #c1.GetFrame().SetBorderSize( 12 ) #c1.Modified() #c1.Update() c1.Print('UPC_pt_graphlog.png') c1.Print('UPC_pt_graphlog.pdf')