-
Notifications
You must be signed in to change notification settings - Fork 10
Update BeamBeamP, InitialParticleP, TrackingP #127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
ff8dec3
0fbf840
efc8715
fb79813
073a64f
a2abadf
3bc7ab5
4f48acd
dc9d463
93382d2
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -16,9 +16,8 @@ cleo: # [string] user-defined name | |
| (s:ackicker)= | ||
| ## ACKicker Element | ||
|
|
||
| Time varying kicker element | ||
|
|
||
| Under Construction... | ||
| An ACKicker element simulates a time-dependent kicker. | ||
| It is like a Kicker element except that the field varies in time. | ||
|
|
||
| Element parameter groups associated with this element kind are: | ||
| - [**ACKickerP**](#s:ackicker.params): AC kicker parameters. | ||
|
|
@@ -30,13 +29,22 @@ Element parameter groups associated with this element kind are: | |
| - [**ReferenceChangeP**](#s:ref.change.params): Reference energy change and/or reference time correction. | ||
| - [**TrackingP**](#s:tracking.params): Tracking parameters. | ||
|
|
||
| Example: | ||
| ```{code} yaml | ||
| ack1: | ||
| kind: ACKicker | ||
| length: 0.3 | ||
| t_offset: 0.1e-8 | ||
| scale_multipoles: = F | ||
| b1: = 0.27 | ||
| amplitude_vs_time: = {(-1.2e-6, 0.02), ... } | ||
|
|
||
| %--------------------------------------------------------------------------------------------------- | ||
| (s:beambeam)= | ||
| ## BeamBeam Element | ||
|
|
||
| Element for simulating colliding beams. | ||
|
|
||
| Under Construction... | ||
| A BeamBeam element defines the parameters of a oppositely moving "strong" beam that generates electromagnetic fields at the interaction point. This strong beam is assumed to have a three-dimensional (3D) Gaussian density distribution. | ||
|
|
||
| Element parameter groups associated with this element kind are: | ||
| - [**ApertureP**](#s:aperture.params): Aperture parameters. | ||
|
|
@@ -48,14 +56,21 @@ Element parameter groups associated with this element kind are: | |
| - [**ReferenceChangeP**](#s:ref.change.params): Reference energy change and/or reference time correction. | ||
| - [**TrackingP**](#s:tracking.params): Tracking parameters. | ||
|
|
||
| The length of this element is considered to be zero so if `length` is specified, it must be zero. | ||
| Example: | ||
| ```{code} yaml | ||
| bb1: | ||
| kind: BeamBeam | ||
| sigma_x: 0.1e-3 | ||
| sigma_y: 0.1e-3 | ||
| sigma_z: 5.0e-2 | ||
| energy: 1.0e10 | ||
| N_particle: 1.0e11 | ||
|
|
||
| %--------------------------------------------------------------------------------------------------- | ||
| (s:beginningele)= | ||
| ## BeginningEle Element | ||
|
|
||
| Initial element at start of a branch. | ||
|
|
||
| A BeginningEle element is an initial element at start of a branch. | ||
| Under Construction... | ||
|
|
||
| Element parameter groups associated with this element kind are: | ||
|
|
@@ -66,8 +81,6 @@ Element parameter groups associated with this element kind are: | |
| - [**ReferenceP**](#s:ref.params): Reference parameters. | ||
| - [**TrackingP**](#s:tracking.params): Tracking parameters. | ||
|
|
||
| The length of this element is considered to be zero so if `length` is specified, it must be zero. | ||
|
|
||
| %--------------------------------------------------------------------------------------------------- | ||
| (s:bend)= | ||
| ## Bend Elements: RBend and SBend | ||
|
|
@@ -105,7 +118,9 @@ between `e1` and `e1_rect`, and `e2` and `e2_rect` satisfied. | |
| (s:converter)= | ||
| ## Converter Element | ||
|
|
||
| Target to produce new species. EG: Positron converter. | ||
| A Converter element represents a target (plate) onto which | ||
| particles are slammed in order to generate | ||
| particles of a different type. For example, a tungsten plate which is bombarded with electrons to generate positrons. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -126,9 +141,8 @@ The length of this element is considered to be zero so if `length` is specified, | |
| (s:crabcavity)= | ||
| ## CrabCavity Element | ||
|
|
||
| RF crab cavity | ||
|
|
||
| Under Construction... | ||
| A CrabCavity element is an zero length RF cavity that gives a longitudinal dependent | ||
| transverse kick. | ||
|
|
||
| Element parameter groups associated with this element kind are: | ||
| - [**ApertureP**](#s:aperture.params): Aperture parameters. | ||
|
|
@@ -141,6 +155,14 @@ Element parameter groups associated with this element kind are: | |
| - [**ReferenceChangeP**](#s:ref.change.params): Reference energy change and/or reference time correction. | ||
| - [**TrackingP**](#s:tracking.params): Tracking parameters. | ||
|
|
||
| Example: | ||
| ```{code} yaml | ||
| cc1: | ||
| kind: CrabCavity | ||
| frequency: 394.0e6 | ||
| phase: 0.0 | ||
| voltage: 1.0e6 | ||
|
|
||
| %--------------------------------------------------------------------------------------------------- | ||
| (s:drift)= | ||
| ## Drift Element | ||
|
|
@@ -168,8 +190,8 @@ d01: | |
| %--------------------------------------------------------------------------------------------------- | ||
| (s:egun)= | ||
| ## EGun Element | ||
|
|
||
| Electron gun. | ||
| An EGun element represents an electron gun and encompasses a region starting from the cathode were | ||
| the electrons are generated. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -188,7 +210,12 @@ Element parameter groups associated with this element kind are: | |
| (s:feedback)= | ||
| ## Feedback Circuit | ||
|
|
||
| Element used to simulate a feedback circuit. | ||
| A Feedback element is a lord element used to simulate a feedback circuit. | ||
| It gathers information about particle trajectories from the inputs | ||
| and uses this | ||
| to either adjust beam trajectories in the outputs and/or adjust parameters in the outputs. | ||
| A feedback element could be used, for example, to simulate RF feedback systems or beam position | ||
| feedback, or cooling of a proton beam by a beam of electrons. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -198,12 +225,12 @@ Note: This element does not have a `length` nor an `s_position`. | |
| (s:fiducial)= | ||
| ## Fiducial Element | ||
|
|
||
| Global coordinate system fiducial point. | ||
| A Fiducial element is used to fix the position and orientation of the reference orbit within the global | ||
| coordinate system at the location of the fiducial element. A fiducial element will affect the global | ||
| floor coordinates of elements both upstream and downstream of the fiducial element. | ||
|
|
||
| Under Construction... | ||
|
|
||
| The length of this element is considered to be zero so if `length` is specified, it must be zero. | ||
|
|
||
| %--------------------------------------------------------------------------------------------------- | ||
| (s:floorshift)= | ||
| ## FloorShift Element | ||
|
|
@@ -225,8 +252,10 @@ Element parameter groups associated with this element kind are: | |
| (s:foil)= | ||
| ## Foil Element | ||
|
|
||
| Material that can strip electrons from a particle. | ||
| Will also cause energy loss and diffusion. | ||
| A Foil element represents a planar sheet of material which can strip electrons from a particle. In | ||
| conjunction, there will be scattering of the particle trajectory as well as an associated energy loss. | ||
| Material that can strip electrons from a particle | ||
| will also cause energy loss and diffusion. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -245,7 +274,9 @@ The length of this element is considered to be zero so if `length` is specified, | |
| (s:fork)= | ||
| ## Fork Element | ||
|
|
||
| Element used to connect lattice branches together. | ||
| A Fork element marks the start of an alternative branch for the beam (or X-rays or | ||
| other particles generated by the beam) to follow. | ||
| This element is used to connect lattice branches together. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -264,7 +295,11 @@ The length of this element is considered to be zero so if `length` is specified, | |
| (s:girder)= | ||
| ## Girder Element | ||
|
|
||
| Element to support in space a group of other elements. | ||
| A Girder element is a support structure that orients the | ||
| elements that are attached to it in space. This element can | ||
| be used to simulate any rigid support structure and there are | ||
| no restrictions on how the lattice elements | ||
| that are supported are oriented with respect to one another. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -274,7 +309,7 @@ Note: This element does not have a `length` nor an `s_position`. | |
| (s:instrument)= | ||
| ## Instrument Element | ||
|
|
||
| Measurement element. | ||
| An Instrument element is a measurement element for diagnostics. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -293,7 +328,9 @@ Element parameter groups associated with this element kind are: | |
| (s:kicker)= | ||
| ## Kicker Element | ||
|
|
||
| Particle kicker element. | ||
| A kicker element is an element that can deflect a beam transversely in both planes. | ||
| It uses the hkick and vkick parameters to deflect the beam in | ||
| horizontal and vertical directions. | ||
|
Comment on lines
+332
to
+333
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Do we really want different names for kicks as opposed to zeroth order multipoles? |
||
|
|
||
| Under Construction... | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Note: There is currently no separate parameter group (e.g.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @DavidSagan I overlooked that zero-order (dipole) multipole components are allowed in PALS. In that case, re-using those here seems optimal. |
||
|
|
||
|
|
@@ -332,7 +369,8 @@ a case, the `BodyShiftP` parameter group can be used to misalign the BPM. | |
| (s:mask)= | ||
| ## Mask Element | ||
|
|
||
| Collimation element. | ||
| A Mask element defines an aperture where the mask area can essentially have an arbitrary shape. | ||
| It is a collimation element to remove unwanted particles. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -351,7 +389,8 @@ Element parameter groups associated with this element kind are: | |
| (s:match)= | ||
| ## Match Element | ||
|
|
||
| Orbit, Twiss, and dispersion matching element. | ||
| A Match element is used to match the orbit, Twiss, and dispersion parameters | ||
| between two locations. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -432,7 +471,10 @@ oct01w: | |
| (s:patch)= | ||
| ## Patch Element | ||
|
|
||
| Crooked drift used to shift the reference curve. | ||
| A Patch element is an element used to shift the reference orbit and time. | ||
| A common application of this element is to orient two lines with respect | ||
| to each other. For example, | ||
| to orient an injection line with the ring it is injecting into. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -480,6 +522,8 @@ q01w: | |
| (s:rfcavity)= | ||
| ## RFCavity Element | ||
|
|
||
| An RFCavity element represents an RF cavity that accelerates or decelerates, and focuses or defocuses, a charged particle beam longitudinally and transversely using RF fields. | ||
|
|
||
| Under Construction... | ||
|
|
||
| Element parameter groups associated with this element kind are: | ||
|
|
@@ -555,7 +599,9 @@ sol01w: | |
| (s:taylor)= | ||
| ## Taylor Element | ||
|
|
||
| Taylor map element | ||
| A Taylor element is a Taylor map that maps the input orbital phase space and possibly spin coordinates | ||
| of a particle at the entrance end of the element to the output orbital and spin coordinates at the exit | ||
| end of the element. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
@@ -621,6 +667,7 @@ together with the [`placement`](#s:placement) construct within a `BeamLine` and | |
| %--------------------------------------------------------------------------------------------------- | ||
| (s:wiggler)= | ||
| ## Wiggler Element | ||
| A Wiggler element consists of a periodic array of alternating bending magnets. From a particle tracking perspective, it is equivalent to an undulator. Hereafter, the term "wiggler" will be used to denote either a wiggler or an undulator. | ||
|
|
||
| Under Construction... | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,21 @@ | ||
| (s:beambeam.params)= | ||
| ## BeamBeamP: Beambeam Parameters | ||
| ## BeamBeamP: BeamBeam Parameters | ||
EZoni marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| In Construction... | ||
| The `BeamBeamP` parameter group describes a particle beam element | ||
| from the opposite moving colliding beam. | ||
|
|
||
| The inputs of `BeamBeamP` are: | ||
| ```{code} yaml | ||
| BeamBeamP: | ||
| sigma_x: 0.001 # The horizontal beam size of the opposite beam (default: 1 mm). | ||
| sigma_y: 0.001 # The vertical beam size of the opposite beam (default: 1 mm). | ||
| sigma_z: 0.0 # The longitudinal beam size of the opposite beam (default: 0 m). | ||
| alpha_x: 0.0 # The horizontal Twiss parameter alpha at interaction point (default: 0). | ||
| beta_x: 1.0 # The horizontal Twiss parameter beta at interaction point (default 1 m). | ||
| alpha_y: 0.0 # The vertical Twiss parameter alpha at interaction point (default 0 m). | ||
| beta_y: 1.0 # The vertical Twiss parameter beta at interaction point (default 1 m). | ||
| charge: 1.0 # The charge of the opposite beam (default: 1 for proton). | ||
| energy: 1e12 # The total energy in eV of the opposite beam (default: 1e12. | ||
| N_particle: 0.0 # Number of particles in the opposite beam (default: 0). | ||
| ``` | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,5 +2,26 @@ | |
| (s:init.particle.params)= | ||
| ## InitialParticleP: Initial Particle Coordinates Parameters | ||
|
|
||
| In Construction... | ||
| The `InitialParticleP` parameter group contains parameters for describing the | ||
| initial beam particle distribution. | ||
| The components of this group are: | ||
| ```{code} yaml | ||
| InitialParticleP: | ||
| distribution_type: "" # [string] name of initial distribution type | ||
| sigma_x: null # RMS x = sqrt(<x^2>) | ||
| sigma_px: null # RMS px = sqrt(<px^2>) | ||
| mu_xpx: null # <xpx>/(sigma_x*sigma_px) where <> denotes average over distribution | ||
| x_off: null # <x> | ||
| px_off: null # <px> | ||
| sigma_y: null # RMS y = sqrt(<y^2>) | ||
| sigma_py: null # RMS py = sqrt(<py^2>) | ||
| y_off: null # <y> | ||
| py_off: null # <py> | ||
| mu_ypy: null # <ypy>/(sigma_y*sigma_py) | ||
| sigma_z: null # RMS z = sqrt(<z^2>) | ||
| sigma_pz: null # RMS pz = sqrt(<pz^2>) | ||
| mu_zpz: null # <zpz>/(sigma_z*sigma_pz) | ||
| z_off: null # <z> | ||
| pz_off: null # <pz> | ||
| ``` | ||
|
Comment on lines
+9
to
+26
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are 21 moments so setting any should be available. How about something like |
||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we really want to have the assumption that the strong beam is Gaussian. If a program does not make this assumption then what kind of lattice element should it use?