*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*
*  CLASS input parameter file  *
*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*

> This example of input file, intended for CLASS beginners, lists all possibilities with detailed comments. 
> You can use a more concise version, in which only the arguments in which you are interested would appear. 
> Only lines containing an equal sign not preceded by a sharp sign "#" are considered by the code. Hence, do not write an equal sign within a comment, the whole line would be interpreted as relevant input.
> Input files must have an extension ".ini".

----------------------------
----> background parameters:
----------------------------

1) Hubble parameter : either 'H0' in km/s/Mpc or 'h' (default: 'h' set to 0.704)

#H0 = 72.
h =0.7

2) photon density: either 'T_cmb' in K or 'Omega_g' or 'omega_g' (default: 'T_cmb' set to 2.726)

T_cmb = 2.726
#Omega_g = 5.050601e-05
#omega_g = 2.47479449e-5

3) baryon density: either 'Omega_b' or 'omega_b' (default: 'omega_b' set to 0.02253)

Omega_b = 0.05
#omega_b = 0.0266691

4) ultra-relativistic species / massless neutrino density: either 'N_eff' or 'Omega_ur' or 'omega_ur' (default: 'N_eff' set to 3.04)

#N_eff = 3.04
N_eff = 3.04
#Omega_ur = 3.4869665e-05
#omega_ur = 1.70861334e-5

5) density of cdm (cold dark matter): 'Omega_cdm' or 'omega_cdm' (default: 'omega_cdm' set to 0.1122)

Omega_cdm = 0.25
#omega_cdm = 0.110616

6) all parameters describing the ncdm sector (i.e. any non-cold dark matter relics, 
   including massive neutrinos, warm dark matter, etc.): 

  -> 'N_ncdm' is the number of distinct species (default: set to 0)

N_ncdm = 0

  -> 'use_ncdm_psd_files' is the list of N_ncdm numbers: 0 means 'phase-space distribution (psd) passed analytically inside the code, in the mnodule background.c, inside the function background_ncdm_distribution()'; 1 means 'psd passed as a file with at list two columns: first for q, second for f_0(q)', where q is p/T_ncdm (default: only zeros)

#use_ncdm_psd_files = 0

  -> if some of the previous values are equal to one, 'ncdm_psd_filenames' is the list of names of psd files (as many as number of ones in previous entry)

ncdm_psd_filenames = psd_FD_single.dat

  -> 'ncdm_psd_parameters' is an optional list of double parameters to describe the analytic distribution function or to modify a p.s.d. passed as a file. It is made available in the routine background_ncdm_distribution.

#ncdm_psd_parameters = Nactive, sin^2_12 ,s23 ,s13 
ncdm_psd_parameters = 0.3 ,0.5, 0.05


The remaining parameters should be entered as a list of N_ncdm numbers separated by commas:

  -> 'Omega_ncdm' or 'omega_ncdm' or 'm_ncdm' in eV (default: all set to zero); 
           with only one of these inputs, CLASS computes the correct value of the mass; 
           if both (Omega_ncdm, m_ncdm) or (omega_ncdm, m_ncdm) are passed, 
           CLASS will renormalise the psd in order to fulfill both conditions.
	   Passing zero in the list of m_ncdm's or Omeg_ncdm's means that for this
           component, this coefficient is not imposed, and its value is inferred 
           from the other one.

m_ncdm = 0.04, 0.04, 0.04
Omega_ncdm = 

  -> 'T_ncdm' is the ncdm temperature in units of photon temperature (default: set to (4/11)^(1/3)) 
	  Note that active massive neutrinos, the recommended default value is 0.715985
          (this value is fudged to account for realistic neutrino decoupling: 
	  gives m/omega equal to 93.14 eV, as in hep-ph/0506164)

#T_ncdm = 0.715985

  -> 'ksi_ncdm' is the ncdm chemical potential in units of its own temperature (default: set to 0) 

ksi_ncdm =

  -> 'deg_ncdm' is the degeneracy parameter multiplying the psd: 1 stands for 'one family', i.e. one particle + anti-particle (default: set to 1.0)

deg_ncdm = 

7) curvature: 'Omega_k' (default: 'Omega_k' set to 0)

Omega_k = 0.

8) cosmological constant / fluid with constant w and sound speed (can be used to model simple dark energy models): enter one parameter out of 'Omega_Lambda' or 'Omega_fld', the other one is inferred by the code in such way that (sum_i Omega_i) equals (1 + Omega_k) (default: 'Omega_fld' set to 0 and 'Omega_Lambda' to (1+Omega_k-Omega_tot))

# Omega_Lambda = 0.7
Omega_fld = 0

9) equation of state parameter (p/rho equal to w0+wa(1-a0/a) ) and sound speed of the fluid (this is the sound speed defined in the frame comoving with the fluid, i.e. obeying to the most sensible physical definition)

w0_fld = -0.9
wa_fld = 0.
cs2_fld = 1

10) scale factor today 'a_today' (arbitrary and irrelevant for most purposes) (default: set to 1)

# a_today = 1.

--------------------------------
----> thermodynamics parameters:
--------------------------------

1) primordial Helium fraction 'YHe', e.g. 0.25; if set to 'BBN' or 'bbn', will be inferred from Big Bang Nucleosynthesis (default: set to 'BBN')

YHe = BBN

2) 'recombination' algorithm set to 'RECFAST' or 'HyRec'

recombination = RECFAST

2) parametrization of reionization: 'reio_parametrization' must be one of 'reio_none' (no reionization), 'reio_camb' (like CAMB: one tanh() step for hydrogen reionization one for second helium reionization), 'reio_bins_tanh' (binned history x_e(z) with tanh() interpolation between input values), 'reio_half_tanh' (like 'reio_camb' excepted that we match the function xe(z) from recombination with only half a tanh(z-z_reio))... (default: set to 'reio_camb')

reio_parametrization = reio_camb

3.a.) if 'reio_parametrization' set to 'reio_camb' or 'reio_half_tanh': enter one of 'z_reio' or 'tau_reio' (default: 'z_reio' set to 10.3), plus 'reionization_exponent', 'reionization_width', 'helium_fullreio_redshift', 'helium_fullreio_width' (default: set to 1.5, 1.5, 3.5, 0.5)

z_reio = 10.
#tau_reio = 0.084522

reionization_exponent = 1.5
reionization_width = 1.5
helium_fullreio_redshift = 3.5
helium_fullreio_width = 0.5

3.b.) if 'reio_parametrization' set to 'reio_bins_tanh': enter number of bins and list of z_i and xe_i defining the free electron density at the center of each bin. Also enter a dimensionless paramater regulating the sharpness of the tanh() steps, independently of the bin width; recommended sharpness is 0.3, smaller values will make steps too sharp, larger values will make the step very progressive but with discontinuity of x_e(z) derivative around z_i values. (default: set to 0, blank, blank, 0.3)

binned_reio_num = 3
binned_reio_z = 8,12,16
binned_reio_xe = 0.8,0.2,0.1
binned_reio_step_sharpness = 0.3

4.a) in order to model energy injection from DM annihilation, specify a parameter 'annihilation' corresponding to the energy fraction absorbed by the gas times the DM cross section divided by the DM mass, (f <sigma*v> / m_cdm), see e.g. 0905.0003, expressed here in units of m^3/s/Kg (default: set to zero)

annihilation = 0.

4.b) you can model simple variations of the above quanity as a function of redhsift. If 'annihilation_variation' is non-zero, the function F(z) defined as (f <sigma*v> / m_cdm)(z) will be a parabola in log-log scale between 'annihilation_zmin' and 'annihilation_zmax', with a curvature given by 'annihilation_variation' (must be negative), and with a maximum in 'annihilation_zmax'; it will be constant outside this range. To take DM halos into account, specify the parameters 'annihilation_f_halo', the amplitude of the halo contribution, and 'annihilation_z_halo', the characteristic redshift of halos (default: no variation, 'annihilation_variation' and 'annihilation_f_halo' set to zero).

annihilation_variation = 0.
annihilation_z = 1000
annihilation_zmax = 2500
annihilation_zmin = 30
annihilation_f_halo= 20
annihilation_z_halo= 8

4.c) You can also state whether you want to use the on-the-spot approximation (default: 'on the spot' is 'yes')

on the spot = yes

5) to model DM decay, specify a parameter 'decay' which is equal to the energy fraction absorbed by the gas divided by the lifetime of the particle, see e.g. 1109.6322, expressed here in 1/s  (default: set to zero)

decay = 0.

----------------------------------------------------
----> define which perturbations should be computed:
----------------------------------------------------

1) list of output spectra requested: 
- 'tCl' for temperature Cls, 
- 'pCl' for polarization Cls, 
- 'lCl' for CMB lensing potential Cls,
- 'dCl' for matter density Cls, 
- 'rCl' for relativistic matter density Cls, 
- 'sCl' for galaxy lensing potential Cls, 
- 'mPk' for total matter power spectrum P(k) infered from gravitational potential,
- 'dTk' (or 'mTk') for density transfer functions for each species, 
- 'vTk' for velocity transfer function for each species. 
By defaut, the code will try to compute the following cross-correlation Cls (if available): temperature-polarisation, temperature-CMB lensing, polarization-CMB lensing, and density-lensing. Other cross-correlations are not computed because they would slow down the code considerably.
Can be left blank if you do not want to evolve cosmological perturbations at all. (default: set to blanck, no perturbation calculation)

output = tCl,pCl,lCl
#output = tCl,pCl,lCl,mPk
#output = mPk,mTk


1b) If rCl required, in addition to density perturbation term do you want to compute redshift-space and Doppler distortions (rsd), lensing (lensing), or gravitational potential terms (gr)? Set the corresponding variable to 'yes' or 'no' (default: all set to 'no')

rCl_rsd = y
rCl_lensing = n
rCl_gr = n

2) if you want an estimate of the non-linear P(k), enter 'halofit' or 'Halofit' or 'HALOFIT' for Halofit, or 'trg' for the Time Renormalization Group method; or 'one-loop' for the one-loop method as implemented in the TRG module; otherwise leave blank (default: blank, no non-linear P(k))

non linear = 

If you select 'trg', set initial condition to 'linear' or 'PT' (for perturbation theory), see arXiv:1106.2607 for the difference (default: set to 'PT') 

non linear ic = PT

3) list of modes ('s' for scalars, 'v' for vectors, 't' for tensors). More than one letter allowed, can be attached or separated by arbitrary characters; letters can be small or capital. (default: set to 's')

modes = s
#modes = s,t

4) relevant only if you ask for 'tCl, lCl' and/or 'pCl, lCl': if you want the spectrum of lensed Cls, enter a word containing the letter 'y' or 'Y' (default: no lensed Cls)

lensing = yes

5) list of initial conditions for scalars ('ad' for adiabatic, 'bi' for baryon isocurvature, 'cdi' for CDM isocurvature, 'nid' for neutrino density isocurvature, 'niv' for neutrino velocity isocurvature). More than one of these allowed, can be attached or separated by arbitrary characters; letters can be small or capital. (default: set to 'ad')

ic = ad
#ic = ad&bi&nid

6) gauge in which calculations are performed: 'sync' or 'synchronous' or 'Synchronous' for synchronous, 'new' or 'newtonian' or 'Newtonian' for Newtonian/longitudinal gauge (default: set to synchronous)

gauge = synchronous

---------------------------------------------
----> define primordial perturbation spectra:
---------------------------------------------

1) primordial spectrum type ('analytic_Pk' for an analytic smooth function with amplitude, tilt, running, etc.; analytic spectra with feature can also be added as a new type;'inflation_V' for a numerical computation of the inflationary primordial spectrum, through a full integration of the perturbation equation, given a parametrization of the potential V(phi), like in astro-ph/0703625; there is also an option 'two scales' in order to specify two amplitudes instead of one amplitude and one tilt, like in the isocurvature mode analysis of the Planck inflation paper (works also for adiabatic mode only; see details below, item 2.c) (default: set to 'analytic_Pk')

P_k_ini type = analytic_Pk

2) parameters related to one of the primordial spectrum types (will only be read if they correspond to the type selected above)

2.a) for type 'analytic_Pk':

2.a.1) pivot scale in Mpc-1 (default: set to 0.002)

k_pivot = 0.05

2.a.2) scalar adiabatic perturbations: curvature power spectrum value at pivot scale, tilt at the same scale, and tilt running (default: set 'A_s' to 2.42e-9, 'n_s' to 0.967, 'alpha_s' to 0)

A_s = 2.3e-9
n_s = 1.
alpha_s = 0.

2.a.3) isocurvature/entropy perturbations: for each mode xx ('xx' being one of 'bi', 'cdi', 'nid', 'niv', corresponding to baryon, cdm, neutrino density and neutrino velocity entropy perturbations), enter the entropy-to-curvature ratio f_xx, tilt n_xx and running alpha_xx, all defined at the pivot scale; e.g. f_cdi of 0.5 means S_cdi/R equal to one half and (S_cdi/R)^2 to 0.25 (default: set each 'f_xx' to 1, 'n_xx' to 1, 'alpha_xx' to 0)

f_bi = 1.
n_bi = 1.5

f_cdi=1.

f_nid=1.
n_nid=2.
alpha_nid= 0.01

etc.

2.a.4) cross-correlation between different adiabatic/entropy mode: for each pair (xx, yy) where 'xx' and 'yy' are one of 'ad', 'bi', 'cdi', 'nid', 'niv', enter the correlation c_xx_yy (parameter between -1 and 1, standing for cosDelta, the cosine of the cross-correlation angle), the tilt n_xx_yy of the function cosDelta(k), and its running alpha_xx_yy, all defined at the pivot scale. So, for a pair of fully correlated (resp. anti-correlated) modes, one should set (c_xx_yy, n_xx_yy, alpha_xx_yy) to (1,0,0) (resp. (-1,0,0) (default: set each 'c_xx_yy' to 0, 'n_xx_yy' to 0, 'alpha_xx_yy' to 0)

c_ad_bi = 0.5
#n_ad_bi = 0.1

c_ad_cdi = -1.

c_bi_nid = 1.
#n_bi_nid = -0.2
#alpha_bi_nid = 0.002

etc.

2.a.5) tensor mode (if any): tensor-to-scalar power spectrum ratio, tilt, running at the pivot scale; if 'n_t' and/or 'alpha_t' is set to 'scc' or 'SCC' isntead of a numerical value, it will be inferred from the self-consistency condition of single field slow-roll inflation: for n_t, -r/8*(2-r/8-n_s); for alpha_t, r/8(r/8+n_s-1) (default: set 'r' to 1, 'n_t' to 'scc', 'alpha_t' to 'scc')

r = 1.
n_t = scc
alpha_t = scc

2.b) for type 'inflation_V':

2.b.1) type of potential

2.b.1) value of scalar field when the pivot scale crossed the hubble radius, 'phi_pivot', in units of Planck mass. Since with 'inflation_V' we only constrain the observable window of the inflaton potential, only variations of phi are relevant, and 'phi_pivot' can be fixed to whatever value without impacting the result (defaut: 'phi_pivot' is zero)

phi_pivot =

2.b.2) type of potential: 'polynomial' for a Taylor expansion of the potential around phi_pivot. Other shapes can easily be defined in primordial module.

potential = polynomial

2.b.3) for 'inflation_V' and 'polynomial': enter either the coefficients 'V_0', 'V_1', 'V_2', 'V_3', 'V_4' of the Taylor expansion (in units of Planck mass to appropriate power), or their ratios 'R_0', 'R_1', 'R_2', 'R_3', 'R_4' that coincide in the slow-roll limit with A_s, epsilon, and higher-order potential-slow-roll parameters (default: 'V_0' set to 1.25e-13, 'V_1' to 1.12e-14, 'V_2' to 6.95e-14, 'V_3' and 'V_4' to zero).

V_0=1.e-13
V_1=-1.e-14
V_2=7.e-14
V_3=
V_4=

#R_0=2.18e-9
#R_1=0.1
#R_2=0.01
#R_3=
#R_4=

2.c) for type 'two_scales' (currently this option works only for scalar modes, and either for pure adiabatic modes or adiabatic + one type of isocurvature):

2.c.1) two wavenumbers 'k1' and 'k2' in 1/Mpc, at which primordial amplitude parameters will be given. The value of 'k_pivot' will not be used in input but quantities at k_pivot will still be calculated and stored in the primordial structure (no default value: compulsory input if 'P_k_ini type' has been set to 'two_scales')

k1=0.002
k2=0.1

2.c.2) two amplitudes 'P_{RR}^1', 'P_{RR}^2' for the adiabatic primordial spectrum (no default value: compulsory input if 'P_k_ini type' has been set to 'two_scales')
 
P_{RR}^1 = 2.3e-9
P_{RR}^2 = 2.3e-9

2.c.3) if one isocurvature mode has been turned on ('ic' set e.g. to 'ad,cdi' or 'ad,nid', etc.), enter values of the isocurvature amplitude 'P_{II}^1', 'P_{II}^2', and cross-correlation amplitude 'P_{RI}^1', '|P_{RI}^2|' (see Planck paper on inflation for details on definitions) 

P_{II}^1 = 1.e-11
P_{II}^2 = 1.e-11
P_{RI}^1 = -1.e-13
|P_{RI}^2| = 1.e-13

2.c.4) set 'special iso' to 'axion' or 'curvaton' for two particular cases: 'axion' means uncorrelated, n_ad equal to n_iso, 'curvaton' means fully anti-correlated with f_iso<0 (in the conventions of the Planck inflation paper this would be called fully correlated), n_iso equal to one; in these two cases, the last three of the four paramneters in 2.c.3 will be over-written give the input for 'P_{II}^1' (defaut: 'special_iso' left blanck, code assumes general case described by four parameters of 2.c.3)

special_iso = 

-------------------------------------
----> define format of final spectra:
-------------------------------------

1) maximum l for CLs:
- 'l_max_scalars' for CMB scalars (temperature, polarization, cmb lensing potential), 
- 'l_max_tensors' for CMB tensors (temperature, polarization)
- 'l_max_lss'     for Large Scale Structure Cls (density, galaxy lensing potential)
Reducing 'l_max_lss' with respect to l_max_scalars reduces the execution time significantly
(default: set 'l_max_scalars' to 2500, 'l_max_tensors' to 500, 'l_max_lss' to 300)

l_max_scalars = 2500
l_max_tensors = 500
#l_max_lss = 600

1b) minimum l for CLs, can be decreased down to zero (default: set 'l_min' to 2)

l_min = 0

1c) normalization of Cls: to output the rescaled quantity [l(l+1)/2pi] C_l set to 'yes' (or leave it blank); to output the unscaled Cls set 'no' (default: set cl_rescale to 'yes')

cl_rescale = yes

2) maximum k in P(k), 'P_k_max_h/Mpc' in units of h/Mpc or 'P_k_max_1/Mpc' in units of 1/Mpc. If scalar Cls are also requested, a minimum value is automatically imposed (the same as in scalar Cls computation) (default: set to 0.1h/Mpc)

P_k_max_h/Mpc = 1.
#P_k_max_1/Mpc = 0.7

3) value(s) 'z_pk' of redshift(s) for P(k,z) output file(s); can be ordered arbitrarily, but must be separated by comas (default: set 'z_pk' to 0)

z_pk = 0
#z_pk = 0., 1.2, 3.5

4) if the code is interfaced with routines that need to interpolate P(k,z) at various values of (k,z), enter 'z_max_pk', the maximum value of z at which such interpolations are needed. (default: set to maximum value in above 'z_pk' input)

#z_max_pk = 10.

6a) if you need Cls for the matter density (option 'dCl', 'rCl'), or for the galaxy lensing potential (option 'sCl'), enter here a description of the selection functions W(z) of each redshift bin; selection can be set to 'gaussian', 'tophat' or 'dirac', then pass a list of N mean redshifts in growing order separated by comas, and 1 or N widths separated by comas. The width stands for one standard deviation of the gaussian (in z space), or for the half-width of the top-hat. Finally, non_diagonal sets the number of cross-correlation spectra that you want to calculate: 0 means only auto-correlation, 1 means only adjacent bins, and number of bins minus one means all correlations (default: set to 'gaussian',1,0.1,0)

selection=gaussian
selection_mean = 1.
selection_width = 0.5
non_diagonal=0

6b) It is possiblke to multiply the window function W(z) by a selection function 'dNdz' (number of objects per redhsift interval). Type the name of the file containing the redshift on the first column and the number of objects on the second column. Set to 'analytic' to use instead the analytic expression from arXiv:1004.4640. Leave blank to use a uniform distribution (default).

dNdz = analytic

6c) If 'dCl' or 'rCl' required, mutiply the density by a constant 'bias' factor (default: 'bias' set to one)

bias = 

7) file name root 'root' for all output files (default: set 'root' to 'output/') (if Cl requested, written to '<root>cl.dat'; if P(k) requested, written to '<root>pk.dat'; plus similar files for scalars, tensors, pairs of initial conditions, etc.; if file with input parameters requested, written to '<root>parameters.ini')

root = output/test_

8) do you want headers at the beginning of each output file (giving precisions on the output units/ format) ? If 'headers' set to something containing the letter 'y' or 'Y', headers written, otherwise not written (default: written)

headers = yes

9) in all output files, do you want columns to be normalized and ordered with the default CLASS definitions or with the CAMB definitions (often idential to the CMBFAST one) ? Set 'format' to either 'class', 'CLASS', 'camb' or 'CAMB' (default: 'class')

format = class

10) if 'bessel file' set to something containing the letters 'y' or 'Y', the code tries to read bessel functions in a file; if the file is absent or not adequate, bessel functions are computed and written in a file. The file name is set by defaut to 'bessels.dat' but can be changed together with precision parameters: just set 'bessel_file_name' to '<name>' either here or in the precision parameter file. (defaut: 'bessel file' set to 'no' and bessel functions are always recomputed)

bessel file = yes

11) Do you want to write a table of background quantitites in a file? This will include H, densities, Omegas, various cosmological distances, sound horizon, etc., as a function of conformal time, proper time, scale factor. File created if 'write background'  set to something containing the letter 'y' or 'Y', file written, otherwise not written (default: not written)

write background = no

12) Do you want to have all input/precision parameters which have been read written in file '<root>parameters.ini', and those not written in file '<root>unused_parameters' ? If 'write parameters' set to something containing the letter 'y' or 'Y', file written, otherwise not written (default: not written)

write parameters = yeap

----------------------------------------------------
----> amount of information sent to standard output:
----------------------------------------------------

Increase integer values to make each module more talkative (default: all set to 0)

background_verbose = 1
thermodynamics_verbose = 1
perturbations_verbose = 1
bessels_verbose = 1
transfer_verbose = 1
primordial_verbose = 1
spectra_verbose = 1
nonlinear_verbose = 1
lensing_verbose = 1
output_verbose = 1
