A follow-on element for CSRCSBEND that applies the CSR wake over a drift.
Parallel capable? : yes
GPU capable? : yes
Back-tracking capable? : no
Parameter Name | Units | Type | Default | Description |
L | M | double | 0.0 | length |
ATTENUATION_LENGTH | M | double | 0.0 | exponential attenuation length for wake |
DZ | double | 0.0 | interval between kicks |
|
N_KICKS | long | 1 | number of kicks (if DZ is zero) |
|
SPREAD | short | 0 | use spreading function? |
|
USE_OVERTAKING_LENGTH | short | 0 | use overtaking length for ATTENUATION_LENGTH? |
|
OL_MULTIPLIER | double | 1 | factor by which to multiply the overtaking length to get the attenuation length |
|
CSR | short | 1 | do CSR calcuations |
|
USE_SALDIN54 | short | 0 | Use Saldin et al eq. 54 (NIM A 398 (1997) 373-394 for decay vs z? |
|
SALDIN54POINTS | long | 1000 | Number of values of position inside bunch to average for Saldin eq 54. |
|
SALDIN54NORM_MODE | STRING | peak | peak or first |
|
SPREAD_MODE | STRING | full | full, simple, or radiation-only |
|
WAVELENGTH_MODE | STRING | sigmaz | sigmaz or peak-to-peak |
|
BUNCHLENGTH_MODE | STRING | 68-percentile | rms, 68-percentile, or 90-percentile |
|
SALDIN54_OUTPUT | STRING | NULL | Filename for output of CSR intensity vs. z as computed using Saldin eq 54. |
|
USE_STUPAKOV | short | 0 | Use treatment from G. Stupakov’s note of 9/12/2001? |
|
STUPAKOV_OUTPUT | STRING | NULL | Filename for output of CSR wake vs. s as computed using Stupakov’s equations. |
|
STUPAKOV_OUTPUT_INTERVAL | long | 1 | Interval (in kicks) between output of Stupakov wakes. |
|
SLICE_ANALYSIS_INTERVAL | long | 0 | interval (in kicks) of output to slice analysis file (from slice_analysis command) |
|
CSRDRIFT continued
A follow-on element for CSRCSBEND that applies the CSR wake over a drift.
Parameter Name | Units | Type | Default | Description |
LINEARIZE | short | 0 | use linear optics for drift pieces? |
|
LSC_INTERPOLATE | short | 1 | Interpolate computed LSC wake? |
|
LSC_BINS | long | 0 | If non-zero, include LSC with given number of bins. |
|
LSC_LOW_FREQUENCY_CUTOFF0 | double | -1 | Highest spatial frequency at which low-frequency cutoff filter is zero. If not positive, no low-frequency cutoff filter is applied. Frequency is in units of Nyquist (0.5/binsize). |
|
LSC_LOW_FREQUENCY_CUTOFF1 | double | -1 | Lowest spatial frequency at which low-frequency cutoff filter is 1. If not given, defaults to LOW_FREQUENCY_CUTOFF1. |
|
LSC_HIGH_FREQUENCY_CUTOFF0 | double | -1 | Spatial frequency at which smoothing filter begins for LSC. If not positive, no frequency filter smoothing is done. Frequency is in units of Nyquist (0.5/binsize). |
|
LSC_HIGH_FREQUENCY_CUTOFF1 | double | -1 | Spatial frequency at which smoothing filter is 0 for LSC. If not given, defaults to HIGH_FREQUENCY_CUTOFF0. |
|
LSC_RADIUS_FACTOR | double | 1.7 | Radius factor for LSC computation. |
|
GROUP | string | NULL | Optionally used to assign an element to a group, with a user-defined name. Group names will appear in the parameter output file in the column ElementGroup |
|
This element has a number of models for simulation of CSR in drift spaces following CSRCSBEND elements. Note that all models allow support splitting the drift into multiple CSRDRIFT elements. One can also have intervening elements like quadrupoles, as often happens in chicanes. The CSR effects inside such intervening elements are applied in the CSRDRIFT downstream of the element.
For a discussion of some of the methods behind this element, see M. Borland, “Simple method for particle tracking with coherent synchrotron radiation,” Phys. Rev. ST Accel. Beams 4, 070701 (2001).
N.B.: by default, this element uses 1 CSR kick (N_KICKS=1) at the center of the drift. This is usually not a good choice. I usually use the DZ parameter instead of N_KICKS, and set it to something like 0.01 (meters). The user should vary this parameter to assess how small it needs to be.
The models are as following, in order of decreasing sophistication and accuracy:
This model has the most sophisticated treatment for intervening elements of any of the models. For example, if you have a sequence CSRCSBEND-CSRDRIFT-CSRDRIFT and compare it with the sequence CSRCSBEND-CSRDRIFT-DRIFT -CSRDRIFT, keeping the total drift length constant, you’ll find no change in the CSR-induced energy modulation. The model back-propagates to the beginning of the intervening element and performs the CSR computations starting from there.
This is the slowest model to run. It uses the same binning and smoothing parameters as the upstream CSRCSBEND. If run time is a problem, compare it to the other models and use only if you get different answers.
The “Saldin 54” and “overtaking-length” models rely on computation of the bunch length, which is controlled with the BUNCHLENGTH_MODE parameter. Nominally, one should use the true RMS, but when the beam has temporal spikes, it isn’t always clear that this is the best choice. The choices are “rms”, “68-percentile”, and “90-percentile”. The last two imply using half the length determined from the given percentile in place of the rms bunch length. I usually use 68-percentile, which is the default.
CWIGGLER