Class ThinLens

All Implemented Interfaces:
IComponent, IElement

public class ThinLens extends ThinElement
Represents a thin lens abstract modeling element in a particle beam transport/accelerator system.

A zero value for focal length indicates zero focusing strength, or infinite focal length. Positive focal lengths imply focusing while negative values imply defocusing.

Author:
Christopher K. Allen
  • Field Details

  • Constructor Details

    • ThinLens

      public ThinLens(String strId, double dblFx, double dblFy, double dblFz)
      Creates a new instance of ThinLens A zero value for focal length indicates zero focusing strength, or infinite focal length. Positive focal lengths imply focusing while negative values imply defocusing.
      Parameters:
      strId - string identifier of element
      dblFx - focal length in the x phase plane (in meters)
      dblFy - focal length in the y phase plane (in meters)
      dblFz - focal length in the z phase plane (in meters)
    • ThinLens

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

    • setFocalLengthX

      public void setFocalLengthX(double dblFx)
      Set the focal length in the x direction.
      Parameters:
      dblFx - focal length in the x phase plane (in meters)
    • setFocalLengthY

      public void setFocalLengthY(double dblFy)
      Set the focal length in the y direction.
      Parameters:
      dblFy - focal length in the y phase plane (in meters)
    • setFocalLengthZ

      public void setFocalLengthZ(double dblFz)
      Set the focal length in the z direction.
      Parameters:
      dblFz - focal length in the z phase plane (in meters)
    • 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)
      Returns zero for the energy gain imparted to any probe by a thin lens.
      Specified by:
      energyGain in class ThinElement
      Parameters:
      probe - dummy argument
      Returns:
      a value of zero
    • transferMap

      protected PhaseMap transferMap(IProbe probe) throws ModelException
      Compute and return the block-diagonal transfer matrix representing a thin lens in each phase plane.
      Specified by:
      transferMap in class ThinElement
      Parameters:
      probe - dummy argument, no probe parameters are used
      Returns:
      the block diagonal transfer matrix
      Throws:
      ModelException - this should not occur
    • print

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