7.67 touschek_scatter
- type: setup/action command.
- function: Simulate Touschek scattering process at each TSCATTER element based on Monte
Carlo method. The local scattering rate is calculated by using Piwinski’s formula and from
the Monte Carlo simulation. Scattered particles can be tracked through the entire beamline
for one or more passes, and beam loss information is recorded.
- sequence: must follow run_setup and twiss_output.
- can use parallel resources (Pelegant)
- Command syntax, including use of equations and subcommands, is discussed in 7.2.
- notes:
- A momentum aperture file is required previous using this command. It should contain
momentum aperture at least at each TSCATTER element and can be obtained by running
momentum_aperture command.
- The simulation can be done for a Gaussian distributed beam or an arbitrary particle
distribution given by histogram file(s) (See MHISTOGRAM).
- When using histogram file as input, it should contain data at least at each TSCATTER
element. This can be done by inserting a MHISTOGRAM element following each TSCATTER
element. With lumped=1 option, a multi page SDDS file will be output automatically
or you can combine individual output file into a multi page SDDS file before using this
command.
- The input particle distribution can be given in 3 ways: 2D(x-x’)+2D(y-y’)+2D(dt-dp); or
4D(x-x’-y-y’)+2D(dt-dp); or 6D(x-x’-y-y’-dt-dp); base on user’s choice. We recommend
to use lower “order” histogram table if the original particle number which used to
generate these table is not large enough.
- The emit_*, emit_dp and sigma_s is always required for running the simulation (Used
for Piwinski’s rate). Use closed value when simulate a non-Gaussian distributed bunch.
&touschek_scatter
double charge = 0;
double frequency = 1;
double emit_x = 0;
double emit_nx = 0;
double emit_y = 0;
double emit_ny = 0;
double sigma_dp = 0;
double sigma_s = 0;
double distribution_cutoff[3] = {3, 3, 3};
double Momentum_Aperture_scale = 0.85;
STRING Momentum_Aperture = NULL;
STRING XDist = NULL;
STRING YDist = NULL;
STRING ZDist = NULL;
STRING TranDist = NULL;
STRING FullDist = NULL;
STRING bunch = NULL;
STRING loss = NULL;
STRING distribution = NULL;
STRING initial = NULL;
STRING output = NULL;
long nbins = 100;
double sbin_step = 1;
long n_simulated = 5000000;
double ignored_portion = 0.01;
long i_start = 0;
long i_end = 1;
long do_track = 0;
long match_position_only = 0;
long overwrite_files = 1;
long verbosity = 0;
&end
- charge — Bunch charge in Coulombs. May not be zero.
- frequency — Bunch repetition frequency in Hz. The product of the charge and frequency
gives the average current in Amps.
- emit_x, emit_y — RMS emittance for the x and y planes. Ignored if RMS normalized
emittance is nonzero.
- emit_nx, emit_ny — RMS normalized emittance for the x and y planes.
- sigma_dp, sigma_s — Rms fractional momentum spread, σδ, and rms bunch length.
- distribution_cutoff — The number of sigmas to use in each plane for Gaussian beam.
- Momentum_Aperture — Input file containing the estimated momentum aperture at each
TSCATTER element. This can be obtained from the momentum_aperture command in a separate
run. (If using the parallel version to obtain the momentum aperture, it will be necessary to use
output_mode=0 or else reorganize the data if output_mode\neq 0. Also, it will be necessary
to use sddssort to sort the data by the s column.)
- Momentum_Aperture_scale — This value times the aperture value from Momentum_Aperture
file sets up the limit on δm in the simulation. Only particles that have δ > δm will be kept
for tracking. And the scattering rate is calculated at this value.
- XDist, YDist, ZDist — Input filename of 2D histogram table of X, Y, and Z plane. X and Y
are ignored when TranDist or FullDist is present.
- TranDist — Input file name of the 4D histogram table of transverse plane. Has to be used
together with ZDist.
- FullDist — Input file name of the 6D histogram table. If present, all other tables are ignored.
- bunch — The (incomplete) name of an SDDS file to which the phase-space coordinates of
the simulated scattered particles are to be written. Recommended value: “%s-%03ld.bun”. If
“%03ld” or the equivalent is not provided then only the last simulated bunch is kept (one
bunch for one TSCATTER element).
- loss — The (incomplete) name of an SDDS file to which the original and final phase-space
coordinates of the lost simulated scattered particles are to be written. Recommended value:
“%s-%03ld.los”. Used together with do_track = 1.
- distribution — The (incomplete) name of an SDDS file to which the one-dimensional
histogram of simulated scattered particles are to be written. Recommended value:
“%s-%03ld.dis”
- initial — The (incomplete) name of an SDDS file to which the one dimension histogram of
simulated particles before scattering are to be written. Recommended value: “%s-%03ld.ini”
- output — The (incomplete) name of an SDDS file. The average loss rate (particles per
second) over a step size of sbin_step at location s is written to this file. Recommended value:
“%s-%03ld.out”
- sbin_step — Bin size for loss rate summary output to the output file.
- nbins — Number of bins used for the distribution and initial table.
- n_simulated — The total number of simulated scattered particles with δ > δm. Choosing
too small a value will cause unreliable results. Note: use an integer number here. A number
such as 5E6 sometimes will cause you trouble.
- ignored_portion — Fraction of the total scattering rate ignored in tracking. Using this
parameter will greatly increase the tracking speed. For example, if the total loss rate is 50%
of the total scattering rate, then ignoring for tracking purposes 5% (0.05) of the scattered
particles will cause a ~10% error, but the simulation is greatly sped up.
- i_start, i_end — The simulation will be done from the i_startth to the i_endth TSCATTER
element along the beamline.
- do_track — If non-zero, scattered particles will be tracked from their generation location for
n_passes (given by run_control). If non-zero, the run_control command must proceed the
|touschek_scatter|command. The loss property can be analysed using output or loss.
- match_position_only — If non-zero, then matching of the momentum aperture data to the
lattice is done using the position data only (s column), rather than the element names. Can
be helpful if errors appear about files ending prematurely or data not matching.
- overwrite_files — If non-zero, then output files will be overwritten. If set to zero, then
when output files are found, the corresponding computations are skipped. This can be used
to restart a Touschek scattering run, provided the output filenames are index (e.g., of the
form “%s-%03ld.los” rather than “%s.los”.)
Note: If using Pelegant to compute the momentum aperture with output_mode=1, it is
necessary to first run the script reorganizeMmap to put the data into the form needed by
touschekLifetime.