gov.sns.xal.model
Interface IProbe

All Known Implementing Classes:
Probe

public interface IProbe

The root interface of physical objects and mathematical abstractions used in UAL applications (for example: Bunch, Particle, Twiss, Taylor map, and others). According to the Element-Algorithm-Probe analysis pattern, the Probe objects interact with accelerator structures, Element's. These interactions are implemented as the separate classes (Tracker, Mapper, etc.) that support the Algorithm interface.


Field Summary
static double LightSpeed
          Speed of light in a vaccuum (meters/second)
static double Permittivity
          Electric permativity of free space (Farad/meter)
static double UnitCharge
          The unit electric charge (Farads)
 
Method Summary
 IAlgorithm getAlgorithm()
          Return the dynamics algorithm associated with this probe.
 IArchive getArchive()
          Return the IArchive interface for archiving this algorithm object.
 double getBeta()
          Returns the probe velocity normalized to the speed of light.
 java.lang.String getCurrentElement()
          Returns the current lattice element of the probe.
 double getGamma()
          Returns the relativistic parameter corresponding to the probe velocity.
 double getKineticEnergy()
          Return the kinetic energy of the probe.
 double getPosition()
          Returns the current beam-line position of the probe
 double getSpeciesCharge()
          Returns the charge of probe's particle species
 double getSpeciesRestEnergy()
          Returns the rest energy of particle species
 double getTime()
          Return the time elapsed since the probe began propagation.
 void initialize()
          Initialize the probe for propagation.
 void setCurrentElement(java.lang.String id)
          Set the current lattice element.
 void setKineticEnergy(double dblW)
          Set the current kinetic energy of the probe.
 void setPosition(double dblPos)
          Set the current position of the probe along the beamline.
 void setTime(double dblTime)
          Set the current time since the probe began propagating
 void update()
          Update all data and connections.
 

Field Detail

LightSpeed

public static final double LightSpeed
Speed of light in a vaccuum (meters/second)

See Also:
Constant Field Values

UnitCharge

public static final double UnitCharge
The unit electric charge (Farads)

See Also:
Constant Field Values

Permittivity

public static final double Permittivity
Electric permativity of free space (Farad/meter)

See Also:
Constant Field Values
Method Detail

getSpeciesCharge

public double getSpeciesCharge()
Returns the charge of probe's particle species

Returns:
particle species charge (Coulombs)

getSpeciesRestEnergy

public double getSpeciesRestEnergy()
Returns the rest energy of particle species

Returns:
particle species rest energy (electron-volts)

getCurrentElement

public java.lang.String getCurrentElement()
Returns the current lattice element of the probe.

Returns:
String id of current lattice element

getPosition

public double getPosition()
Returns the current beam-line position of the probe

Returns:
probe position (meters)

getTime

public double getTime()
Return the time elapsed since the probe began propagation.

Returns:
elapsed time in seconds

getKineticEnergy

public double getKineticEnergy()
Return the kinetic energy of the probe. Depending upon the probe type, this could be the actual kinetic energy of a single constituent particle, the average kinetic energy of an ensemble, the design energy, etc.

Returns:
probe kinetic energy (electron-volts)

getBeta

public double getBeta()
Returns the probe velocity normalized to the speed of light.

Returns:
normalized probe velocity v/c (unitless

getGamma

public double getGamma()
Returns the relativistic parameter corresponding to the probe velocity. The relativistic factor is given by the formulae gamma = (Kinetic Energy/Rest Energy) + 1 = sqrt[1/(1-v^2/c^2)]

Returns:
probe relatistic factor (unitless)

setCurrentElement

public void setCurrentElement(java.lang.String id)
Set the current lattice element.

Parameters:
id - String id of current lattice element.

setPosition

public void setPosition(double dblPos)
Set the current position of the probe along the beamline.

Parameters:
dblPos - new probe position (meters)

setTime

public void setTime(double dblTime)
Set the current time since the probe began propagating

Parameters:
dblTime - new probe current time in seconds

setKineticEnergy

public void setKineticEnergy(double dblW)
Set the current kinetic energy of the probe.

Parameters:
dblW - new probe kinetic energy (electron-volts)
See Also:
getKineticEnergy()

initialize

public void initialize()
                throws ModelException
Initialize the probe for propagation. Reset any necessary state variables Optionally set up a trajectory variable

Throws:
ModelException - an error occurred while trying to initialize the probe

update

public void update()
            throws ModelException
Update all data and connections. Recompute any parameters consistent with new probe state Optionally store probe state to save trajectory history Resynchronize probe with data sources if they exist

Throws:
ModelException - an error occurred while trying to update the probe

getAlgorithm

public IAlgorithm getAlgorithm()
Return the dynamics algorithm associated with this probe.


getArchive

public IArchive getArchive()
Return the IArchive interface for archiving this algorithm object.