-
Notifications
You must be signed in to change notification settings - Fork 10
Update several parameters, element kinds #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 19 commits
ff8dec3
0fbf840
efc8715
fb79813
073a64f
a2abadf
3bc7ab5
4f48acd
dc9d463
93382d2
da9f34e
370c63a
9d2274b
eba1164
9e9cd56
f1055b6
f4ea605
88c0962
8e08167
2cf6eeb
cf3205a
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,9 @@ 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. | ||||||
| This element requires a user supplied time-dependent expression. | ||||||
|
|
||||||
| Element parameter groups associated with this element kind are: | ||||||
| - [**ACKickerP**](#s:ackicker.params): AC kicker parameters. | ||||||
|
|
@@ -30,13 +30,19 @@ 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_0: 0.0 | ||||||
| t : 1e-8 | ||||||
|
|
||||||
| %--------------------------------------------------------------------------------------------------- | ||||||
| (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 +54,23 @@ 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 | ||||||
| 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 | ||||||
|
|
||||||
| The length of this element is considered to be zero so if `length` is specified, it must be zero. | ||||||
|
|
||||||
| %--------------------------------------------------------------------------------------------------- | ||||||
| (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: | ||||||
|
|
@@ -67,7 +82,6 @@ Element parameter groups associated with this element kind are: | |||||
| - [**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. | ||||||
EZoni marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
|
|
||||||
| %--------------------------------------------------------------------------------------------------- | ||||||
| (s:bend)= | ||||||
| ## Bend Elements: RBend and SBend | ||||||
|
|
@@ -105,7 +119,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 +142,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 +156,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 +191,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 +211,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 an 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,7 +226,9 @@ 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... | ||||||
|
|
||||||
|
|
@@ -225,8 +255,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 +277,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 +298,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 +312,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 +331,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. | ||||||
|
||||||
| A kicker element is an element that can deflect a beam transversely in both planes. | |
| A Kicker element is an element that can deflect a beam transversely in both planes. |
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.
@EZoni fixed.
cemitch99 marked this conversation as resolved.
Show resolved
Hide resolved
| 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). | ||
| ``` | ||
|
Comment on lines
8
to
20
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. I think this doesn't follow the conventions we agreed on in #127 (comment), namely MyParameterGroupP:
param1: 12.3 # [eV] A parameter with default value 12.3 in units of eV.
param2: null # [eV] A parameter without default value in units of eV.
param3: null # [unitless] A parameter without default value, unitless.
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. Note that the comments here were meant to explain the meaning of the convention. For example, I don't think it's necessary to repeat the default values in the comment.
Author
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. @EZoni I will clean up this a bit. |
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,5 +2,38 @@ | |
| (s:init.particle.params)= | ||
| ## InitialParticleP: Initial Particle Coordinates Parameters | ||
|
|
||
| In Construction... | ||
| The `InitialParticleP` parameter group contains parameters for describing the | ||
| initial beam particle distribution based on its first two moments. | ||
| The components of this group are: | ||
| ```{code} yaml | ||
| InitialParticleP: | ||
| distribution_type: "" # [string] name of initial distribution type | ||
| x_off: null # <x>, <> denotes average over distribution | ||
| px_off: null # <px> | ||
| y_off: null # <y> | ||
| py_off: null # <py> | ||
| z_off: null # <z> | ||
| pz_off: null # <pz> | ||
| sigma_xx: null # <x^2> | ||
| sigma_pxpx: null # <px^2> | ||
| sigma_yy: null # <y^2> | ||
| sigma_pypy: null # <py^2> | ||
| sigma_zz: null # <z^2> | ||
| sigma_pzpz: null # <pz^2> | ||
| sigma_xpx: null # <xpx> | ||
| sigma_xy: null # <xy> | ||
| sigma_xpy: null # <xpy> | ||
| sigma_xz: null # <xz> | ||
| sigma_xpz: null # <xpz> | ||
| sigma_pxy: null # <pxy> | ||
| sigma_pxpy: null # <pxpy> | ||
| sigma_pxz: null # <pxz> | ||
| sigma_pxpz: null # <pxpz> | ||
| sigma_ypy: null # <ypy> | ||
| sigma_yz: null # <yz> | ||
| sigma_ypz: null # <ypz> | ||
| sigma_pyz: null # <pyz> | ||
| sigma_pypz: null # <pypz> | ||
| sigma_zpz: null # <zpz> | ||
|
Comment on lines
+10
to
+37
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. How about using numbers for subscripts? EG:
Author
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 The reason that I used sigma_pypy instead of sigma_24 is because we have z_off and pz_off defined first. If we use sigma_24, should we change the first 6 centroid definition as off_1, off_2,... or mean_1, mean_2,...? |
||
| ``` | ||
|
|
||
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?
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.
If we don't assume a Gaussian distribution, then we might need more parameters than just sigmas for this element. On the other hand, without Gaussian assumption does allow more flexibility.