Exemplo n.º 1
0
def get_paramsets(args, nuisance_paramset):
    """Make the paramsets for generating the Asmimov MC sample and also running
    the MCMC.
    """
    asimov_paramset = []
    llh_paramset = []

    gf_nuisance = [x for x in nuisance_paramset.from_tag(ParamTag.NUISANCE)]
    llh_paramset.extend(gf_nuisance)

    for parm in llh_paramset:
        parm.value = args.__getattribute__(parm.name)

    llh_paramset = ParamSet(llh_paramset)

    if args.data is not DataType.REAL:
        flavor = fr_utils.fr_to_angles(args.injected_ratio)
    else:
        flavor = fr_utils.fr_to_angles([1, 1, 1])

    tag = ParamTag.BESTFIT
    asimov_paramset.extend(gf_nuisance)
    asimov_paramset.extend([
        Param(name='astroFlavorAngle1', value=flavor[0], ranges=[ 0., 1.], std=0.2, tag=tag),
        Param(name='astroFlavorAngle2', value=flavor[1], ranges=[-1., 1.], std=0.2, tag=tag),
    ])
    asimov_paramset = ParamSet(asimov_paramset)

    return asimov_paramset, llh_paramset
Exemplo n.º 2
0
def get_paramsets(args, nuisance_paramset):
    """Make the paramsets for generating the Asmimov MC sample and also running
    the MCMC.
    """
    asimov_paramset = []
    llh_paramset = []

    gf_nuisance = [x for x in nuisance_paramset.from_tag(ParamTag.NUISANCE)]

    llh_paramset.extend(
        [x for x in nuisance_paramset.from_tag(ParamTag.SM_ANGLES)])
    llh_paramset.extend(gf_nuisance)

    for parm in llh_paramset:
        parm.value = args.__getattribute__(parm.name)

    boundaries = fr_utils.SCALE_BOUNDARIES[args.dimension]
    tag = ParamTag.SCALE
    llh_paramset.append(
        Param(
            name='logLam', value=np.mean(boundaries), ranges=boundaries, std=3,
            tex=r'{\rm log}_{10}\left (\Lambda^{-1}' + \
                misc_utils.get_units(args.dimension)+r'\right )',
            tag=tag
        )
    )
    llh_paramset = ParamSet(llh_paramset)

    tag = ParamTag.BESTFIT
    if args.data is not DataType.REAL:
        flavor_angles = fr_utils.fr_to_angles(args.injected_ratio)
    else:
        flavor_angles = fr_utils.fr_to_angles([1, 1, 1])

    asimov_paramset.extend(gf_nuisance)
    asimov_paramset.extend([
        Param(name='astroFlavorAngle1',
              value=flavor_angles[0],
              ranges=[0., 1.],
              std=0.2,
              tag=tag),
        Param(name='astroFlavorAngle2',
              value=flavor_angles[1],
              ranges=[-1., 1.],
              std=0.2,
              tag=tag),
    ])
    asimov_paramset = ParamSet(asimov_paramset)

    return asimov_paramset, llh_paramset
Exemplo n.º 3
0
def get_paramsets(args, nuisance_paramset):
    """Make the paramsets for generating the Asmimov MC sample and also running
    the MCMC.
    """
    asimov_paramset = []
    hypo_paramset = []

    hypo_paramset.extend(
        [x for x in nuisance_paramset.from_tag(ParamTag.SM_ANGLES)]
    )

    for parm in hypo_paramset:
        parm.value = args.__getattribute__(parm.name)

    hypo_paramset = ParamSet(hypo_paramset)

    tag = ParamTag.BESTFIT
    flavor_angles = fr_utils.fr_to_angles(args.source_ratio)

    asimov_paramset.extend([
        Param(name='astroFlavorAngle1', value=flavor_angles[0], ranges=[ 0., 1.], std=0.2, tag=tag),
        Param(name='astroFlavorAngle2', value=flavor_angles[1], ranges=[-1., 1.], std=0.2, tag=tag),
    ])
    asimov_paramset = ParamSet(asimov_paramset)

    return asimov_paramset, hypo_paramset
Exemplo n.º 4
0
def triangle_llh(theta, args, asimov_paramset, llh_paramset):
    """Log likelihood function for a given theta."""
    if len(theta) != len(llh_paramset):
        raise AssertionError(
            'Length of MCMC scan is not the same as the input '
            'params\ntheta={0}\nparamset]{1}'.format(theta, llh_paramset))
    hypo_paramset = asimov_paramset
    for param in llh_paramset.from_tag(ParamTag.NUISANCE):
        hypo_paramset[param.name].value = param.value

    spectral_index = -hypo_paramset['astroDeltaGamma'].value
    # Assigning llh_paramset values from theta happens in this function.
    fr = fr_utils.flux_averaged_BSMu(theta, args, spectral_index, llh_paramset)

    flavor_angles = fr_utils.fr_to_angles(fr)
    # print('flavor_angles', list(map(float, flavor_angles)))
    for idx, param in enumerate(hypo_paramset.from_tag(ParamTag.BESTFIT)):
        param.value = flavor_angles[idx]

    if args.likelihood is Likelihood.GOLEMFIT:
        llh = gf_utils.get_llh(hypo_paramset)
    elif args.likelihood is Likelihood.GF_FREQ:
        llh = gf_utils.get_llh_freq(hypo_paramset)
    return llh