Computes effective mass values for a correlation function using different
type of definitions for the effective mass. This function is mainly indented
for internal usage by bootstrap.effectivemass
.
effectivemass.cf(cf, Thalf, type = "solve", nrObs = 1,
replace.inf = TRUE, interval = c(1e-06, 2), weight.factor = NULL,
deltat = 1, tmax = Thalf - 1)
The correlation function either as a vector of length
nrObs*(Thalf+1)
or as an array of dimension NxnrObs*(Thalf+1)
,
where N is the number of observations. N will be averaged over.
Half of the time extent of the lattice
The function to be used to compute the effective mass values.
Possibilities are "acosh", "solve", "log", "temporal", "shifted" and
"weighted". While the first three assume normal cosh behaviour of the
correlation function, "temporal" is desigend to remove an additional
constant stemming from temporal states in two particle correlation
functions. The same for "subtracted" and "weighted", the latter for the case
of two particle energies with the two particle having different energies. In
the latter case only the leading polution is removed by
removeTemporal.cf
and taken into account here.
The number of "observables" included in the correlator
If set to TRUE
, all Inf
values will
be replaced by NA
. This is needed for instance for
bootstrap.effectivemass
.
initial interval for the uniroot
function when
numerically solving for the effective mass.
relative weight for type "weighted" only, see details
time shift for shifted correlation functions
t-value up to which the effectivemass is to be computed
Returns a vector of length Thalf
with the effective mass
values for t-values running from 0 to Thalf-1
A number of types is implemented to compute effective mass values from the correlation function:
"solve": the ratio \(C(t+1) / C(t) = \cosh(-m*(t+1)) / \cosh(-m*t)\) is numerically solved for \(m(t)\).
"acosh": the effective mass is computed from \(m(t)=acosh((C(t-1)+C(t+1)) / (2C(t)))\) Note that this definition is less tolerant against noise.
"log": the effective mass is defined via \(m(t)=\log(C(t) / C(t+1))\) which has artifacts of the periodicity at large t-values.
"temporal": the ratio \([C(t)-C(t+1)] / [C(t-1)-C(t)] = [\cosh(-m*(t))-\cosh(-m*(t+1))] / [\cosh(-m*(t-1))-\cosh(-m(t))]\) is numerically solved for \(m(t)\).
"subtracted": like "temporal", but the differences \(C(t)-C(t+1)\) are
assumed to be taken already at the correlator matrix level using
removeTemporal.cf
and hence the ratio \([C(t+1)] / [C(t)] =
[\cosh(-m*(t))-\cosh(-m*(t+1))] / [\cosh(-m*(t-1))-\cosh(-m(t))]\) is
numerically solved for \(m(t)\).
"weighted": like "subtracted", but now there is an additional weight factor
\(w\) from removeTemporal.cf
to be taken into account, such that
the ratio \([C(t+1)] / [C(t)] = [\cosh(-m*(t))-w*\cosh(-m*(t+1))] /
[\cosh(-m*(t-1))-w*\cosh(-m(t))]\) is numerically solved for \(m(t)\)
with \(w\) as input.
arXiv:1203.6041
# NOT RUN {
data(correlatormatrix)
cfnew <- extractSingleCor.cf(correlatormatrix, id=1)
cfnew <- bootstrap.cf(cfnew, boot.R=99, boot.l=1)
X <- effectivemass.cf(cfnew$cf, Thalf=25, tmax=24)
# }
Run the code above in your browser using DataLab