# computeDisc: computes a disconnected correlation function from loops In hadron: Analysis Framework for Monte Carlo Simulation Data in Physics

## Description

The dimension of `cf\$cf` and `cf\$icf` must be `dim(Time, S, N)`, where `Time` is the time extent, `S` is the number of samples and `N` the number of measurements (gauges). `cf2` is the same, but needed only for cross-correlators.

## Usage

 ```1 2 3 4``` ```computeDisc(cf, cf2, real = TRUE, real2 = TRUE, smeared = FALSE, smeared2 = FALSE, subtract.vev = TRUE, subtract.vev2 = TRUE, subtract.equal = TRUE, use.samples, use.samples2, type = "cosh", verbose = FALSE) ```

## Arguments

 `cf` loop data as produced by `readcmidisc` or `readbinarydisc`. `cf2` second set of loop data as produced by `readcmidisc` or `readbinarydisc`. This is needed for cross-correlators `real` use the real part `cf\$cf`, if set to `TRUE`, otherwise the imaginary part `cf\$icf`. `real2` use the real part `cf2\$cf`, if set to `TRUE`, otherwise the imaginary part `cf2\$icf`. `smeared` use the loops instead of the local ones for `cf`. `smeared2` use the loops instead of the local ones for `cf2`. `subtract.vev` subtract a vacuum expectation value. It will be estimated as mean over all samples, gauges and times available. `subtract.vev2` subtract a vacuum expectation value for the second set of loops. It will be estimated as mean over all samples, gauges and times available. `subtract.equal` subtract contributions of products computed on identical samples. This will introduce a bias, if set to FALSE for missing cf2 or if cf and cf2 are computed on the same set of random sources. `use.samples` If set to an integer, only the specified number of samples will be used for `cf`, instead of all samples. `use.samples2` Same like `use.samples`, but for `cf2`. `type` The correlation function can either be symmetric or anti-symmetric in time. Anti-symmetric is of course only possible for cross-correlators. In this case with `type="cosh"` it is assumed to be symmetric, anti-symmetric otherwise. `verbose` Print some debug output, like the VEVs of the loops.

## Details

If `subtract.vev=TRUE` the vev is estimated as the mean over all gauges, samples and times available and subtracted from the original loop data. (Same for `subtrac.vev2`.

The correlation is computed such as to avoid correlation between equal samples, unless `nrSamples` is equal to 1.

`cf` and `cf2` must agree in `Time`, number of gauges and number of samples. Matching of gauges is assumed. If this is not the case results are wrong.

## Value

Returns an object of type `cf` derived from a `list` with elements `cf`, an array of dimension `dim(N, Time)`, where `N` is the number of samples and `Time` the time extent, integers `Time` for the time extent, `nrStypes` and `nrObs` for the available smearing types and operators, and finally `nrSamples`, the number of samples used to generate the correlation function `cf`.

## Author(s)

Carsten Urbach, curbach@gmx.de

`readcmidisc`, `readbinarydisc`, `bootstrap.cf`, `add.cf`, `c.cf`
 ```1 2 3``` ```data(loopdata) Cpi0v4 <- computeDisc(cf=loopdata, real=TRUE, subtract.vev=TRUE) Cpi0v4 <- bootstrap.cf(Cpi0v4, boot.R=99, boot.l=1, seed=14556) ```