mypow.PhoIndex.max = 3 # add ancillary parameter for NH, so we can work in nice logarithmic units from sherpa.models.parameter import Parameter lognH = Parameter(modelname='myabs', name='logNH', val=22, min=20, max=24) myabs.nH = 10**(lognH - 22) # define prior parameters = [lognH, mypow.norm, mypow.PhoIndex] priors = [ # jeffreys prior for nH -- is uniform in lognH bxa.create_uniform_prior_for(lognH), # jeffreys prior for scale variable bxa.create_jeffreys_prior_for(mypow.norm), # custom gaussian prior function for photon index bxa.create_gaussian_prior_for(mypow.PhoIndex, 1.9, 0.15), # and possibly many more ] prior = bxa.create_prior_function(priors=priors) # send it off! bxa.nested_run( prior=prior, parameters=parameters, outputfiles_basename=outputfiles_basename, verbose=True, # show a bit of progress resume=True, # MultiNest supports resuming a crashed/aborted run ) exit()
-8, 3) srcnh = Parameter('src', 'nh', numpy.log10(sphere.nh.val) + 22, 20, 26, 20, 26) galnh = galabso.nH.val sphere.norm = 10**srclevel sphere2.norm = 10**srclevel2 sphere.nh = 10**(srcnh - 22) sphere2.nh = 10**(srcnh - 22) galabso.nH = 10**(galnh - 22) priors = [] parameters = [srclevel, sphere.phoindex, srcnh] import bxa.sherpa as bxa priors += [bxa.create_uniform_prior_for(srclevel)] priors += [bxa.create_gaussian_prior_for(sphere.phoindex, 1.95, 0.15)] priors += [bxa.create_uniform_prior_for(srcnh)] if id2: priors += [bxa.create_uniform_prior_for(srclevel2)] parameters.append(srclevel2) priors += [bxa.create_uniform_prior_for(sphere2.phoindex)] parameters.append(sphere2.phoindex) if id2: otherids = (id2, ) else: otherids = tuple() if redshift_uncertain: priors.append(limited_0_10) parameters.append(redshift) priorfunction = bxa.create_prior_function(priors=priors) assert not numpy.isnan(
srclevel2 = Parameter('src2', 'level', numpy.log10(sphere2.norm.val), -8, 3, -8, 3) srcnh = Parameter('src', 'nh', numpy.log10(sphere.nh.val)+22, 20, 26, 20, 26) galnh = galabso.nH.val sphere.norm = 10**srclevel sphere2.norm = 10**srclevel2 sphere.nh = 10**(srcnh - 22) sphere2.nh = 10**(srcnh - 22) galabso.nH = 10**(galnh - 22) priors = [] parameters = [srclevel, sphere.phoindex, srcnh] import bxa.sherpa as bxa priors += [bxa.create_uniform_prior_for(srclevel)] priors += [bxa.create_gaussian_prior_for(sphere.phoindex, 1.95, 0.15)] priors += [bxa.create_uniform_prior_for(srcnh)] if id2: priors += [bxa.create_uniform_prior_for(srclevel2)] parameters.append(srclevel2) priors += [bxa.create_uniform_prior_for(sphere2.phoindex)] parameters.append(sphere2.phoindex) if id2: otherids = (id2,) else: otherids = tuple() if redshift_uncertain: priors.append(limited_0_10) parameters.append(redshift) priorfunction = bxa.create_prior_function(priors = priors) assert not numpy.isnan(calc_stat(id)), 'NaN on calc_stat, probably a bad RMF/ARF file for PC'
torus.redshift = redshift scat.redshift = redshift scat.phoindex = torus.phoindex scat.ecut = torus.ecut scat.theta_inc = torus.theta_inc scat.torsigma = torus.torsigma scat.ctkcover = torus.ctkcover softscatnorm = Parameter('src', 'softscatnorm', -2, -7, -1, -7, -1) scat.norm = 10**(srclevel + softscatnorm) print('creating priors') priors = [] parameters = [srclevel, torus.phoindex, srcnh, softscatnorm] priors += [bxa.create_uniform_prior_for(srclevel)] priors += [bxa.create_gaussian_prior_for(torus.phoindex, 1.95, 0.15)] priors += [bxa.create_uniform_prior_for(srcnh)] priors += [bxa.create_uniform_prior_for(softscatnorm)] # # apec with L(2-10keV) = 1e42 erg/s # z norm 10keV norm 2keV # 0.1 40e-6 150e-6 # 0.5 2e-6 6e-6 # 1 0.7e-6 2e-6 # 3 0.15e-6 0.5e-6 # ================================ # z --> 0.5e-6/ z**2 2e-6/z**2 # if os.environ.get('WITHAPEC', '1') == '1': model = model + xsapec.apec
mypow.PhoIndex.min = 1 mypow.PhoIndex.max = 3 # add ancillary parameter for NH, so we can work in nice logarithmic units from sherpa.models.parameter import Parameter lognH = Parameter(modelname='myabs', name='logNH', val=22, min=20, max=24) myabs.nH = 10**(lognH - 22) # define prior parameters = [lognH, mypow.norm, mypow.PhoIndex] priors = [ # jeffreys prior for nH -- is uniform in lognH bxa.create_uniform_prior_for(lognH), # jeffreys prior for scale variable bxa.create_jeffreys_prior_for(mypow.norm), # custom gaussian prior function for photon index bxa.create_gaussian_prior_for(mypow.PhoIndex, 1.9, 0.15), # and possibly many more ] prior = bxa.create_prior_function(priors=priors) # send it off! bxa.nested_run(prior = prior, parameters = parameters, outputfiles_basename = outputfiles_basename, verbose=True, # show a bit of progress resume=True, # MultiNest supports resuming a crashed/aborted run ) exit()
# creating ancillary parameters for logarithmic treatment print('creating prior functions...') from sherpa.models.parameter import Parameter srclevel = Parameter('src', 'level', numpy.log10(src.norm.val), -8, 2, -8, 2) srcnh = Parameter('src', 'nh', numpy.log10(abso.nH.val)+22, 19, 24, 19, 24) galnh = Parameter('gal', 'nh', numpy.log10(galabso.nH.val)+22, 19, 24, 19, 24) src.norm = 10**srclevel abso.nH = 10**(srcnh - 22) priors = [] parameters = [srclevel, src.PhoIndex, srcnh, src.redshift, bkg_model.pars[0]] import bxa.sherpa as bxa priors += [bxa.create_uniform_prior_for(srclevel)] priors += [bxa.create_gaussian_prior_for(src.PhoIndex, 1.95, 0.15)] priors += [bxa.create_uniform_prior_for(srcnh)] priors += [bxa.create_uniform_prior_for(src.redshift)] # galnh priors += [bxa.create_uniform_prior_for(bkg_model.pars[0])] otherids = () if id2: parameters.append(bkg_model2.pars[0]) priors += [bxa.create_uniform_prior_for(bkg_model2.pars[0])] otherids = (id2,) priorfunction = bxa.create_prior_function(priors = priors) print('running BXA ...') bxa.nested_run(id, otherids=otherids, prior=priorfunction, parameters = parameters, resume = True, verbose=True, outputfiles_basename = 'wabs_noz_',
srcnh = Parameter('src', 'nh', numpy.log10(abso.nH.val) + 22, 19, 24, 19, 24) galnh = Parameter('gal', 'nh', numpy.log10(galabso.nH.val) + 22, 19, 24, 19, 24) src.norm = 10**srclevel abso.nH = 10**(srcnh - 22) priors = [] parameters = [ srclevel, src.PhoIndex, srcnh, src.redshift, bkg_model.pars[0] ] import bxa.sherpa as bxa priors += [bxa.create_uniform_prior_for(srclevel)] priors += [bxa.create_gaussian_prior_for(src.PhoIndex, 1.95, 0.15)] priors += [bxa.create_uniform_prior_for(srcnh)] priors += [bxa.create_gaussian_prior_for(src.redshift, 0.3, 0.05)] # redshift uncertainty priors += [bxa.create_uniform_prior_for(bkg_model.pars[0])] otherids = () if id2: parameters.append(bkg_model2.pars[0]) priors += [bxa.create_uniform_prior_for(bkg_model2.pars[0])] otherids = (id2, ) priorfunction = bxa.create_prior_function(priors=priors) print('running BXA ...') solver = bxa.BXASolver(id, otherids=otherids,