public class EnvelopeBacktracker extends EnvelopeTrackerBase
EnvelopeProbe
objects.
This tracker object is based
The EnvelopeProbe
's
state, which is a CovarianceMatrix
object, is advanced using the linear
dynamics portion of any beamline element (IElement
exposing object) transfer
map. The linear portion is represented as a matrix, thus, the state advance is accomplished
with a transpose conjugation with this matrix.
The effects of space charge are also included in the dynamics calculations. Space charge effects are also represented with a matrix transpose conjugation, however, the matrix is computed using the values of the probe's correlation matrix. The result is a nonlinear effect. The space charge forces are computed using a linear fit to the fields generated by an ellipsoidal charge distribution with the same statistics described in the probe's correlation matrix. The linear fit is weighted by the beam distribution itself, so it is more accurate in regions of higher charged density. For a complete description see the reference below.
NOTES: (CKA)BeamEllipsoid
,
EnvelopeTracker
,
Theory and Technique
of Beam Envelope SimulationEnvelopeTrackerBase.EmitGrowthModel, EnvelopeTrackerBase.PhasePlane
Modifier and Type | Field and Description |
---|---|
static java.lang.Class<EnvelopeProbe> |
s_clsProbeType
probe type recognized by this algorithm
|
static int |
s_intVersion
current algorithm version
|
static java.lang.String |
s_strTypeId
string type identifier for algorithm
|
ATTR_EMITGROWTH, ATTR_SCHEFF, ATTR_STEPSIZE, ATTR_USESPACECHARGE, LABEL_OPTIONS, TBL_LBL_ENVBASETRACKER
ATTRTAG_DEBUG, ATTRTAG_RFGAP_PHASE, ATTRTAG_TYPE, ATTRTAG_UPDATE, ATTRTAG_VER, NODETAG_ALG, NODETAG_TRACKER, TBL_PRIM_KEY_NAME, UPDATE_ALWAYS, UPDATE_CUSTOM, UPDATE_ENTRANCE, UPDATE_ENTRANCEANDEXIT, UPDATE_EXIT
Modifier | Constructor and Description |
---|---|
|
EnvelopeBacktracker()
Create a new, uninitialized
EnvelopeBacktracker()
algorithm object. |
|
EnvelopeBacktracker(EnvelopeBacktracker sourceTracker)
Copy constructor for EnvelopeBackTracker
|
protected |
EnvelopeBacktracker(java.lang.String strType,
int intVersion,
java.lang.Class<? extends IProbe> clsProbeType)
This method is a protected constructor meant only for building
child classes.
|
Modifier and Type | Method and Description |
---|---|
EnvelopeBacktracker |
copy()
Create a deep copy of EnvelopeBackTracker
|
void |
doPropagation(IProbe probe,
IElement elem)
Implementation of Abstract Tracker#doPropagation(IProbe, IElement)
|
protected void |
retractState(IProbe ifcProbe,
IElement ifcElem,
double dblLen)
Back-propagates the Defining State of the Probe Object
|
compEmitGrowthFunction, compLongFourierTransform, compScheffMatrix, compTransFourierTransform, correctLongSigmaPhaseSpread, correctSigmaPhaseSpread, correctTransFocusingPhaseSpread, correctTransSigmaPhaseSpread, effPhaseSpread, fourierLong1dGaussian, fourierLong1dUniform, fourierLong3dGaussian, fourierLong3dUniform, fourierLongTrace3d, fourierTrans1dGaussian, fourierTrans1dUniform, fourierTrans3dGaussian, fourierTrans3dUniform, fourierTransTrace3d, getEmitGrowthModel, getEmittanceGrowthFlag, getSpaceChargeFlag, getStepSize, load, load, modTransferMatrixForDisplError, modTransferMatrixForEmitGrowth, phaseSpread, save, setEmitGrowthModel, setEmittanceGrowth, setStepSize, setUseSpacecharge
advanceProbe, getDebugMode, getElemPosition, getProbeType, getProbeUpdatePolicy, getStartElementId, getStopElementId, getType, getVersion, initialize, isStopElementIncluded, newFromEditContext, newFromEditContext, newInstance, propagate, registerProbeType, retractProbe, setDebugMode, setElemPosition, setIncludeStopElement, setProbeUpdatePolicy, setRfGapPhaseCalculation, setStartElementId, setStopElementId, unsetStartElementId, unsetStopElementId, useRfGapPhaseCalculation, validElement, validProbe
public static final java.lang.String s_strTypeId
public static final int s_intVersion
public static final java.lang.Class<EnvelopeProbe> s_clsProbeType
public EnvelopeBacktracker()
Create a new, uninitialized EnvelopeBacktracker()
algorithm object. This is the default constructor to be used
when creating objects of this type.
protected EnvelopeBacktracker(java.lang.String strType, int intVersion, java.lang.Class<? extends IProbe> clsProbeType)
This method is a protected constructor meant only for building child classes.
strType
- string type identifier of algorithmintVersion
- version of algorithmclsProbeType
- class object for probe handled by this algorithm.public EnvelopeBacktracker(EnvelopeBacktracker sourceTracker)
sourceTracker
- Tracker that is being copiedpublic EnvelopeBacktracker copy()
public void doPropagation(IProbe probe, IElement elem) throws ModelException
This method is essentially the same implementation as the method
EnvelopeTracker#doPropagation()
, only here the probe object
is back-propagated. The method calls Tracker.retractProbe()
rather than Tracker.advanceProbe()
, and the implemented
method EnvelopeBacktracker.retractState()
rather than
EnvelopeTracker.advanceState
.
doPropagation
in class Tracker
probe
- probe to propagateelem
- element acting on probeModelException
- invalid probe type or error in advancing probeTracker.propagate(xal.model.IProbe, xal.model.IElement)
,
EnvelopeTracker.doPropagation(IProbe, IElement)
protected void retractState(IProbe ifcProbe, IElement ifcElem, double dblLen) throws ModelException
This method uses the same basic algorithm as in
EnvelopeTracker#advanceState()
, only the probe object is
back-propagated. The method utilizes all the space charge mechanisms
of the base class EnvelopeTracker
.
ifcElem
- interface to the beam elementifcProbe
- interface to the probedblLen
- length of element subsection to retractModelException
- bad element transfer matrix/corrupt probe stategov.sns.xal.model.alg.EnvelopeTracker#advanceState(gov.sns.xal.model.IProbe, gov.sns.xal.model.IElement, double)