# Which correlation function to use?¶

Corrfunc has a variety of correlation functions to cover a broad range of Science applications. The basic distinction occurs if the input particles are directly
from a simulation or from an observational survey (or equivalently, a simulation that has been processed to look like a survey). For simulation data, referred throughout
as theory, the assumption is that the particle positions are Cartesian, co-moving XYZ. For survey data, referred throughout as mocks, the assumption is that
particle positions are Right Ascension (0 – 360 deg), Declination (-90 – 90 deg) and CZ (speed of light multiplied by the redshift). Depending on the exact
type of data, **and** the desired correlation function you want, the following table should help you figure out which code you should use.

Input Data | Periodic | Particle domain | Desired correlation function | Returns | Python code |
---|---|---|---|---|---|

X, Y, Z | True | Cube (box) | wp(\(r_p\)) | 2-D Projected Correlation | `Corrfunc.theory.wp` |

\(\xi(r)\) | 3-D Real-space Correlation | `Corrfunc.theory.xi` |
|||

X, Y, Z | True or False | Arbitrary | \(\xi(r)\) | Pair-counts in 3-D real-space | `Corrfunc.theory.DD` |

\(\xi(r_p, \pi)\) | Pair-counts in 2-D | `Corrfunc.theory.DDrppi` |
|||

\(\xi(s, \mu)\) | Pair-counts in 2-D | `Corrfunc.theory.DDsmu` |
|||

ra, dec, cz | False | Arbitrary | \(\xi(r_p, \pi)\) | Pair-counts in 2-D | `Corrfunc.mocks.DDrppi_mocks` |

\(\xi(s, \mu)\) | Pair-counts in 2-D | `Corrfunc.mocks.DDsmu_mocks` |
|||

ra, dec | False | Arbitrary | \(\omega(\theta)\) | Pair-counts in angular space | `Corrfunc.mocks.DDtheta_mocks` |

In all cases where only pair-counts are returned (e.g., all of the mocks routines), you will need to compute at least
an additional RR term. Please see `Corrfunc.utils.convert_3d_counts_to_cf`

to
convert 3-D pair-counts (or angular pair counts) into a correlation
function. For 2-D pair-counts, please use `Corrfunc.utils.convert_rp_pi_counts_to_wp`

to convert into a projected correlation function. If you want to compute
the \(\xi(r_p, \pi)\) from the 2-D pair-counts, then simply call
`Corrfunc.utils.convert_3d_counts_to_cf`

with the arrays.

Also, see Using the command-line interface in Corrfunc for a detailed list of the clustering statistics and the various available API interfaces.