This page outlines the common usage of HMF*calc*, along with information concerning the various parameters and options included. Much of this
information is a modified rendition of this article, which accompanied the publishing of HMF*calc*.
Read on for information about common usage, the transfer function used, the cosmological parameters and the fitting functions.

HMF*calc* is built to be easy to use. In the simplest example, the only action required on your part is to navigate to the
calculator and click "Calculate!". All required options and parameters are filled with
sensible defaults and ready to go. Nevertheless, most users will want to fiddle with the parameters to tune them to their
particular needs -- be it a survey, simulation or investigation.

The options and parameters in HMF*calc* were chosen to give as much flexibility as possible without making things overly
complicated. They are split over two tabs in the calculator, one for general run parameters and options and the other for
cosmological parameters.

Several of the input fields indicate that they require a comma-separated list. For these parameters, you may
specify as many input values as you wish, and *all possible combinations of all parameters* will be calculated. This
can multiply very quickly, and so we have placed an overall maximum on the number of calculations to ensure our server can
handle it.

The exceptions to this rule are the cosmological parameters. These are treated as 'sets', in which the first entry for each parameter is taken as a set, and labeled with the first given label. If there is a second entry for any parameter, then all second entries are taken, along with the first entries of any parameters that only have one, and the second entry for the label. This carries on, with the number of labels equivalent to the largest number of entries for any parameter.

One more flexible field is the Custom Fitting Function. It takes a string representing an equation in python syntax, in terms
of a variable *x*. The equation forms a desired fitting function, with *x* taking the role of the mass variance.
No other explicit dependence may be included (such as redshift or overdensity), nor may the equation be multi-lined. It must be
a single equation in terms of the single variable *x*. Future versions may include a generalisation of this feature if
sufficient interest is shown.

There is a row of options titled "Optional Extra Plots" on the main tab. These are calculations that are not inherently
performed along with the differential mass function calculation, but which many users may find useful. This is especially
true of the cumulative mass function, *N(>M)*, which is checked by default.

The primary focus of the cosmological parameters tab is the production of the transfer function, which we discuss in the next section.

- Previously computed at high resolution by CAMB and included as a default option.
- Previously computed
*by the user*either with CAMB or saved in the same format as CAMB, and uploaded to HMF*calc* - Computed on-the-fly with arbitrary cosmological parameters.

This is the default option. It is selected by choosing a popular cosmology from the "Transfer Function" drop-down list. Parameters of that cosmology that affect that transfer function in any way are internally set and made non-modifiable so that no confusion arises. Parameters that are relevant to the cosmology and prescribed in the relevant paper, but which do not affect the transfer function, are set by default to their proper values but are still modifiable.

This option does not allow the automatic generation of HMF's for several cosmologies, except for in the transfer-independent parameters, as only one default may be chosen at a time. However, you may use the "Add Extra Plots" feature after generating a HMF to add different default cosmologies.

As mentioned, each of the default cosmologies is a high-resolution transfer function from CAMB. In each case, all parameters of the run
(and there are many) were the same, except for the cosmological parameters. The following table shows the values for each of the cosmologies, where
each set of parameters was taken from a corresponding paper, linked from the heading. Note that the n_{s} and σ_{8} are not used
to calculate the transfer function within CAMB, but we list their values here for completeness.

Parameter | Planck | WMAP9 | WMAP7 | WMAP5 | GiggleZ | WMAP3 | WMAP1 | Millennium |
---|---|---|---|---|---|---|---|---|

Ω_{Λ} |
0.6817 | 0.7181 | 0.728 | 0.723 | 0.726 | 0.732 | 0.710 | 0.750 |

Ω_{c} |
0.2678 | 0.236 | 0.226 | 0.231 | 0.228 | 0.224 | 0.243 | 0.205 |

Ω_{b} |
0.049 | 0.0461 | 0.0455 | 0.0459 | 0.0456 | 0.044 | 0.047 | 0.045 |

n_{s} |
0.9619 | 0.9646 | 0.967 | 0.962 | 0.960 | 0.99 | 0.947 | 1 |

H_{0} |
67.04 | 69.7 | 0.704 | 0.702 | 0.705 | 0.704 | 0.72 | 0.73 |

σ_{8} |
0.8347 | 0.817 | 0.81 | 0.817 | 0.812 | 0.776 | 0.9 | 0.9 |

Parameter | Value | Parameter | Value | Parameter | Value |
---|---|---|---|---|---|

Cl's | Scalar | get_transfer | TRUE | accurate_reionization | TRUE |

Do lensing | FALSE | do_nonlinear | Linear | re_ionization_frac | -1 |

do_tensor_neutrinos | TRUE | Scalar l_max | 2000 | RECFAST_fudge | 1.14 |

initial_ratio | 1 | Scalar k*eta_max | 4000 | RECFAST_fudge_He | 0.86 |

Do_late_rad_truncation | TRUE | Use Physical Parameters | FALSE | RECFAST_Heswitch | 6 |

reionization | True | cs2_lam | 0 | RECFAST_Hswitch | TRUE |

high_accuracy_default | 1 | temp_cmb | 2.725 | Initial scalar Perturbation Mode | Adiabatic |

helium_fraction | 0.24 | vector_mode | 0 | l_accuracy_boost | 1 |

massless_neutrinos | 3.04 | COBE_normalize | FALSE | l_sample_boost | 2.725 |

massive_neutrinos | 0 | CMB_outputscale | 1 | massive_nu_approx | 1 |

nu_mass_eigenstates | 1 | transfer_high_precision | TRUE | Lensing Method | Curved Correlation Funtion |

nu_mass_degeneracies | 0 | Transfer_kmax | 2000 | accurate_polarization | TRUE |

nu_mass_fractions | 1 | transfer_k_per_logint | 100 | accurate_BB | FALSE |

scalar_amp | 1 | accuracy_boost | 1 |

To select this option, choose "Custom Transfer" from the "Transfer Function" drop-down list and then upload a file using the "Upload Transfer Function"
tool. The user must be careful using this option. There is no way for HMF*calc* to know what cosmology the uploaded transfer function was
calculated with. The user must therefore be careful to set the correct corresponding parameters. Note that only parameters that affect both transfer
and the mass function explicitly (see cosmological parameter table) need to be set accurately. Parameters affecting only the transfer function will not
be used within HMF*calc*, and parameters used only in HMF*calc* will not be at odds with the transfer function. However, for later reference
it is still better to set every parameter properly, as the parameters are written to file which may later be read.
The file uploaded in this manner should be in the same format as a transfer function produced by CAMB. That is, it should consist of one column of *k/h*
values, followed by 6 columns of transfer function values. The last column should be the total transfer function.

This option is selected if a custom transfer function is chosen, but no file is uploaded. In this case the user may choose a calculator to use. Currently only two options are available - CAMB and the Eisenstein-Hu transfer function (which is calculated using the cosmolopy package).

If CAMB is chosen as the calculator, HMF*calc* only offers the cosmological parameters
as input parameters to CAMB. All other parameters are taken as the defaults from the backend hmf package (listed in the camb parameters table).
This is both to save computation time (the defaults are the most efficient to achieve requisite accuracy at high mass, see the linked article),
and to avoid unnecessary clutter in the options.

We have discussed already that the options and parameters of HMF*calc* are split across two categories: run parameters and cosmological parameters.
We here show two tables which outline the function of each parameter.

We first have the run parameters. In this table, the "Mult?" column specifies whether the given parameter accepts multiple entries (separated by commas).

Secondly we have the cosmological parameters. The "Affects" column specifies whether the parameter affects the transfer function (T), the HMF (H) or both (B).

One of the features of HMF*calc* is its wide array of fitting functions from the literature. We aim to include any fit from the published literature
that we find, and encourage you to contact us if you know of a fit which we have not included.

With such a list of available fits, it is perhaps useful to provide some short commentary on how to best choose among them for a specific purpose. We note that each fitting function is a fit to the distribution of halo masses found in a simulation (or set of simulations) with a particular cosmology, and using a particular halo-finder. Thus differences between fits can naturally arise from these choices, along with the evolution of resolution and size with time. Given these considerations, we give a few suggestions for choosing a fitting function:

- Prefer functions measured at a similar cosmology to the one you employ
- Generally choose a later function over an earlier one
- If you are using a wide range of cosmologies, or want to remain as general as possible, prefer a function fitted over several cosmologies
- Generally, for observational purposes, choose an SO fit, but for halo-model calculations choose an FOF fit.

To help weigh these considerations, we here provide the list of references for all fitting functions found in HMF*calc*:

- Press, Schechter, 1974
- Sheth, Mo, Tormen, 2001
- Jenkins et. al. 2001
- Reed et. al., 2003
- Warren et. al., 2006
- Peacock, 2007
- Reed et. al., 2007
- Tinker et. al., 2008
- Crocce et. al., 2010
- Courtin et. al., 2010
- Bhattacharya et. al., 2011
- Angulo et. al., 2012
- Watson et. al., 2012
- Behroozi, Weschler, Conroy, 2013

Tweets by @hmfcalc

Don't have or like Twitter? Send us an email, or raise a github issue.