Class IdealDrift

All Implemented Interfaces:
IComponent, IElement
Direct Known Subclasses:
IdealRfCavityDrift

public class IdealDrift extends ThickElement

Represents a drift space in a particle beam transport/accelerator system.

NOTE

This class has been modified to accommodate PMQs by acting as quadrupoles with diminishing fields when placed next to a PMQ element. I'm not sure this is the best implementation as it is tightly coupled with several other elements.

Author:
Christopher Allen
  • Field Details

  • Constructor Details

    • IdealDrift

      protected IdealDrift(String strType, String strId, double dblLen)
      Constructor for subclasses of IdealDrift.
      Parameters:
      strType - string type identifier of the child class
      strId - string identifier of the child object
      dblLen - length of the new drift object
      Since:
      Jan 22, 2015 by Christopher K. Allen
    • IdealDrift

      public IdealDrift(String strId, double dblLen)
      Creates a new instance of IdealDrift
      Parameters:
      strId - string identifier for the element
      dblLen - length of the drift
    • IdealDrift

      public IdealDrift()
      JavaBean constructor - creates a new uninitialized instance of IdealDrift BE CAREFUL
  • Method Details

    • getKDrift

      public double getKDrift()
      I guess this is the strength of the adjacent PMQ quadrupole magnet if it exists.
      Returns:
      adjacent PMQ magnet strength ?
      Since:
      Apr 19, 2011
    • prepareFringe

      public void prepareFringe()
      I think this method looks for PMQ magnets next to this drift then stores them as a private static class.
      Since:
      Apr 19, 2011
    • elapsedTime

      public double elapsedTime(IProbe probe, double dblLen)
      Returns the time taken for the probe to drift through part of the element.
      Specified by:
      elapsedTime in interface IElement
      Specified by:
      elapsedTime in class ThickElement
      Parameters:
      probe - propagating probe
      dblLen - length of subsection to propagate through meters
      Returns:
      the elapsed time through sectionUnits: seconds
    • energyGain

      public double energyGain(IProbe probe, double dblLen)
      Return the energy gain imparted to a probe object.
      Specified by:
      energyGain in interface IElement
      Specified by:
      energyGain in class ThickElement
      Parameters:
      dblLen - dummy argument
      probe - dummy argument
      Returns:
      returns a zero value
    • transferMap

      public PhaseMap transferMap(IProbe probe, double dblLen) throws ModelException
      Computes the partial transfer map for an ideal drift space. Computes the transfer map for a drift of length dblLen.
      Specified by:
      transferMap in interface IElement
      Specified by:
      transferMap in class ThickElement
      Parameters:
      dblLen - length of drift
      probe - requires rest and kinetic energy from probe
      Returns:
      transfer map of an ideal drift space for this probe
      Throws:
      ModelException - should not be thrown
      See Also: