gov.sns.xal.model.alg
Class Trace3dTracker

java.lang.Object
  |
  +--gov.sns.xal.model.alg.Tracker
        |
        +--gov.sns.xal.model.alg.Trace3dTracker
All Implemented Interfaces:
IAlgorithm, IArchive, java.rmi.Remote

public class Trace3dTracker
extends Tracker

Tracking algorithm for EnvelopeProbe's. The EnvelopeProbe's state, which is a CorrelationMatrix 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 computated 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.

See Also:
EllipsoidalCharge, Theory and Technique of Beam Envelope Simulation

Field Summary
static java.lang.Class 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
 
Fields inherited from class gov.sns.xal.model.alg.Tracker
ATTRTAG_DEBUG, ATTRTAG_TYPE, ATTRTAG_UPDATE, ATTRTAG_VER, CALC_RFGAP_PHASE, NODETAG_ALG, NODETAG_TRACKER, NODETAG_TRAJ, UPDATE_ALWAYS, UPDATE_CUSTOM, UPDATE_ENTRANCE, UPDATE_ENTRANCEANDEXIT, UPDATE_EXIT
 
Constructor Summary
Trace3dTracker()
          Creates a new instance of EnvelopeTracker
 
Method Summary
protected  void advanceState(IProbe ifcProbe, IElement ifcElem, double dblLen)
          Advances the probe state through a subsection of the element with the specified length.
 void doPropagation(IProbe probe, IElement elem)
          Propagates the probe through the element.
 
Methods inherited from class gov.sns.xal.model.alg.Tracker
advanceProbe, getArchive, getDebugMode, getElemPosition, getProbeUpdatePolicy, getStartElementId, getStopElementId, getType, getVersion, initialize, load, propagate, registerProbeType, save, setDebugMode, setElemPosition, setProbeUpdatePolicy, setStartElementId, setStopElementId, unsetStartElementId, unsetStopElementId, useRfGapPhaseCalculation, validElement, validProbe
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

s_strTypeId

public static final java.lang.String s_strTypeId
string type identifier for algorithm

See Also:
Constant Field Values

s_intVersion

public static final int s_intVersion
current algorithm version

See Also:
Constant Field Values

s_clsProbeType

public static final java.lang.Class s_clsProbeType
probe type recognized by this algorithm

Constructor Detail

Trace3dTracker

public Trace3dTracker()
Creates a new instance of EnvelopeTracker

Method Detail

doPropagation

public void doPropagation(IProbe probe,
                          IElement elem)
                   throws ModelException
Propagates the probe through the element.

Specified by:
doPropagation in class Tracker
Parameters:
probe - probe to propagate
elem - element acting on probe
Throws:
ModelException - invalid probe type or error in advancing probe
See Also:
Tracker.advanceProbe(gov.sns.xal.model.IProbe, gov.sns.xal.model.IElement, double), Tracker.validProbe(gov.sns.xal.model.IProbe)

advanceState

protected void advanceState(IProbe ifcProbe,
                            IElement ifcElem,
                            double dblLen)
                     throws ModelException
Advances the probe state through a subsection of the element with the specified length. Applies a space charge kick at the end of the element subsection for any probe having nonzero beam current.

Parameters:
ifcElem - interface to the beam element
ifcProbe - interface to the probe
dblLen - length of element subsection to advance through
Throws:
ModelException - bad element transfer matrix/corrupt probe state