Пример #1
0
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]
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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]