public class IdealMagDipoleFace2 extends ThinElectromagnet
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)
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
s_strParamField
Tags for parameters in the XML configuration file
|
static java.lang.String |
s_strParamLenEff
Tags for parameters in the XML configuration file
|
static java.lang.String |
s_strParamOrient
Tags for parameters in the XML configuration file
|
static java.lang.String |
s_strType
the string type identifier for all IdealMagSteeringDipole's
|
dblField, enmOrient
ORIENT_HOR, ORIENT_NONE, ORIENT_VER
LightSpeed, Permeability, Permittivity, UnitCharge
Constructor and Description |
---|
IdealMagDipoleFace2()
Default constructor - creates a new uninitialized instance of
IdealMagSectorDipole.
|
IdealMagDipoleFace2(java.lang.String strId)
Constructor providing the instance identifier for the element.
|
Modifier and Type | Method and Description |
---|---|
double |
compDesignCurvature()
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 |
getDesignBendingAngle()
Return the bending angle of the magnet's design trajectory.
|
double |
getDesignPathLength()
Return the path length of the design trajectory through the
magnet.
|
boolean |
getFieldPathFlag()
Return the field path flag.
|
double |
getFringeIntegral()
Set the second-order moment integral of the dipole fringe field
as described by D.C.
|
double |
getGapHeight()
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 |
getPoleFaceAngle()
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(boolean ba)
sako to set field path flag
|
void |
setFringeIntegral(double dblFringeInt)
Set the second-order moment integral of the dipole fringe field
as described by D.C.
|
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.
|
getMagField, getOrientation, initializeFrom, setMagField, setOrientation
elapsedTime, energyGain, getLength, transferMap
addCloseElements, applyAlignError, backPropagate, backPropagate, compDriftingTime, compProbeLocation, getAlignX, getAlignY, getAlignZ, getCloseElements, getHardwareNodeId, getId, getPosition, getType, getUID, print, propagate, propagate, setAlign, setAlignX, setAlignY, setAlignZ, setHardwareNodeId, setId, setPosition, toString
public static final java.lang.String s_strType
public static final java.lang.String s_strParamLenEff
public static final java.lang.String s_strParamOrient
public static final java.lang.String s_strParamField
public IdealMagDipoleFace2()
public IdealMagDipoleFace2(java.lang.String strId)
strId
- string identifier for elementpublic void setPoleFaceAngle(double dblAngPole)
dblAngPole
- pole face angle in radianspublic void setGapHeight(double dblGap)
dblGap
- gap size in meterspublic void setFringeIntegral(double dblFringeInt)
dblFringeInt
- field moment I2 (dimensionless)public void setFieldPathFlag(boolean ba)
ba
- public void setDesignPathLength(double dblPathLen)
dblPathLen
- path length of design trajectory (meters)public void setDesignBendAngle(double dblBendAng)
dblBendAng
- design trajectory bending angle (radians)public void setK0(double dbl)
dbl
- design curvature h = 1/R0 where
R0 is the design path radius.public double getK0()
public double getGapHeight()
public double getPoleFaceAngle()
public double getFringeIntegral()
setFringeIntegral(double)
public boolean getFieldPathFlag()
public double getDesignPathLength()
public double getDesignBendingAngle()
public double compDesignCurvature()
IdealMagSectorDipole2.compDesignBendingRadius()
public double elapsedTime(IProbe probe)
elapsedTime
in class ThinElement
probe
- propagating probepublic double energyGain(IProbe probe)
energyGain
in class ThinElement
probe
- propagating probeprotected PhaseMap transferMap(IProbe probe) throws ModelException
transferMap
in class ThinElement
probe
- ModelException
xal.sim.slg.sns.xal.model.elem.ThinElement#transferMap(gov.sns.xal.model.IProbe)