Package xal.model.elem
Class IdealMagFringeQuadFace
java.lang.Object
xal.model.elem.Element
xal.model.elem.ThinElement
xal.model.elem.ThinElectromagnet
xal.model.elem.IdealMagFringeQuadFace
- 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.- Author:
- Christopher K. Allen
- See Also:
-
- "D.C. Carey, The Optics of Charged Particle Beams (Harwood, 1987)"
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final String
Parameters for XAL MODEL LATTICE dtdstatic final String
static 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.IdealMagFringeQuadFace
(String strId) Constructor providing the instance identifier for the element. -
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
boolean
getEntr()
double
Return the field path flag.double
Set the second-order moment integral of the dipole fringe field as described by H.double
double
getK1()
K1 (T/m)double
void
setBRhoScaling
(double d) void
setEntrFlag
(boolean entr) void
setFieldPathFlag
(double ba) sako to set field path flagvoid
setFringeIntegral1
(double dblFringeInt) Set the first-order moment integral of the dipole fringe field as described by H.void
setFringeIntegral2
(double dblFringeInt) Set the first-order moment integral of the dipole fringe field as described by H.void
setK1
(double dbl) K1 (T/m)void
setNominalKineEnergy
(double ba) 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
Parameters for XAL MODEL LATTICE dtd- See Also:
-
PARAM_ORIENT
- See Also:
-
PARAM_FIELD
- See Also:
-
-
Constructor Details
-
IdealMagFringeQuadFace
public IdealMagFringeQuadFace()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. -
IdealMagFringeQuadFace
Constructor providing the instance identifier for the element.- Parameters:
strId
- string identifier for element
-
-
Method Details
-
setEntrFlag
public void setEntrFlag(boolean entr) -
getBRhoScaling
public double getBRhoScaling() -
setBRhoScaling
public void setBRhoScaling(double d) -
setNominalKineEnergy
public void setNominalKineEnergy(double ba) -
getNominalKineEnergy
public double getNominalKineEnergy() -
getK1
public double getK1()K1 (T/m)- Returns:
- K1
-
setK1
public void setK1(double dbl) K1 (T/m) -
setFringeIntegral1
public void setFringeIntegral1(double dblFringeInt) Set the first-order moment integral of the dipole fringe field as described by H. Matsuda. The integral determines the amount of defocusing caused by the fringe field. Denoting the integral f1 has the definition f1 := sign(a)sqrt(a) a = -24 [I1sad-I0sad^2/2] where I(n)sad := Integral{[z - z0] k(z)/k0}dz where k0 is normal k0*Len. The integral taken from -infinity to z = infinity.- Parameters:
dblFringeInt
- field moment f1 (dimensionless)
-
setFringeIntegral2
public void setFringeIntegral2(double dblFringeInt) Set the first-order moment integral of the dipole fringe field as described by H. Matsuda. The integral determines the amount of defocusing caused by the fringe field. Denoting the integral f1 has the definition f2 := [I2sad-I0sad^2/3] where I(n)sad := Integral{[z - z0] k(z)/k0}dz where k0 is normal k0*Len. The integral taken from -infinity to z = infinity.- Parameters:
dblFringeInt
- field moment f1 (dimensionless)
-
setFieldPathFlag
public void setFieldPathFlag(double ba) sako to set field path flag- Parameters:
ba
-
-
getFringeIntegral1
public double getFringeIntegral1()Set the second-order moment integral of the dipole fringe field as described by H. Matsuda. The integral determines the amount of defocusing caused by the fringe field.- Returns:
- second-order integral of fringe field (dimensionless)
- See Also:
-
IdealMagFringeQuadFace#setFringeIntegral(double)
-
getFringeIntegral2
public double getFringeIntegral2() -
getEntr
public boolean getEntr() -
getFieldPathFlag
public double getFieldPathFlag()Return the field path flag.- Returns:
- field path flag = 1 (use design field) or 0 (use bField parameter)
-
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:
-