marker
has no effect but allows one to identify a position in the beam line (say, where a sampler will
be placed). It has no attributes.
Example:
m1 : marker;
drift
defines a straight drift space.
Attributes:
l
- length [m] (default 0)
aper
- aperture [m] (default same as beampipe radius)
Example :
d13 : drift, l=0.5*m;
rbend
defines a rectangulat bending magnet.
Attributes:
l
- length [m] (default 0)
angle
- bending angle [rad] (default 0)
B
- magnetic field [T]
aper
- aperture [m] (default same as beampipe radius)
when B
is set, this defines a magnet with appropriate field strength and angle
is not taken into account. Otherwise, B
that corresponds to bending angle angle
for a particle in use
(defined by the beam
command, with appropriate energy and rest mass) is calculated and used in the simulations.
Example :
rb1 : rbend, l=0.5*m, angle = 0.01;
sbend
defines a sector bending magnet.
Attributes:
l
- length [m] (default 0)
angle
- bending angle [rad] (default 0)
B
- magnetic field [T]
aper
- aperture [m] (default same as beampipe radius)
Example :
The meaning of B
and angle
is the same as for rbend
.
rb1 : rbend, l=0.5*m, angle = 0.01;
quadrupole
defines a quadrupole.
Attributes:
l
- length [m] (default 0)
k1
- normal quadrupole coefficient
k1 = (1/B rho ) (dBy / dx) [m^-2]
Positive k1
means horisontal focusing of positively charged particles. (default 0)
tilt
[rad] - roll angle about the longitudinal axis, clockwise.
aper
- aperture [m] (default same as beampipe radius)
Example :
qf : quadrupole, l=0.5*m , k1 = 0.5 , tilt = 0.01;
sextupole
defines a sextupole.
Attributes:
l
- length [m] (default 0)
k2
- normal sextupole coefficient
k2 = (1/B rho ) (d^2 By / dx^2) [m^-3]
ks2
- skew sextupole coefficient
ks2 = (1/B rho ) (d^2 By / dx^2) [m^-3]
where (x,y) is now a coordinate system rotated by 30 degrees around s with respect to the normal one.(default 0).
tilt
[rad] - roll angle about the longitudinal axis, clockwise.
aper
- aperture [m] (default same as beampipe radius)
Example :
sf : sextupole, l=0.5*m , k2 = 0.5 , tilt = 0.01;
octupole
defines an octupole.
Attributes:
l
- length [m] (default 0)
k2
- normal sextupole coefficient
k3 = (1/B rho ) (d^3 By / dx^3) [m^-3]
Positive k1
means horisontal focusing of positively charged particles. (default 0)
tilt
[rad] - roll angle about the longitudinal axis, clockwise.
Example :
sf : octupole, l=0.5*m , k3 = 0.5 , tilt = 0.01;
will be implemented starting from v0.2
rcol
defines a rectangular collimator
Attributes:
l
- length [m] (default 0)
xsize
- horizontal aperture [m]
xsize
- vertical aperture [m]
material
- material
Example :
col1 : rcol,l=0.4*m, xsize=2*mm, ysize=1*mm, material="W"
The longitudinal collimator structure is not taken into account. To do this the user has to describe the collimator
with the generic type element
rcol
defines an elliptical collimator
Attributes:
l
- length [m] (default 0)
xsize
- horizontal aperture [m]
xsize
- vertical aperture [m]
material
- material
Example :
col2 : ecol,l=0.4*m, xsize=2*mm, ysize=1*mm, material="W"
Here the longitudinal collimator structure is also not taken into account.
will be implemented starting from v0.2
An arbitrary 3-dimensional transformation of the coordinate system is done by
placing a transform3d
element in the beamline. The syntax is
x
= <x offset>
y
= <y offset>
z
= <z offset>
phi
= <phi Euler angle>
theta
= <theta Euler angle>
psi
= <psi Euler angle>
Example:
rot : transform3d, psi=pi/2
All the elements are in principle examples of a general type element
which can represent an arbitrary geometric
entity with arbitrary B field maps 1.
Its attributes are
geometry
= <geometry_description>
bmap
= <bmap_description>
Descriptions are of the form
format:filename
where filename
is the path to the
file with the geometry description and format
defines the geometry description format.
The possible formats are given in Geometry.
Example :
qq : element, geometry = plain:qq.geom, bmap = plain:qq.bmap;
<bmap>
and <emap>
are definitions of E and B field maps according to (field maps).
elements are grouped into sequences by the line
command.
line_name : line=(
element1,
element2,...);
elementn
can be any element or another line.
Example :
A sequence of three FODO cells can be defines as
qf: quadrupole, l=0.5, k1=0.1
;qd: quadrupole, l=0.5, k1=-0.1
;d: drift, l=0.5
;fodo : line=(qf,d,qd,d)
;beamline : line{fodo,fodo,fodo};
<material> : material,Z=,A=,density=,temperature=
Attributes
Z
- atomic number
A
- mass number
density
- [kg/m]
temperature
[K]
the beam pipe parameters are used for particle tracking inside elements when the use geometry is
not defined. The beam pipe radius is assigned by the pipe
command
pipe, range=<range>, range=, r=, thickness=, material=<material>
;
Attributes
range
- element range to assign the radius for
r
- radius [m]
thickness
- thickness [m]
material
- beam pipe material
Example :
Supposing we want to define a copper beam pipe for ...
iron : material, Z=1,A=1,density=100, temperature=;
copper : material,Z=,A=,density=,temperature=;;
fodo : line=(qf,d,qd,d);
pipe, range=qf/qd, r=0.2, thickness = 0.1,material=copper;
pipe, range=d[2], r=0.1, thickness = 0.05,material=iron;
laser
defines a drift section with a laser beam inside.
<laser_name>: laser, position = {<x>,<y>,<z>},direction={ <dx>, <dy>, <dz> }
wavelen=<val>, spotsize=<val>, intensity=<val>;
Attributes
l
- length of the drift section
position
- position of an arbitrary point on the beam axis relative to the center of the
drift section
direction
- vector pointing in the beam direction
wavelen
- laser wave length [m]
spotsize
- spot size (sigma)[m]
intensity
-[W]
the laser is considered to be the intersection of the laser beaam with the volume of the drift section.
gas
command is used to introduce gas into the beam pipe.
2
gas, period=, components={c1,c2,...},parts={p1,p2,...}
;
where
c1,c2,...
- gas components names
p1,p2,...
- parts (100%=1). They need not sum up to 1.
the gas componens are defined by
c1 : gas, name=<name>, A=<A>, Z=<Z>, profile=<profile_name>
;
where
<Z>
- atomic number
<A>
- mass number
<profile_name>
- name of gas profile definition
the gas profile is defined as
<profile_name> : gas_profile = (<element>:<pressure>, <element>:<pressure>)
;
where
<element>
- name of the beamline component
<pressure>
- gas pressure (bar)
The gas pressure is then interpolated between the points where it is defined.
Issuing multiple gas
commands acts additively.
Example :
To introduce the gas into a fodo cell
...element definitions...
fodo : line=(qf,d,qd,d);
co2 : gas, name="c02", Z=22,A=44,profile=co2profile;
h20 : gas, name="h2", Z=1,A=1,profile=co2profile;
c02profile : gas_profile = (qd:0.01, qf:0.02*nbar,d:0.03*nbar);
h20profile : gas_profile = (qd:0.04, qf:0.01*nbar,d:0.03*nbar);
gas, period=fodo,components= { c02,h20},parts={0.7,0.8};