Cosmological Parameter Estimation from CMBR data sets
Estimating cosmological parameters from CMBR data is an important exercise in current cosmological research. The aim is to
find that which theoretical model fits best to the data, which is most commonly done using Markov-Chain Monte Carlo (MCMC)
in which the likelihood (probability of obtaining a data set given a theoretical model) function is sampled at discrete points
in the multi-dimensional parameters space. From the MCMC points probability distribution of parameters are obtained to get
the best fit value of the parameters. We have demonstrated that an another method called Particle Swarm Optimization or PSO
also can be used for this purpose.
-
Jayanti Prasad, Tarun Souradeep (2012)
Phys. Rev. D 85, 123008 (2012) ,[arXiv:1108.5600v2 ]
Cosmological parameter estimation using Particle Swarm Optimization (PSO).
-
Gaurav Goswami, Jayanti Prasad (2013)
Phys. Rev. D 88, 023522 (2013), [arXiv:1303.4747v1 [astro-ph.CO]]
Maximum entropy deconvolution of primordial power spectrum.
-
Jayanti Prasad (2014)
[arXiv:1412.3298 [astro-ph.CO]]
Revisiting Cosmological parameter estimation .
-
Suratna Das, Gaurav Goswami, Jayanti Prasad, Raghavan Rangarajan (2014)
JCAP (2015) 06 001 ,
[arXiv:1412.7093 [astro-ph.CO]]
Revisiting a pre-inflationary radiation era and its effect on the CMB power spectrum .
-
Asif Iqbal, Jayanti Prasad, Tarun Souradeep, Manzoor A. Malik (2015)
JCAP (2015) 06 014 ,
[arXiv:1501.02647 [astro-ph.CO]]
Joint Planck and WMAP Assessment of Low CMB Multipoles.
-
Suratna Das, Gaurav Goswami, Jayanti Prasad, Raghavan Rangarajan (2015)
[ arXiv:1506.04808 [hep-ph]]
Constraints on just enough inflation preceded by a thermal era
- CAMB
Here I do not want to repeat what is already there on the official page of the CAMB. I just want to list few useful tips.
- CAMB is parallelized using OpenMP so do not forget to use the '-fopenmp' flag when compiling the code.
- CAMB uses FORTRAN derived data type to pass variables arround. If you do not know what derived data types are just check
here.
- There are three main derived data type used in CAMB. The first one is 'CAMBparams' and is defined in the program 'modules.f90'.
The 'CAMBparams' type not only contains the values of the cosmological parameters like omegab, omegac, omegav and H0, it contains
few other derived data type (like more boxes inside a box !).
- Some of the derived data type inside 'CAMBparams' are 'InitialPowerParams', 'ReionizationParams', 'RecombinationParams' and 'TransferParams'.
- All the parameters needed to specify the initial power spectrum are "packed" in the type 'InitialPowerParams' which is defined in
the program 'power_tilt.f90' and the parameters needed to characterize the reionization are "packed" in the type 'ReionizationParams' which
is defined in the program 'reionization.f90'. The parameters for recombination are put into 'RecombinationParams' type which is defined in
'recfast.f90'.
- The main program of CAMB is 'inidriver.F90' which first reads the input parameter file and then computes Cls and once everything is done
writes the Cls in the respective output files.
- I do not know why CAMB has facility to use 5 scalar and tesnor power spetra ! although I have never seen more than one being used in any case.
You can check the CAMB input parameter file where only one power spectrum for each type (scalar and tensor) is used.
- If you want to use any other power spectrum than the 'power law' modify the 'ScalarPower(k,in)' function inside the 'power_tilt.f90'.
By the way do not forget to check the minium and maximum values of 'k' which are used by the power law model (and normalization also)
and make sure whatever model you use for the initial power spectrum does have the sensible values for the k values used by CAMB.
- The main "engine" of CAMB is the program 'CAMB_GetResults()' which passes all the parameters through a
a variable of derived data type 'CAMBparams' and puts back the results in 'Cls'
- If you want to use CAMB in your own pipeline try to find out how you can use the program 'CAMB_GetResults'.
- COSMOMC
Read at the official page of COSMOMC about what it is, what it does, and how it does. Here, I just want to share few quick tips.
- COSMOMC has three main parts. The first one passes cosmological parameters to CAMB and gets the 'theoretical Cls'. The
second one passes the theoretical Cls to the WMAP likelihood code which computes the likelihood from the theoretical Cls and
WMAP data. The last part of the COSMOMC finds a new set of cosmological parameters on the basis of the likelihood of the old set
using the Markov Chain Monte Carlo random walk.
-
The step size in for markov chain is controlled by the covariace matrix which need to be given as an input. There are few
example covariance matrices supplied with COSMOMC. If you want to try out a completely new model then you must have a covariance matrix
avaliable for that which can be quite tricky !
-
The final product of COSMOMC is set of samples points in the parameter space with their likelihood values (chain files!).
For computing the 'statistics' from the sample points (chains) in the job of another program called 'getdist' which is also
supplied with COSMOC.
-
One can easily visulaize the results of COSMOMC by plotting the chains files in GNUPLOT, however, if you want publication
quality resultes used getdist or load the chain files in the MATLAB program
'COSMOLGUI' which can plot
one dimensional probability distribution, two dimensional probability distribution (contours) etc.
- Most people who use COSMOMC generally wants to do one of the three things. (1) Modify/change the power spetrum
(Cls) computing module (2) Modify/change the likelihood module or (3) the sampling scheme or Markov Chain Monte Carlo.
In our work (reference here ) we have done (3).
Download a Makefile for cosmoc here .
- Healpix