from FinalStateAnalysis.MetaData.higgs_tables import cross_section
import json
from json import encoder
encoder.FLOAT_REPR = lambda o: format(o, '.3f')
import sys

if __name__ == "__main__":

    parser = argparse.ArgumentParser()
    parser.add_argument('input', help='Input JSON file')
    parser.add_argument('processes', nargs='+',
                        help='Production processes to include')
    parser.add_argument('--sqrts', type=float, default=7.,
                        help='Collission energy')


    args = parser.parse_args()

    input_file = open(args.input, 'r')
    input = json.load(input_file)

    for datum in ['exp', "+1", "+2", "-1", "-2", "obs"]:
        if datum in input:
            xsection = 0
            for process in args.processes:
                xsection += input[datum]*cross_section(
                    process, input['mass'], args.sqrts)
            input[datum] = xsection

    sys.stdout.write(json.dumps(input, indent=2, sort_keys=True) + '\n')
Ejemplo n.º 2
0
from json import encoder
encoder.FLOAT_REPR = lambda o: format(o, '.3f')
import sys

if __name__ == "__main__":

    parser = argparse.ArgumentParser()
    parser.add_argument('input', help='Input JSON file')
    parser.add_argument('processes',
                        nargs='+',
                        help='Production processes to include')
    parser.add_argument('--sqrts',
                        type=float,
                        default=7.,
                        help='Collission energy')

    args = parser.parse_args()

    input_file = open(args.input, 'r')
    input = json.load(input_file)

    for datum in ['exp', "+1", "+2", "-1", "-2", "obs"]:
        if datum in input:
            xsection = 0
            for process in args.processes:
                xsection += input[datum] * cross_section(
                    process, input['mass'], args.sqrts)
            input[datum] = xsection

    sys.stdout.write(json.dumps(input, indent=2, sort_keys=True) + '\n')
    for syst in card.systs:
        error_object = my_systs[syst[0]]
        error = syst[4][bin][process]
        if error and error != 1:
            if isinstance(error, list):  # up/down format
                error = error[1]
            percent_error = error - 1
            multiplier = 1 + percent_error * error_object
            total_relative_error = total_relative_error * multiplier
    return expected, (total_relative_error)


for mass in range(110, 165, 10):
    card = read_card("combo/comb_leptonic_%i.txt" % mass)

    wh_yield = lumi * cross_section("WH", mass, 7)
    zh_yield = lumi * cross_section("ZH", mass, 7)

    wh_www_yield = wh_yield * branching_ratio("WW", mass)

    wh_wtt_yield = wh_yield * branching_ratio("tautau", mass)

    zh_ztt_yield = zh_yield * branching_ratio("tautau", mass)

    zh_zww_yield = zh_yield * branching_ratio("WW", mass)

    wh_www_yield_leptons = wh_www_yield * cube(w_to_any_lepton)
    wh_wtt_yield_leptons = wh_wtt_yield * w_to_any_lepton
    zh_zww_yield_leptons = zh_zww_yield * square(w_to_any_lepton) * z_to_any_lepton
    zh_ztt_yield_leptons = zh_ztt_yield * z_to_any_lepton