{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "# Calculate correlation functions with CCL\n",
    "In this example, we will calculate clustering and lensing correlation functions for an example cosmology."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pylab as plt\n",
    "import pyccl as ccl\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "### Define a cosmology and source number density\n",
    "First, we define a set of cosmological parameters."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "cosmo = ccl.Cosmology(Omega_c=0.27, Omega_b=0.045, h=0.67, sigma8=0.83, n_s=0.96)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "The angular power spectrum is weighted by the source number density as a function of redshift, dN/dz. We define an example here."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "z = np.linspace(0., 3., 200)\n",
    "i_lim = 26. # Limiting i-band magnitude\n",
    "z0 = 0.0417*i_lim - 0.744\n",
    "\n",
    "Ngal = 46. * 100.31 * (i_lim - 25.) # Normalisation, galaxies/arcmin^2\n",
    "pz = 1./(2.*z0) * (z / z0)**2. * np.exp(-z/z0) # Redshift distribution, p(z)\n",
    "dNdz = Ngal * pz # Number density distribution\n",
    "b = 1.5*np.ones(200)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n3Z25rSfpAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f2586be62d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(z, dNdz)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "### Create ClTracer objects\n",
    "CCL manages auto- and cross-spectrum calculations through `ClTracer` objects. For the sake of this example we will define two tracers: one for lensing and one for clustering."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "lens1 = ccl.ClTracerLensing(cosmo, False, z=z, n=dNdz)\n",
    "clu1 = ccl.ClTracerNumberCounts(cosmo, False, False, n=(z,dNdz), bias=(z,b))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "The argument set to `False` in the first statement specifies that we are ignoring intrinsic alignments. For the clustering tracer, we are excluding both RSD and magnification bias with the two `False` statements.\n",
    "If we wanted to include intrinsic alignments, we could have created the `ClTracer` object in the following way:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "bias_ia = -0.01* np.ones(z.size) # Intrinsic alignment bias factor\n",
    "f_red = 0.2 * np.ones(z.size) # Fraction of red galaxies\n",
    "lens1_ia = ccl.ClTracerLensing(cosmo, True, z=z, n=dNdz, bias_ia=bias_ia, f_red=f_red)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "### Obtain angular power spectra\n",
    "Before computing the correlation functions, we need to obtain the angular power spectra of the tracers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "ell = np.arange(2, 100)\n",
    "cls = ccl.angular_cl(cosmo, lens1, lens1, ell)\n",
    "cls_ia = ccl.angular_cl(cosmo, lens1_ia, lens1_ia, ell)\n",
    "cls_clu = ccl.angular_cl(cosmo, clu1, clu1, ell)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f2584af1f10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(ell, cls, 'k-')\n",
    "plt.plot(ell, cls_ia, 'r-')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "### Calculate the correlation functions\n",
    "We can now calculate the correlation functions for the tracers. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true,
    "deletable": true,
    "editable": true
   },
   "outputs": [],
   "source": [
    "theta_deg = np.logspace(-1, np.log10(5.), 20) # Theta is in degrees\n",
    "\n",
    "xi_plus = ccl.correlation(cosmo, ell, cls, theta_deg, corr_type='L+', method='FFTLog')\n",
    "xi_plus_ia = ccl.correlation(cosmo, ell, cls_ia, theta_deg, corr_type='L+', method='FFTLog')\n",
    "xi_minus = ccl.correlation(cosmo, ell, cls, theta_deg, corr_type='L-', method='FFTLog')\n",
    "\n",
    "xi_clu = ccl.correlation(cosmo, ell, cls_clu, theta_deg, corr_type='GG', method='FFTLog')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "deletable": true,
    "editable": true
   },
   "source": [
    "We can then plot the correlations, first for lensing:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false,
    "deletable": true,
    "editable": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nJDXnL7wF62Tn3BCVAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f25849d59d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(theta_deg, xi_plus, label='Lensing +, no IA')\n",
    "plt.plot(theta_deg, xi_minus, label='Lensing -, no IA')\n",
    "plt.plot(theta_deg, xi_plus_ia, label='Lensing +, w/IA')\n",
    "\n",
    "plt.xscale('log')\n",
    "plt.legend(loc='upper right')\n",
    "plt.xlabel(r'$\\theta$ (deg)')\n",
    "plt.ylabel(r'$\\xi (r)$')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "And then for galaxy-galaxy clustering:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f25849cbad0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(theta_deg, xi_clu, label='Clustering')\n",
    "\n",
    "plt.xscale('log')\n",
    "plt.legend(loc='upper right')\n",
    "plt.xlabel(r'$\\theta$ (deg)')\n",
    "plt.ylabel(r'$\\xi (r)$')\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
