Running the scan

The scan can be configured as follows:

>>> nptf.configure_for_scan(f_ary, df_rho_div_f_ary, nexp)

Note

For no PSF correction, simply leave f_ary and df_rho_div_f_ary to their default values.

Note

If no non-Poissonian models are added when configure_for_scan is called, the likelihood will default to a pure Poissonian scan.

From here the scan can be run using:

>>> nptf.perform_scan(run_tag='example_run', nlive, pymultinest_options=None)

Scan options:

Argument Default Purpose
run_tag None

An optional custom label for the folder within work_dir/chains/tag

where the MultiNest output is stored

nlive 100 Number of live sampling points in MultiNest
pymultinest_options None A custom set of MCMC options for pymultinest (see below)

Setting custom MultiNest options

A custom set of MCMC options for pymultinest can be provided to nptfit.NPTF.perform_scan() with the argument pymultinest_options. This should be a dictionary of the form {'option': value ...}. The default options are:

pymultinest_options = {importance_nested_sampling: False,
                       resume: False, verbose: True,
                       make_or_load_psf_corr()sampling_efficiency: model,
                       init_MPI: False, evidence_tolerance: 0.5,
                       const_efficiency_mode: False}

Parallel implementation

MultiNest uses MPI for parallel sampling, which can significantly speed up the NPTF. This can be seamlessly implemented as with NPTFit. For example, to run on 12 CPU cores:

>>> mpirun -np 12 nptf_run.py