Class IdealMagSteeringDipole

All Implemented Interfaces:
IElectromagnet, IComponent, IElement
Direct Known Subclasses:
IdealHorMagSteeringDipole, IdealVerMagSteeringDipole

public class IdealMagSteeringDipole extends ThinElectromagnet
Represents the action of an ideal magnetic dipole. These structures are typically used for beam steering.
Author:
Christopher Allen
  • Field Details

    • TYPE

      public static final String TYPE
      the string type identifier for all IdealMagSteeringDipole's
      See Also:
    • PARAM_LEN_EFF

      public static final String PARAM_LEN_EFF
      Tag for the parameter within the XML configuration file
      See Also:
    • PARAM_ORIENT

      public static final String PARAM_ORIENT
      Tag for the parameter within the XML configuration file
      See Also:
    • PARAM_FIELD

      public static final String PARAM_FIELD
      Tag for the parameter within the XML configuration file
      See Also:
  • Constructor Details

    • IdealMagSteeringDipole

      public IdealMagSteeringDipole()
      Default constructor - creates a new uninitialized instance of IdealMagSteeringDipole. Typically used by automatic lattice generation.
    • IdealMagSteeringDipole

      public IdealMagSteeringDipole(String strId)
      Create a new instance of IdealMagSteeringDipole and specify its instance identifier.
      Parameters:
      strId - string instance identifier of element
    • IdealMagSteeringDipole

      public IdealMagSteeringDipole(String strId, double dblLenEff, int enmOrient, double dblFld)
      Creates a new instance of IdealMagSteeringDipole. The action of the kicker is completely unspecified.
      Parameters:
      strId - string identifier of element
      dblFld - field strength (in Tesla)
      enmOrient - dipole orientation (ORIENT_HOR or ORIENT_VER)
      dblLenEff - effective length of dipole magnet
  • Method Details

    • setEffLength

      public void setEffLength(double dblLenEff)
      Set the effective length of the dipole magnet. This value, along with the field strength, determines the action of the dipole.
      Parameters:
      dblLenEff - effective length (in meters)
    • getEffLength

      public double getEffLength()
      Return the effective length of this dipole magnet
      Returns:
      effective length (in meters)
    • setPositionKick

      public void setPositionKick(double dblPosKick)
      Set the position kick of the dipole magnet. This value, along with the field strength, determines the action of the dipole.
      Parameters:
      dblPosKick - change in position going through magnet (in meters)
    • setAngleKick

      public void setAngleKick(double dblAngKick)
      Set the kick angle of the dipole magnet. If this value, or position kick is non-zero. This determines the dipole bend angle.
      Parameters:
      dblAngKick - effective length (in meters)
    • getPositionKick

      public double getPositionKick()
      Return the position kick strength of this dipole magnet
      Returns:
      kick displacement (in meters)
    • getAngleKick

      public double getAngleKick()
      Return the angle kick [rad]
      Returns:
      angle kick (in rad)
    • elapsedTime

      public double elapsedTime(IProbe probe)
      Returns the time taken for the probe to propagate through element.
      Specified by:
      elapsedTime in class ThinElement
      Parameters:
      probe - propagating probe
      Returns:
      the value zero
    • energyGain

      public double energyGain(IProbe probe)
      Return the energy gain for this Element.
      Specified by:
      energyGain in class ThinElement
      Parameters:
      probe - dummy argument
      Returns:
      value of zero
    • transferMap

      protected PhaseMap transferMap(IProbe probe) throws ModelException
      Computes the transfer map for an ideal magnetic dipole.
      Specified by:
      transferMap in class ThinElement
      Parameters:
      probe - probe interface from which we get rest energy and kinetic energy
      Returns:
      7×7 transfer matrix in homogeneous coordinates
      Throws:
      ModelException - bad orientation code
    • print

      public void print(PrintWriter os)
      Dump current state and content to output stream.
      Overrides:
      print in class Element
      Parameters:
      os - output stream object
    • initializeFrom

      public void initializeFrom(LatticeElement element)
      Conversion method to be provided by the user
      Specified by:
      initializeFrom in interface IComponent
      Overrides:
      initializeFrom in class ThinElectromagnet
      Parameters:
      element - the SMF node to convert