Class AbstractBending

All Implemented Interfaces:
Cloneable, ISimpleElement, AbstractUpdateableElement, IApplyableElement
Direct Known Subclasses:
RBending, SBending

public abstract class AbstractBending extends AbstractCalibratedMagnet
Bending magnet has three dynamical values, the values that are changed as current changes. These are energy, dipole field, quadrupole field. These values are combined, for this reason is setting these values to bending magnet synchronized.
Author:
igor@scictrl.com
  • Field Details

    • radius

      protected double radius
      Bending radius.
    • quadrupoleStrength

      protected double quadrupoleStrength
      Quadruple strength
    • PR_QUADRUPOLE_STRENGTH

      public static final int PR_QUADRUPOLE_STRENGTH
      Constant PR_QUADRUPOLE_STRENGTH=8
      See Also:
    • PR_RADIUS

      public static final int PR_RADIUS
      Constant PR_RADIUS=9
      See Also:
    • PR_DFIELD

      public static final int PR_DFIELD
      Constant PR_DFIELD=10
      See Also:
    • PR_ENERGY

      public static final int PR_ENERGY
      Constant PR_ENERGY=11
      See Also:
  • Constructor Details

    • AbstractBending

      public AbstractBending(String name)
      Constructs AbstractBending with specified name and default parameter's values.
      Parameters:
      name - a String the name of abstract bending
    • AbstractBending

      public AbstractBending(String name, boolean virtual, double position, double relpos, String relFrom, double length, String ps, String calibrationEntry, double quadrupoleStrength, double radius, double dipoleField, double energy)
      Constructs the AbstractBending with specified parameters.
      Parameters:
      name - a String object
      virtual - a boolean
      position - a double
      relpos - a double
      relFrom - a String object
      length - a double
      ps - a String object
      calibrationEntry - a String object
      quadrupoleStrength - a double
      radius - a double
      dipoleField - a double
      energy - a double
  • Method Details

    • applyField

      public int applyField() throws IllegalStateException
      This method transforms magnetic properties to current and sends it to PowerSupply
      Returns:
      int indicate if method succeded
      Throws:
      IllegalStateException - if any.
    • clone

      public Object clone()
      Returns the clone of this element. Returns not initialized clone of this element. All data is copied to the clone. Returns not initialized clone of this element. All data is copied to the clone.

      clone.

      clone.

      Specified by:
      clone in interface ISimpleElement
      Overrides:
      clone in class AbstractTransferElement
      Returns:
      a Object the clone of this element.
      See Also:
    • getCalculator

      public IBendingCalculatorModel getCalculator()
      This method return IBendingCalculatorModel.
      Returns:
      a IBendingCalculatorModel object
      See Also:
    • getDipoleField

      public double getDipoleField()
      This method return dipole field strength
      Returns:
      a double
    • getEnergy

      public double getEnergy()
      This method return energy, which is specified by dipole magnetic strength.
      Returns:
      a double
    • getMaxEnergy

      public double getMaxEnergy() throws ControlSystemException
      This method return miximal energy that can be safely exceeded by this magnet.
      Returns:
      a double
      Throws:
      ControlSystemException - if any.
    • getMinEnergy

      public double getMinEnergy() throws ControlSystemException
      This method return minimal energy that can be exceeded by this magnet.
      Returns:
      a double
      Throws:
      ControlSystemException - if any.
    • getQuadrupoleStrength

      public double getQuadrupoleStrength()
      This method return quadruploe strength.
      Returns:
      a double
    • getRadius

      public double getRadius()
      This method return radius, which is specified by dipole magnetic strength.
      Returns:
      a double
    • newMatrix

      public TransferMatrix newMatrix()
      This method return transfer matrix of drift with the same length as this element. This method return transfer matrix, calculated with current length, quadrupole strength and radius.
      Overrides:
      newMatrix in class AbstractTransferElement
      Returns:
      a TransferMatrix object
      See Also:
    • newMatrix

      public TransferMatrix newMatrix(double length)
      This method return transfer matrix of drift with the specified length. This method return transfer matrix, calculated with current quadrupole strength, radius and as parameter specified length.
      Overrides:
      newMatrix in class AbstractTransferElement
      Parameters:
      length - a double
      Returns:
      a TransferMatrix object
      See Also:
    • setCurrent

      public void setCurrent(double value)
      This method sets current on this element. This method sets current.
      Overrides:
      setCurrent in class AbstractCalibratedMagnet
      Parameters:
      value - a double
    • setDipoleField

      public void setDipoleField(double value)
      This method sets dipole field.
      Parameters:
      value - a double
    • setEnergy

      public void setEnergy(double value)
      This method sets energy.
      Parameters:
      value - a double
    • setQuadrupoleStrength

      public void setQuadrupoleStrength(double value)
      This method sets quadrupole strength.
      Parameters:
      value - a double
    • setRadius

      public void setRadius(double value) throws IllegalStateException
      This method sets radius.
      Parameters:
      value - a double
      Throws:
      IllegalStateException - if any.
    • setWith

      public void setWith(Object[] par) throws IllegalStateException
      Sets parameters values of this element to those in parameter array. As parameter must be used such array as for dynamical construction of new instance of this class. Current values are overriden for each not null object in array.

      setWith.

      setWith.

      setWith.

      setWith.

      setWith.

      Overrides:
      setWith in class AbstractCalibratedMagnet
      Parameters:
      par - an array of Object objects
      Throws:
      IllegalStateException - if element is initialized and inside DataBush.
      See Also:
    • toString

      public String toString()
      Returns the string representation of this element. Returns string describing this element. String is formated in input-file code. Returns a String that represents the value of this object.

      toString.

      toString.

      toString.

      toString.

      Specified by:
      toString in interface ISimpleElement
      Overrides:
      toString in class AbstractCalibratedMagnet
      See Also:
    • update

      public int update() throws IllegalStateException, DataBushPackedException
      Reads value from associated element or Abean and calculates it's new values. Metod reads data from other databush elements or from remote devices represented with Abean. Metod also checks isDataInvalidated() on depending databush elements, if value has changed. Return value is identification code of error. Note! Update is performed only if virtual flag is set to false. Note! All update methods are synchronized, so only one update is called at time. For update od group of elements call update on appropriate element-list or DataBush. This method reads current from PowerSupply and transform it to magnetic properties.
      Returns:
      a int the return code indicating success
      Throws:
      IllegalStateException - thrown if status of DataBush equals DB_EMPTY
      DataBushPackedException - contains all exception thrown or caught during updating element