Class EnvelopeBacktracker
- All Implemented Interfaces:
Remote
,IAlgorithm
,IArchive
,IContextAware
Tracking algorithm for 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)
· This class has been un-deprecated. Currently refactoring the
hierarchy structure of the Algorithm base to simplify implementation of
implementation is not supported yet. Considering a modification of the
Tracker class
- Since:
- Feb 4, 2009
- Version:
- 1.0
- Author:
- Christopher K. Allen
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class xal.model.alg.EnvelopeTrackerBase
EnvelopeTrackerBase.EmitGrowthModel, EnvelopeTrackerBase.PhasePlane
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Class<EnvelopeProbe>
probe type recognized by this algorithmstatic final String
string type identifier for algorithmstatic final int
current algorithm versionFields inherited from class xal.model.alg.EnvelopeTrackerBase
ATTR_EMITGROWTH, ATTR_SCHEFF, ATTR_STEPSIZE, ATTR_USEDCBEAM, ATTR_USESPACECHARGE, LABEL_OPTIONS, TBL_LBL_ENVBASETRACKER
Fields inherited from class xal.model.alg.Tracker
ATTRTAG_DEBUG, ATTRTAG_RFGAP_PHASE, ATTRTAG_TYPE, ATTRTAG_UPDATE, ATTRTAG_VER, NODETAG_ALG, NODETAG_TRACKER, TBL_LBL_ALGORITHM, TBL_PRIM_KEY_NAME, UPDATE_ALWAYS, UPDATE_CUSTOM, UPDATE_ENTRANCE, UPDATE_ENTRANCEANDEXIT, UPDATE_EXIT
-
Constructor Summary
ConstructorsModifierConstructorDescriptionCreate a new, uninitializedEnvelopeBacktracker()
algorithm object.protected
EnvelopeBacktracker
(String strType, int intVersion, Class<? extends IProbe> clsProbeType) This method is a protected constructor meant only for building child classes.EnvelopeBacktracker
(EnvelopeBacktracker sourceTracker) Copy constructor for EnvelopeBackTracker -
Method Summary
Modifier and TypeMethodDescriptioncopy()
Create a deep copy of EnvelopeBackTrackervoid
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 ObjectMethods inherited from class xal.model.alg.EnvelopeTrackerBase
compEmitGrowthFunction, compLongFourierTransform, compScheffMatrix, compTransFourierTransform, correctLongSigmaPhaseSpread, correctSigmaPhaseSpread, correctTransFocusingPhaseSpread, correctTransSigmaPhaseSpread, effPhaseSpread, fourierLong1dGaussian, fourierLong1dUniform, fourierLong3dGaussian, fourierLong3dUniform, fourierLongTrace3d, fourierTrans1dGaussian, fourierTrans1dUniform, fourierTrans3dGaussian, fourierTrans3dUniform, fourierTransTrace3d, getEmitGrowthModel, getEmittanceGrowth, getEmittanceGrowthFlag, getSpaceChargeFlag, getStepSize, getUseDCBeam, getUseSpacecharge, load, load, modTransferMatrixForEmitGrowth, phaseSpread, save, setEmitGrowthModel, setEmittanceGrowth, setStepSize, setUseDCBeam, setUseSpacecharge
Methods inherited from class xal.model.alg.Tracker
advanceProbe, getDebugMode, getElemPosition, getProbeType, getProbeUpdatePolicy, getRfGapPhaseCalculation, getStartElementId, getStopElementId, getType, getVersion, initialize, isStopElementIncluded, newFromEditContext, newFromEditContext, newInstance, propagate, registerProbeType, retractProbe, setDebugMode, setElemPosition, setIncludeStopElement, setProbeUpdatePolicy, setRfGapPhaseCalculation, setStartElementId, setStopElementId, unsetStartElementId, unsetStopElementId, validElement, validProbe
-
Field Details
-
TYPE_ID
string type identifier for algorithm -
VERSION
public static final int VERSIONcurrent algorithm version- See Also:
-
CLS_PROBE_TYPE
probe type recognized by this algorithm
-
-
Constructor Details
-
EnvelopeBacktracker
public EnvelopeBacktracker()Create a new, uninitialized
EnvelopeBacktracker()
algorithm object. This is the default constructor to be used when creating objects of this type. -
EnvelopeBacktracker
This method is a protected constructor meant only for building child classes.
- Parameters:
strType
- string type identifier of algorithmintVersion
- version of algorithmclsProbeType
- class object for probe handled by this algorithm.
-
EnvelopeBacktracker
Copy constructor for EnvelopeBackTracker- Parameters:
sourceTracker
- Tracker that is being copied
-
-
Method Details
-
copy
Create a deep copy of EnvelopeBackTracker -
doPropagation
Implementation of Abstract Tracker#doPropagation(IProbe, IElement)
This method is essentially the same implementation as the method
EnvelopeTracker#doPropagation()
, only here the probe object is back-propagated. The method callsTracker.retractProbe()
rather thanTracker.advanceProbe()
, and the implemented methodEnvelopeBacktracker.retractState()
rather thanEnvelopeTracker.advanceState
.- Specified by:
doPropagation
in classTracker
- Parameters:
probe
- probe to propagateelem
- element acting on probe- Throws:
ModelException
- invalid probe type or error in advancing probe- Since:
- Feb 9, 2009
- See Also:
-
retractState
Back-propagates the Defining State of the Probe Object
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 classEnvelopeTracker
.- Parameters:
ifcElem
- interface to the beam elementifcProbe
- interface to the probedblLen
- length of element subsection to retract- Throws:
ModelException
- bad element transfer matrix/corrupt probe state- Since:
- Feb 9, 2009
- See Also:
-