public class CsZeroCurrentEstimator extends CourantSnyderEstimator
TwissObjserverBase
class providing only public access to the tools for computing the recursion function in the
case of zero beam current.bolDebug, dblConvErr, dblResErr, fmtMatrix, genTransMat, matCurrF, matCurrSigma
Constructor and Description |
---|
CsZeroCurrentEstimator(boolean bolDebug,
TransferMatrixGenerator genTransMat)
Creates a new instance of
ZeroCurrentSolution . |
CsZeroCurrentEstimator(TransferMatrixGenerator genTransMatrix)
Creates a new instance of
ZeroCurrentSolution . |
Modifier and Type | Method and Description |
---|---|
CovarianceMatrix |
computeReconstruction(java.lang.String strRecDevId,
java.util.ArrayList<Measurement> arrData)
Computes the covariance matrix σ of Courant-Snyder parameters
from the given data at the given device location.
|
CovarianceMatrix |
computeReconstruction(java.lang.String strRecDevId,
double dblBnchFreq,
double dblBmCurr,
java.util.ArrayList<Measurement> arrMsmts)
Fulfills the requirement of the base class abstract function.
|
computeConvergenceError, computeObservationMatrix, computeObservationMatrix, computeReconFunction, computeReconSubFunction, computeResidualError, computeZeroCurrReconFunction, getReconConvergenceError, getReconResidualError, getReconstruction, isDebuggingOn, setDebug
public CsZeroCurrentEstimator(TransferMatrixGenerator genTransMatrix)
ZeroCurrentSolution
.genTransMat
- a pre-configured transfer matrix engine used internally.public CsZeroCurrentEstimator(boolean bolDebug, TransferMatrixGenerator genTransMat)
ZeroCurrentSolution
.bolDebug
- output debug information to the console if true
genTransMat
- a pre-configured transfer matrix engine used internally.public CovarianceMatrix computeReconstruction(java.lang.String strRecDevId, java.util.ArrayList<Measurement> arrData) throws ModelException
Computes the covariance matrix σ of Courant-Snyder parameters
from the given data at the given device location. This is a least-squares reconstruction
of the CS parameters using the given data.
This is the set of second-order moments of the beam distribution. Since the
measurement data cannot show coupling between phase planes, the covariance matrix is
block diagonal where the 2×2 blocks correspond to each independent phase plane
(see
). If the measurement data is zero
for any phase plane, then the diagonal block corresponding to that phase plane is also zero.
CorrelationMatrix
The second-order moments are computed from and observation matrix which, in the zero current case, is independent of the initial state of the beam. The observation matrix relates the initial state (described by the second moments) to the observed quantities, in this case the measurement data of RMS beam sizes. For each phase plane: In the case were there are more data points than there are variables (i.e., greater than 3) then the returned solution is the least-squares solution; specifically, the set of moments that hits the most data. In the case where there are less data points than variables (i.e., less than 3) then the returned solution is the minimum norm (or "least energy") solution; specifically, the solution that has the smallest Lebesgue 2-norm. If we have 3 data points for the phase plane then the unique solution is returned.
strRecDevId
- ID of the device where the reconstruction is performedarrData
- measurement data consisting of RMS beam sizesModelException
- error occurred during the transfer matrix computationspublic CovarianceMatrix computeReconstruction(java.lang.String strRecDevId, double dblBnchFreq, double dblBmCurr, java.util.ArrayList<Measurement> arrMsmts) throws ModelException
computeReconstruction(String, ArrayList)
.computeReconstruction
in class CourantSnyderEstimator
strRecDevId
- ID of the device where the reconstruction is performeddblBnchFreq
- bunch arrival frequency - IgnoreddblBmCurr
- beam current - IgnoredarrData
- measurement data consisting of RMS beam sizesModelException
- error occurred during the transfer matrix computations