10.22 CSRDRIFT—A follow-on element for CSRCSBEND that applies the CSR wake over a drift.

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 UnitsType 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 STRINGpeak

peak or first






SPREAD_MODE STRINGfull

full, simple, or radiation-only






WAVELENGTH_MODE STRINGsigmaz

sigmaz or peak-to-peak






BUNCHLENGTH_MODE STRING68-percentile

rms, 68-percentile, or 90-percentile






SALDIN54_OUTPUT STRINGNULL

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 STRINGNULL

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 UnitsType 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 double1.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:

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