Package xal.model.elem
Class IdealMagSteeringDipole
java.lang.Object
xal.model.elem.Element
xal.model.elem.ThinElement
xal.model.elem.ThinElectromagnet
xal.model.elem.IdealMagSteeringDipole
- All Implemented Interfaces:
IElectromagnet
,IComponent
,IElement
- Direct Known Subclasses:
IdealHorMagSteeringDipole
,IdealVerMagSteeringDipole
Represents the action of an ideal magnetic dipole. These structures are
typically used for beam steering.
- Author:
- Christopher Allen
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Tag for the parameter within the XML configuration filestatic final String
Tag for the parameter within the XML configuration filestatic final String
Tag for the parameter within the XML configuration filestatic final String
the string type identifier for all IdealMagSteeringDipole'sFields inherited from class xal.model.elem.ThinElectromagnet
dblField, enmOrient
Fields inherited from class xal.model.elem.Element
dblNodeLen, dblNodePos
Fields inherited from interface xal.model.elem.sync.IElectromagnet
ORIENT_HOR, ORIENT_NONE, ORIENT_VER
Fields inherited from interface xal.model.IElement
LIGHT_SPEED, PERMEABILITY, PERMITTIVITY, UNIT_CHARGE
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor - creates a new uninitialized instance of IdealMagSteeringDipole.IdealMagSteeringDipole
(String strId) Create a new instance of IdealMagSteeringDipole and specify its instance identifier.IdealMagSteeringDipole
(String strId, double dblLenEff, int enmOrient, double dblFld) Creates a new instance ofIdealMagSteeringDipole
. -
Method Summary
Modifier and TypeMethodDescriptiondouble
elapsedTime
(IProbe probe) Returns the time taken for the probe to propagate through element.double
energyGain
(IProbe probe) Return the energy gain for this Element.double
Return the angle kick [rad]double
Return the effective length of this dipole magnetdouble
Return the position kick strength of this dipole magnetvoid
initializeFrom
(LatticeElement element) Conversion method to be provided by the uservoid
print
(PrintWriter os) Dump current state and content to output stream.void
setAngleKick
(double dblAngKick) Set the kick angle of the dipole magnet.void
setEffLength
(double dblLenEff) Set the effective length of the dipole magnet.void
setPositionKick
(double dblPosKick) Set the position kick of the dipole magnet.protected PhaseMap
transferMap
(IProbe probe) Computes the transfer map for an ideal magnetic dipole.Methods inherited from class xal.model.elem.ThinElectromagnet
getMagField, getOrientation, setMagField, setOrientation
Methods inherited from class xal.model.elem.ThinElement
applyErrors, elapsedTime, energyGain, getLength, longitudinalPhaseAdvance, longitudinalPhaseAdvance, transferMap
Methods inherited from class xal.model.elem.Element
addCloseElements, backPropagate, backPropagate, compDriftingTime, compProbeLocation, getAlignX, getAlignY, getAlignZ, getCloseElements, getHardwareNodeId, getId, getLatticePosition, getNodeLen, getNodePos, getParent, getPhiX, getPhiY, getPhiZ, getPosition, getType, getUID, propagate, propagate, setAlign, setAlignX, setAlignY, setAlignZ, setHardwareNodeId, setId, setParent, setPhiX, setPhiY, setPhiZ, setPosition, toString
-
Field Details
-
TYPE
the string type identifier for all IdealMagSteeringDipole's- See Also:
-
PARAM_LEN_EFF
Tag for the parameter within the XML configuration file- See Also:
-
PARAM_ORIENT
Tag for the parameter within the XML configuration file- See Also:
-
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
Create a new instance of IdealMagSteeringDipole and specify its instance identifier.- Parameters:
strId
- string instance identifier of element
-
IdealMagSteeringDipole
Creates a new instance ofIdealMagSteeringDipole
. The action of the kicker is completely unspecified.- Parameters:
strId
- string identifier of elementdblFld
- 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
Returns the time taken for the probe to propagate through element.- Specified by:
elapsedTime
in classThinElement
- Parameters:
probe
- propagating probe- Returns:
- the value zero
-
energyGain
Return the energy gain for this Element.- Specified by:
energyGain
in classThinElement
- Parameters:
probe
- dummy argument- Returns:
- value of zero
-
transferMap
Computes the transfer map for an ideal magnetic dipole.- Specified by:
transferMap
in classThinElement
- 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
Dump current state and content to output stream. -
initializeFrom
Conversion method to be provided by the user- Specified by:
initializeFrom
in interfaceIComponent
- Overrides:
initializeFrom
in classThinElectromagnet
- Parameters:
element
- the SMF node to convert
-