Package xal.model.elem
Class IdealMagDipoleFace2
java.lang.Object
xal.model.elem.Element
xal.model.elem.ThinElement
xal.model.elem.ThinElectromagnet
xal.model.elem.IdealMagDipoleFace2
- 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 StringTags for parameters in the XML configuration filestatic final StringTags for parameters in the XML configuration filestatic final StringTags for parameters in the XML configuration filestatic final Stringthe string type identifier for all IdealMagSteeringDipole'sFields inherited from class xal.model.elem.ThinElectromagnet
dblField, enmOrientFields inherited from class xal.model.elem.Element
dblNodeLen, dblNodePosFields inherited from interface xal.model.elem.sync.IElectromagnet
ORIENT_HOR, ORIENT_NONE, ORIENT_VERFields inherited from interface xal.model.IElement
LIGHT_SPEED, PERMEABILITY, PERMITTIVITY, UNIT_CHARGE -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor - creates a new uninitialized instance of IdealMagSectorDipole.IdealMagDipoleFace2(String strId) Constructor providing the instance identifier for the element. -
Method Summary
Modifier and TypeMethodDescriptiondoubleCompute and return the curvature of the design orbit through the magnet.doubleelapsedTime(IProbe probe) Returns the time taken for the probe to propagate through element.doubleenergyGain(IProbe probe) Return the energy gain for this Element.doubleReturn the bending angle of the magnet's design trajectory.doubleReturn the path length of the design trajectory through the magnet.booleanReturn the field path flag.doubleSet the second-order moment integral of the dipole fringe field as described by D.C.doubleReturn distance between dipole magnet poles.doublegetK0()This is the design bending curvature h = 1/R0 where R0 is the design bending radius.doubleReturn the angle between the pole face normal vector and the design trajectory.voidsetDesignBendAngle(double dblBendAng) Set the bending angle of the reference (design) orbit.voidsetDesignPathLength(double dblPathLen) Set the reference (design) orbit path-length through the magnet.voidsetFieldPathFlag(boolean ba) sako to set field path flagvoidsetFringeIntegral(double dblFringeInt) Set the second-order moment integral of the dipole fringe field as described by D.C.voidsetGapHeight(double dblGap) Set the gap height between the magnet poles.voidsetK0(double dbl) Set the design curvature h of the bending magnet.voidsetPoleFaceAngle(double dblAngPole) Set the angle between the pole face normal vector and the design trajectory.protected PhaseMaptransferMap(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, setOrientationMethods inherited from class xal.model.elem.ThinElement
applyErrors, elapsedTime, energyGain, getLength, longitudinalPhaseAdvance, longitudinalPhaseAdvance, transferMapMethods 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
-
IdealMagDipoleFace2
public IdealMagDipoleFace2()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. -
IdealMagDipoleFace2
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)
-
setFieldPathFlag
public void setFieldPathFlag(boolean 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:
-
getFieldPathFlag
public boolean 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:
-
elapsedTime
Returns the time taken for the probe to propagate through element.- Specified by:
elapsedTimein classThinElement- Parameters:
probe- propagating probe- Returns:
- value of zero
-
energyGain
Return the energy gain for this Element.- Specified by:
energyGainin 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:
transferMapin classThinElement- Parameters:
probe-- Returns:
- Throws:
ModelException- See Also:
-