Package xal.model.alg

Class EnvelopeBacktracker

All Implemented Interfaces:
Remote, IAlgorithm, IArchive, IContextAware

public class EnvelopeBacktracker extends EnvelopeTrackerBase

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:
  • Field Details

    • TYPE_ID

      public static final String TYPE_ID
      string type identifier for algorithm
    • VERSION

      public static final int VERSION
      current algorithm version
      See Also:
    • CLS_PROBE_TYPE

      public static final Class<EnvelopeProbe> 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

      protected EnvelopeBacktracker(String strType, int intVersion, Class<? extends IProbe> clsProbeType)

      This method is a protected constructor meant only for building child classes.

      Parameters:
      strType - string type identifier of algorithm
      intVersion - version of algorithm
      clsProbeType - class object for probe handled by this algorithm.
    • EnvelopeBacktracker

      public EnvelopeBacktracker(EnvelopeBacktracker sourceTracker)
      Copy constructor for EnvelopeBackTracker
      Parameters:
      sourceTracker - Tracker that is being copied
  • Method Details

    • copy

      public EnvelopeBacktracker copy()
      Create a deep copy of EnvelopeBackTracker
    • doPropagation

      public void doPropagation(IProbe probe, IElement elem) throws ModelException

      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 calls Tracker.retractProbe() rather than Tracker.advanceProbe(), and the implemented method EnvelopeBacktracker.retractState() rather than EnvelopeTracker.advanceState.

      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
      Since:
      Feb 9, 2009
      See Also:
    • retractState

      protected void retractState(IProbe ifcProbe, IElement ifcElem, double dblLen) throws ModelException

      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 class EnvelopeTracker.

      Parameters:
      ifcElem - interface to the beam element
      ifcProbe - interface to the probe
      dblLen - length of element subsection to retract
      Throws:
      ModelException - bad element transfer matrix/corrupt probe state
      Since:
      Feb 9, 2009
      See Also: