Exemplo n.º 1
0
def gtlike_flux_dict(like,
                     name,
                     emin=None,
                     emax=None,
                     flux_units='erg',
                     energy_units='MeV',
                     errors=True,
                     include_prefactor=False,
                     prefactor_energy=None):
    """ Note, emin, emax, and prefactor_energy must be in MeV """

    if emin is None and emax is None:
        emin, emax = get_full_energy_range(like)

    cef = lambda e: units.convert(e, 'MeV', flux_units)
    ce = lambda e: units.convert(e, 'MeV', energy_units)
    f = dict(flux=like.flux(name, emin=emin, emax=emax),
             flux_units='ph/cm^2/s',
             eflux=cef(like.energyFlux(name, emin=emin, emax=emax)),
             eflux_units='%s/cm^2/s' % flux_units,
             emin=ce(emin),
             emax=ce(emax),
             energy_units=energy_units)

    if errors:
        try:
            # incase the errors were not calculated
            f['flux_err'] = like.fluxError(name, emin=emin, emax=emax)
            f['eflux_err'] = cef(
                like.energyFluxError(name, emin=emin, emax=emax))
        except Exception, ex:
            print 'ERROR calculating flux error: ', ex
            traceback.print_exc(file=sys.stdout)
            f['flux_err'] = -1
            f['eflux_err'] = -1
Exemplo n.º 2
0
def gtlike_flux_dict(like,name, emin=None,emax=None,flux_units='erg', energy_units='MeV',
                     errors=True, include_prefactor=False, prefactor_energy=None):
    """ Note, emin, emax, and prefactor_energy must be in MeV """

    if emin is None and emax is None: 
        emin, emax = get_full_energy_range(like)

    cef=lambda e: units.convert(e,'MeV',flux_units)
    ce=lambda e: units.convert(e,'MeV',energy_units)
    f=dict(flux=like.flux(name,emin=emin,emax=emax),
           flux_units='ph/cm^2/s',
           eflux=cef(like.energyFlux(name,emin=emin,emax=emax)),
           eflux_units='%s/cm^2/s' % flux_units,
           emin=ce(emin),
           emax=ce(emax),
           energy_units=energy_units)

    if errors:
        try:
            # incase the errors were not calculated
            f['flux_err']=like.fluxError(name,emin=emin,emax=emax)
            f['eflux_err']=cef(like.energyFluxError(name,emin=emin,emax=emax))
        except Exception, ex:
            print 'ERROR calculating flux error: ', ex
            traceback.print_exc(file=sys.stdout)
            f['flux_err']=-1
            f['eflux_err']=-1
Exemplo n.º 3
0
def energy_dict(emin, emax, energy_units='MeV'):
    ce = lambda e: units.convert(e, 'MeV', energy_units)
    return dict(emin=ce(emin),
                emax=ce(emax),
                emiddle=ce(np.sqrt(emin * emax)),
                energy_units=energy_units)
Exemplo n.º 4
0
            # incase the errors were not calculated
            f['flux_err'] = like.fluxError(name, emin=emin, emax=emax)
            f['eflux_err'] = cef(
                like.energyFluxError(name, emin=emin, emax=emax))
        except Exception, ex:
            print 'ERROR calculating flux error: ', ex
            traceback.print_exc(file=sys.stdout)
            f['flux_err'] = -1
            f['eflux_err'] = -1

    if include_prefactor:
        assert prefactor_energy is not None
        source = get_gtlike_source(like, name)
        #        source = like.logLike.getSource(name)
        spectrum = source.spectrum()
        cp = lambda e: units.convert(e, '1/MeV', '1/%s' % flux_units)
        f['prefactor'] = cp(
            SpectrumPlotter.get_dnde_mev(spectrum, prefactor_energy))
        f['prefactor_units'] = 'ph/cm^2/s/%s' % flux_units
        f['prefactor_energy'] = ce(prefactor_energy)
    return tolist(f)


def energy_dict(emin, emax, energy_units='MeV'):
    ce = lambda e: units.convert(e, 'MeV', energy_units)
    return dict(emin=ce(emin),
                emax=ce(emax),
                emiddle=ce(np.sqrt(emin * emax)),
                energy_units=energy_units)

Exemplo n.º 5
0
def energy_dict(emin, emax, energy_units='MeV'):
    ce=lambda e: units.convert(e,'MeV',energy_units)
    return dict(emin=ce(emin),
                emax=ce(emax),
                emiddle=ce(np.sqrt(emin*emax)),
                energy_units=energy_units)
Exemplo n.º 6
0
        try:
            # incase the errors were not calculated
            f['flux_err']=like.fluxError(name,emin=emin,emax=emax)
            f['eflux_err']=cef(like.energyFluxError(name,emin=emin,emax=emax))
        except Exception, ex:
            print 'ERROR calculating flux error: ', ex
            traceback.print_exc(file=sys.stdout)
            f['flux_err']=-1
            f['eflux_err']=-1

    if include_prefactor:
        assert prefactor_energy is not None
        source = get_gtlike_source(like,name)
#        source = like.logLike.getSource(name)
        spectrum = source.spectrum()
        cp = lambda e: units.convert(e,'1/MeV','1/%s' % flux_units)
        f['prefactor'] = cp(SpectrumPlotter.get_dnde_mev(spectrum,prefactor_energy))
        f['prefactor_units'] = 'ph/cm^2/s/%s' % flux_units
        f['prefactor_energy'] = ce(prefactor_energy)
    return tolist(f)

def energy_dict(emin, emax, energy_units='MeV'):
    ce=lambda e: units.convert(e,'MeV',energy_units)
    return dict(emin=ce(emin),
                emax=ce(emax),
                emiddle=ce(np.sqrt(emin*emax)),
                energy_units=energy_units)

def gtlike_ts_dict(like, name, verbosity=True):
    return dict(
        reoptimize=like.Ts(name,reoptimize=True, verbosity=verbosity),