Class BunchProbe<S extends BunchProbeState<S>>
- Direct Known Subclasses:
EnsembleProbe
,EnvelopeProbe
,SynchronousProbe
,TwissProbe
Abstract base class for all probes having beam properties. That is derived classes should represent probes with collective beam dynamics.
Note:
The bunch charge Q is computed from the beam current I and
bunch frequency f as
Q = I/f
- Since:
- Nov 2, 2002
- Author:
- Christopher K. Allen
-
Field Summary
Fields inherited from class xal.model.probe.Probe
COMMENT_LABEL, PROBE_LABEL, stateCurrent, TEXT_LABEL, TIME_LABEL, trajHist, TYPE_LABEL
Fields inherited from interface xal.model.IProbe
LIGHT_SPEED, PERMITTIVITY, UNIT_CHARGE
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Default constructor.protected
BunchProbe
(BunchProbe<S> probe) Copy constructor - clones the argument Since BunchProbe is abstract constructor should only be calls by a derived class. -
Method Summary
Modifier and TypeMethodDescriptiondouble
Returns the generalized, two-dimensional beam perveance K.double
Returns the generalized, three-dimensional beam perveance K.double
Computes and returns the charge in each beam bunchabstract S
Just restatingProbe.
.createEmptyProbeState()
abstract S
Just restatingProbe.
createProbeState()
double
Returns the total beam currentdouble
Returns the bunch frequency, that is the frequency of the bunches need to create the beam current.void
setBeamCurrent
(double i) Set the total beam current.void
setBunchFrequency
(double f) Set the bunch arrival time frequency.Methods inherited from class xal.model.probe.Probe
applyState, cloneCurrentProbeState, copy, createTrajectory, deepCopy, getAlgorithm, getArchive, getBeta, getComment, getCurrentElement, getCurrentElementTypeId, getCurrentHardwareId, getCurrentState, getGamma, getInitialState, getKineticEnergy, getLongitinalPhase, getMomentum, getPosition, getSpeciesCharge, getSpeciesName, getSpeciesRestEnergy, getTime, getTimestamp, getTrajectory, initialize, initializeFrom, load, lookupLastStateFor, newProbeInitializedFrom, performPostProcessing, readFrom, readStateFrom, reset, save, setAlgorithm, setComment, setCurrentElement, setCurrentElementTypeId, setCurrentHardwareId, setKineticEnergy, setLongitudinalPhase, setPosition, setSpeciesCharge, setSpeciesName, setSpeciesRestEnergy, setTime, setTimestamp, setTracking, update
-
Constructor Details
-
BunchProbe
protected BunchProbe()Default constructor. Since BunchProbe is abstract constructor should only be calls by a derived class. Creates a new (empty) instance of BunchProbe. -
BunchProbe
Copy constructor - clones the argument Since BunchProbe is abstract constructor should only be calls by a derived class.- Parameters:
probe
- BunchProbe object to be cloned
-
-
Method Details
-
setBunchFrequency
public void setBunchFrequency(double f) Set the bunch arrival time frequency.- Parameters:
f
- new bunch frequency in Hz
-
setBeamCurrent
public void setBeamCurrent(double i) Set the total beam current.- Parameters:
i
- new beam current in Amperes
-
getBunchFrequency
public double getBunchFrequency()Returns the bunch frequency, that is the frequency of the bunches need to create the beam current. The bunch frequency f is computed from the beam current I and bunch charge Q as f = I/Q- Returns:
- bunch frequency in Hertz
-
getBeamCurrent
public double getBeamCurrent()Returns the total beam current- Returns:
- beam current in amps
-
bunchCharge
public double bunchCharge()Computes and returns the charge in each beam bunch- Returns:
- beam charge in coulombs
-
beamPerveance
public double beamPerveance()Returns the generalized, three-dimensional beam perveance K. This value is defined to be
K = (Q/4*pi*e0)*(1/gamma^3*beta^2)*(|q|/ER)where Q is the bunch charge, e0 is the permittivity of free space, gamma is the relativistic factor, beta is the normalized design velocity, q is the charge of the beam particles and ER is the rest energy of the beam particles.
NOTES: - The value (1/4*pi*e0) is equal to 1e-7*c^2 where c is the speed of light.
- Returns:
- generalized beam perveance Units: radians^2/meter
-
beamDCPerveance
public double beamDCPerveance()Returns the generalized, two-dimensional beam perveance K. This value is defined to be
K = (I/pi*e0)*(1/gamma^3*beta^3*c)*(|q|/ER)where I is the current, e0 is the permittivity of free space, gamma is the relativitic factor, beta is the normalized design velocity, q is the charge of the beam particles and ER is the rest energy of the beam partiles.
- Returns:
- generalized DC beam perveance Units: radians^2/meter
-
createProbeState
Just restatingProbe.
createProbeState()
- Specified by:
createProbeState
in classProbe<S extends BunchProbeState<S>>
- Since:
- Nov 5, 2013
- See Also:
-
createEmptyProbeState
Just restatingProbe.
.createEmptyProbeState()
- Specified by:
createEmptyProbeState
in classProbe<S extends BunchProbeState<S>>
- Returns:
- a new, blank
ProbeState
- Since:
- Jul 1, 2014
-