Class AbstractBending
java.lang.Object
org.scictrl.mp.orbitcorrect.model.optics.AbstractDataBushElement
org.scictrl.mp.orbitcorrect.model.optics.AbstractOpticalElement
org.scictrl.mp.orbitcorrect.model.optics.AbstractTransferElement
org.scictrl.mp.orbitcorrect.model.optics.AbstractMagnetElement
org.scictrl.mp.orbitcorrect.model.optics.AbstractCalibratedMagnet
org.scictrl.mp.orbitcorrect.model.optics.AbstractBending
- All Implemented Interfaces:
Cloneable
,ISimpleElement
,AbstractUpdateableElement
,IApplyableElement
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 Summary
Modifier and TypeFieldDescriptionstatic final int
ConstantPR_DFIELD=10
static final int
ConstantPR_ENERGY=11
static final int
ConstantPR_QUADRUPOLE_STRENGTH=8
static final int
ConstantPR_RADIUS=9
protected double
Quadruple strengthprotected double
Bending radius.Fields inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractCalibratedMagnet
calibrationEntry, current, dataInvalidated, PR_CALIBRATION_ENTRY
Fields inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractMagnetElement
PR_POWER_SUPPLY, psH
Fields inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractTransferElement
length, matrices, matrix, PR_LENGTH
Fields inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractOpticalElement
PR_POSITION, PR_REL_FROM, PR_REL_POSITION
Fields inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractDataBushElement
lastActionResult, owner, PR_ELEMENT_NAME, PR_VIRTUAL
-
Constructor Summary
ConstructorDescriptionAbstractBending
(String name) ConstructsAbstractBending
with specified name and default parameter's values.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 theAbstractBending
with specified parameters. -
Method Summary
Modifier and TypeMethodDescriptionint
This method transforms magnetic properties to current and sends it toPowerSupply
clone()
Returns the clone of this element.This method returnIBendingCalculatorModel
.double
This method return dipole field strengthdouble
This method return energy, which is specified by dipole magnetic strength.double
This method return miximal energy that can be safely exceeded by this magnet.double
This method return minimal energy that can be exceeded by this magnet.double
This method return quadruploe strength.double
This method return radius, which is specified by dipole magnetic strength.This method return transfer matrix of drift with the same length as this element.newMatrix
(double length) This method return transfer matrix of drift with the specified length.void
setCurrent
(double value) This method sets current on this element.void
setDipoleField
(double value) This method sets dipole field.void
setEnergy
(double value) This method sets energy.void
setQuadrupoleStrength
(double value) This method sets quadrupole strength.void
setRadius
(double value) This method sets radius.void
Sets parameters values of this element to those in parameter array.toString()
Returns the string representation of this element.int
update()
Reads value from associated element or Abean and calculates it's new values.Methods inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractCalibratedMagnet
getCalibrationEntry, getCurrent, invalidateData, isDataInvalidated, updateMatrices
Methods inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractMagnetElement
getPowerSupply, getPS
Methods inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractTransferElement
getAlpha1, getAlpha2, getBeta1, getBeta2, getDispersion1, getDispersion2, getLength, getMatrix, getQ1, getQ2, setLength
Methods inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractOpticalElement
getAlpha, getBeta, getDispersion, getIndex, getPosition, getQ, getRelFrom, getRelPosition, setPosition, setRelFrom, setRelPosition
Methods inherited from class org.scictrl.mp.orbitcorrect.model.optics.AbstractDataBushElement
descriptor, elType, equals, getLastActionResult, getName, getOwner, getVirtual, hashCode, isInitialized, isVirtual, setVirtual, throwISE
-
Field Details
-
radius
protected double radiusBending radius. -
quadrupoleStrength
protected double quadrupoleStrengthQuadruple strength -
PR_QUADRUPOLE_STRENGTH
public static final int PR_QUADRUPOLE_STRENGTHConstantPR_QUADRUPOLE_STRENGTH=8
- See Also:
-
PR_RADIUS
public static final int PR_RADIUSConstantPR_RADIUS=9
- See Also:
-
PR_DFIELD
public static final int PR_DFIELDConstantPR_DFIELD=10
- See Also:
-
PR_ENERGY
public static final int PR_ENERGYConstantPR_ENERGY=11
- See Also:
-
-
Constructor Details
-
AbstractBending
ConstructsAbstractBending
with specified name and default parameter's values.- Parameters:
name
- aString
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 theAbstractBending
with specified parameters.
-
-
Method Details
-
applyField
This method transforms magnetic properties to current and sends it toPowerSupply
- Returns:
int
indicate if method succeded- Throws:
IllegalStateException
- if any.
-
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 interfaceISimpleElement
- Overrides:
clone
in classAbstractTransferElement
- Returns:
- a
Object
the clone of this element. - See Also:
-
getCalculator
This method returnIBendingCalculatorModel
.- 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
This method return miximal energy that can be safely exceeded by this magnet.- Returns:
- a double
- Throws:
ControlSystemException
- if any.
-
getMinEnergy
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
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 classAbstractTransferElement
- Returns:
- a
TransferMatrix
object - See Also:
-
newMatrix
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 classAbstractTransferElement
- 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 classAbstractCalibratedMagnet
- 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
This method sets radius.- Parameters:
value
- a double- Throws:
IllegalStateException
- if any.
-
setWith
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 notnull
object in array.setWith.
setWith.
setWith.
setWith.
setWith.
- Overrides:
setWith
in classAbstractCalibratedMagnet
- Parameters:
par
- an array ofObject
objects- Throws:
IllegalStateException
- if element is initialized and inside DataBush.- See Also:
-
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 interfaceISimpleElement
- Overrides:
toString
in classAbstractCalibratedMagnet
- See Also:
-
update
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 checksisDataInvalidated()
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 tofalse
. 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 fromPowerSupply
and transform it to magnetic properties.- Returns:
- a int the return code indicating success
- Throws:
IllegalStateException
- thrown if status of DataBush equalsDB_EMPTY
DataBushPackedException
- contains all exception thrown or caught during updating element
-