def load(i90CL=False): idir = "datacards" if i90CL: idir="datacards_90" #masses = [50,60,75,90,100,110, 125, 135, 150, 165, 180, 200, 250, 300] masses = [100,110, 125, 135, 150, 165, 180, 200, 250, 300] KFACTOR = 1.218 results = []; for i in range(len(masses)): results.append( getAsymLimits(idir+'/higgsCombineZprime'+str(masses[i])+'.Asymptotic.mH120.root','Zp'+str(masses[i])) ); names = []; l_obs = []; l_m2sig = []; l_m1sig = []; l_exp = []; l_p1sig = []; l_p2sig = []; ctr = 0 for r in results: names.append( "Zp"+str(masses[ctr]) ); l_m2sig.append(math.sqrt(r[1])); l_m1sig.append(math.sqrt(r[2])); l_exp.append (math.sqrt(r[3])); l_p1sig.append(math.sqrt(r[4])); l_p2sig.append(math.sqrt(r[5])); l_obs.append (math.sqrt(r[0])); ctr+=1; gr_mu_exp = makeAGraph( masses, l_exp, 1, 2 ); gr_mu_obs = makeAGraph( masses, l_obs, 1, 1 ); gr_mu_1sigma = makeAFillGraph( masses, l_m1sig, l_p1sig, 0, 3, 1001 ); gr_mu_2sigma = makeAFillGraph( masses, l_m2sig, l_p2sig, 0, 5, 1001 ); return [gr_mu_exp,gr_mu_obs]
def getexp(explo, exphi, xs): x = [] y = [] yup = [] ydn = [] iGDM = 1 iGQ = 0.25 iMDM = 1. for i in range(explo.GetN()): lDMWidth = avtotwidth(2, iGDM, iGQ, explo.GetX()[i], iMDM) lWidth = avtotwidth(2, 0., iGQ, explo.GetX()[i], iMDM) if explo.GetX()[i] < 600.0: continue factor = xs.Eval(explo.GetX()[i]) / (6. / 5.) cury = explo.GetY()[i] curyup = explo.GetY()[i] + explo.GetEYhigh()[i] curydn = explo.GetY()[i] - explo.GetEYlow()[i] cury /= factor curyup /= factor curydn /= factor x.append(explo.GetX()[i]) y.append(math.sqrt((lWidth / lDMWidth) * cury) / 4.) yup.append(math.sqrt((lWidth / lDMWidth) * curyup) / 4.) ydn.append(math.sqrt((lWidth / lDMWidth) * curydn) / 4.) for i in range(exphi.GetN()): lDMWidth = avtotwidth(2, iGDM, iGQ, exphi.GetX()[i], iMDM) lWidth = avtotwidth(2, 0., iGQ, exphi.GetX()[i], iMDM) print(exphi.GetY()[i]) if exphi.GetX()[i] > 3700.: continue factor = xs.Eval(exphi.GetX()[i]) / (6. / 5.) cury = exphi.GetY()[i] curyup = exphi.GetY()[i] + exphi.GetEYhigh()[i] curydn = exphi.GetY()[i] - exphi.GetEYlow()[i] cury /= factor curyup /= factor curydn /= factor x.append(exphi.GetX()[i]) y.append(math.sqrt((lWidth / lDMWidth) * cury) / 4.) yup.append(math.sqrt((lWidth / lDMWidth) * curyup) / 4.) ydn.append(math.sqrt((lWidth / lDMWidth) * curydn) / 4.) exp_gr = makeAGraph(x, y) exp_gr_band = makeAFillGraph(x, ydn, yup) return exp_gr, exp_gr_band
def getexp(explo,exphi,xs): x = []; y = []; yup = []; ydn = []; iGDM=1;iGQ=0.25;iMDM=1.; for i in range( explo.GetN() ): lDMWidth = avtotwidth(2,iGDM,iGQ,explo.GetX()[i],iMDM) lWidth = avtotwidth(2,0. ,iGQ,explo.GetX()[i],iMDM) factor = xs.Eval( explo.GetX()[i] ) / (6./5.); cury = explo.GetY()[i]; curyup = explo.GetY()[i] + explo.GetEYhigh()[i]; curydn = explo.GetY()[i] - explo.GetEYlow()[i]; cury /= factor; curyup /= factor; curydn /= factor; x.append( explo.GetX()[i] ); y.append( math.sqrt((lWidth/lDMWidth)*cury) / 4. ); yup.append( math.sqrt((lWidth/lDMWidth)*curyup) / 4. ); ydn.append( math.sqrt((lWidth/lDMWidth)*curydn) / 4. ); for i in range( exphi.GetN() ): lDMWidth = avtotwidth(2,iGDM,iGQ,exphi.GetX()[i],iMDM) lWidth = avtotwidth(2,0. ,iGQ,exphi.GetX()[i],iMDM) if exphi.GetX()[i] > 3700.: break; factor = xs.Eval( exphi.GetX()[i] ) / (6./5.); cury = exphi.GetY()[i]; curyup = exphi.GetY()[i] + exphi.GetEYhigh()[i]; curydn = exphi.GetY()[i] - exphi.GetEYlow()[i]; cury /= factor; curyup /= factor; curydn /= factor; x.append( exphi.GetX()[i] ); y.append( math.sqrt((lWidth/lDMWidth)*cury) / 4. ); yup.append( math.sqrt((lWidth/lDMWidth)*curyup) / 4. ); ydn.append( math.sqrt((lWidth/lDMWidth)*curydn) / 4. ); exp_gr = makeAGraph( x, y ); exp_gr_band = makeAFillGraph( x, ydn, yup ); return exp_gr, exp_gr_band
def load(i90CL=False): idir = "datacards" if i90CL: idir = "datacards_90" #masses = [50,60,75,90,100,110, 125, 135, 150, 165, 180, 200, 250, 300] masses = [100, 110, 125, 135, 150, 165, 180, 200, 250, 300] KFACTOR = 1.218 results = [] for i in range(len(masses)): results.append( getAsymLimits( idir + '/higgsCombineZprime' + str(masses[i]) + '.Asymptotic.mH120.root', 'Zp' + str(masses[i]))) names = [] l_obs = [] l_m2sig = [] l_m1sig = [] l_exp = [] l_p1sig = [] l_p2sig = [] ctr = 0 for r in results: names.append("Zp" + str(masses[ctr])) l_m2sig.append(math.sqrt(r[1])) l_m1sig.append(math.sqrt(r[2])) l_exp.append(math.sqrt(r[3])) l_p1sig.append(math.sqrt(r[4])) l_p2sig.append(math.sqrt(r[5])) l_obs.append(math.sqrt(r[0])) ctr += 1 gr_mu_exp = makeAGraph(masses, l_exp, 1, 2) gr_mu_obs = makeAGraph(masses, l_obs, 1, 1) gr_mu_1sigma = makeAFillGraph(masses, l_m1sig, l_p1sig, 0, 3, 1001) gr_mu_2sigma = makeAFillGraph(masses, l_m2sig, l_p2sig, 0, 5, 1001) return [gr_mu_exp, gr_mu_obs]