Package xal.extension.jels.model.elem
Class IdealMagDipoleFace
java.lang.Object
xal.model.elem.Element
xal.model.elem.ThinElement
xal.model.elem.ThinElectromagnet
xal.extension.jels.model.elem.IdealMagDipoleFace
- All Implemented Interfaces:
IElectromagnet
,IComponent
,IElement
Represents the action of a rotated dipole face as a thin lens effect. Note
that there is always an associated dipole magnet for any
IdealMagDipoleFace
. The two objects should provide the same
values for the IElectromagnet
interface. Note that a dipole face
rotation has the same effect both on beam entering the dipole or exiting the
dipole.
The model for the pole face effect is taken from D.C. Carey's book.
D.C. Carey, The Optics of Charged Particle Beams (Harwood, 1987)
- Author:
- Christopher K. Allen
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Tags for parameters in the XML configuration filestatic final String
Tags for parameters in the XML configuration filestatic final String
Tags for parameters in 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 IdealMagSectorDipole.IdealMagDipoleFace
(String strId) Constructor providing the instance identifier for the element. -
Method Summary
Modifier and TypeMethodDescriptiondouble
Compute and return the curvature of the design orbit through the magnet.double
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 bending angle of the magnet's design trajectory.double
Return the path length of the design trajectory through the magnet.double
Return the field path flag.double
Set the second-order moment integral of the dipole fringe field as described by D.C.double
double
Return distance between dipole magnet poles.double
getK0()
This is the design bending curvature h = 1/R0 where R0 is the design bending radius.double
Return the angle between the pole face normal vector and the design trajectory.void
setDesignBendAngle
(double dblBendAng) Set the bending angle of the reference (design) orbit.void
setDesignPathLength
(double dblPathLen) Set the reference (design) orbit path-length through the magnet.void
setFieldPathFlag
(double ba) sako to set field path flagvoid
setFringeIntegral
(double dblFringeInt) Set the second-order moment integral of the dipole fringe field as described by D.C.void
setFringeIntegral2
(double dblFringeInt2) void
setGapHeight
(double dblGap) Set the gap height between the magnet poles.void
setK0
(double dbl) Set the design curvature h of the bending magnet.void
setPoleFaceAngle
(double dblAngPole) Set the angle between the pole face normal vector and the design trajectory.protected PhaseMap
transferMap
(IProbe probe) Compute and return the transfer map for this dipole magnet pole face element.Methods inherited from class xal.model.elem.ThinElectromagnet
getMagField, getOrientation, initializeFrom, 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, print, 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
Tags for parameters in the XML configuration file- See Also:
-
PARAM_ORIENT
Tags for parameters in the XML configuration file- See Also:
-
PARAM_FIELD
Tags for parameters in the XML configuration file- See Also:
-
-
Constructor Details
-
IdealMagDipoleFace
public IdealMagDipoleFace()Default constructor - creates a new uninitialized instance of IdealMagSectorDipole. This is the constructor called in automatic lattice generation. Thus, all element properties are set following construction. -
IdealMagDipoleFace
Constructor providing the instance identifier for the element.- Parameters:
strId
- string identifier for element
-
-
Method Details
-
setPoleFaceAngle
public void setPoleFaceAngle(double dblAngPole) Set the angle between the pole face normal vector and the design trajectory. This can be either at the magnet entrance or exit, the effect is the same.- Parameters:
dblAngPole
- pole face angle in radians
-
setGapHeight
public void setGapHeight(double dblGap) Set the gap height between the magnet poles.- Parameters:
dblGap
- gap size in meters
-
setFringeIntegral
public void setFringeIntegral(double dblFringeInt) Set the second-order moment integral of the dipole fringe field as described by D.C. Carey. The integral determines the amount of defocusing caused by the fringe field. Denoting the integral I2 it has the definition I2 := Integral{ B(z)[B0 - B(z)]/(g B0^2) }dz where g is the gap height, B0 is the hard edge value for the magnetic field, and B(z) is the true magnetic field along the design trajectory with path length parameter z. The integral taken from a location z0 within the magnet where B(z0)=B0 out to z = infinity. Some examples values are the following: I2 = 0.1666 linear drop off I2 = 0.4 clamped Rogowski coil I2 = 0.7 unclamped Rogoski coil- Parameters:
dblFringeInt
- field moment I2 (dimensionless)
-
setFringeIntegral2
public void setFringeIntegral2(double dblFringeInt2) -
setFieldPathFlag
public void setFieldPathFlag(double ba) sako to set field path flag- Parameters:
ba
-
-
setDesignPathLength
public void setDesignPathLength(double dblPathLen) Set the reference (design) orbit path-length through the magnet.- Parameters:
dblPathLen
- path length of design trajectory (meters)
-
setDesignBendAngle
public void setDesignBendAngle(double dblBendAng) Set the bending angle of the reference (design) orbit.- Parameters:
dblBendAng
- design trajectory bending angle (radians)
-
setK0
public void setK0(double dbl) Set the design curvature h of the bending magnet.- Parameters:
dbl
- design curvature h = 1/R0 where R0 is the design path radius.- Since:
- Apr 19, 2011
-
getK0
public double getK0()This is the design bending curvature h = 1/R0 where R0 is the design bending radius.- Returns:
- the design curvature of the bending magnet
- Since:
- Apr 19, 2011
-
getGapHeight
public double getGapHeight()Return distance between dipole magnet poles.- Returns:
- gap height in meters
-
getPoleFaceAngle
public double getPoleFaceAngle()Return the angle between the pole face normal vector and the design trajectory. This can be either at the magnet entrance or exit, the effect is the same.- Returns:
- pole face angle in radians
-
getFringeIntegral
public double getFringeIntegral()Set the second-order moment integral of the dipole fringe field as described by D.C. Carey. The integral determines the amount of defocusing caused by the fringe field.- Returns:
- second-order integral of fringe field (dimensionless)
- See Also:
-
getFringeIntegral2
public double getFringeIntegral2() -
getFieldPathFlag
public double getFieldPathFlag()Return the field path flag.- Returns:
- field path flag = 1 (use design field) or 0 (use bField parameter)
-
getDesignPathLength
public double getDesignPathLength()Return the path length of the design trajectory through the magnet.- Returns:
- design trajectory path length (in meters)
-
getDesignBendingAngle
public double getDesignBendingAngle()Return the bending angle of the magnet's design trajectory.- Returns:
- design trajectory bending angle (in radians)
-
compDesignCurvature
public double compDesignCurvature()Compute and return the curvature of the design orbit through the magnet. Note that this value is the inverse of the design curvature radius R0.- Returns:
- the design curvature 1/R0 (in 1/meters)
- See Also:
-
IdealMagSectorDipole2#compDesignBendingRadius()
-
elapsedTime
Returns the time taken for the probe to propagate through element.- Specified by:
elapsedTime
in classThinElement
- Parameters:
probe
- propagating probe- Returns:
- value of zero
-
energyGain
Return the energy gain for this Element.- Specified by:
energyGain
in classThinElement
- Parameters:
probe
- propagating probe- Returns:
- value of zero
-
transferMap
Compute and return the transfer map for this dipole magnet pole face element.- Specified by:
transferMap
in classThinElement
- Parameters:
probe
-- Returns:
- Throws:
ModelException
- See Also:
-
xal.sim.slg.sns.xal.model.elem.ThinElement#transferMap(gov.sns.xal.model.IProbe)
-