DUE November 30

Synchrotron Tune vs. Amplitude

The Alternating Gradient Synchrotron (AGS) at Brookhaven National Laboratory operates at a top energy of 24 GeV (Kinetic Energy) and is used as the injector to the Relativistic Heavy Ion Collider (RHIC). Its injection energy was designed to be 200 MeV, below its transition energy. We can use the following parameters for the AGS at its design injection energy:

\(V\) = 0.3 MV; \(h\) = 12; \(E_s\) = 1.138 GeV; \(\gamma_t\) = 8.5

  1. For beam contained within a stationary bucket at this energy, what synchronous phase must be chosen?

  2. Create a function which accepts a vector of \((\phi,\Delta E/E_s)_i\) and returns the vector \((\phi,\Delta E/E_s)_f\) corresponding to one turn about the synchrotron, say at the exit of the RF acceleration system, given the above parameters.

  3. Take a proton that starts with initial \(\Delta E/E_s\) = 0 and an initial phase \(\phi = \pi/20\). Make a plot in \(\phi-\Delta E/E_s\) phase space of the particle motion over 2000 turns.

  4. R has a built-in Fast Fourier Transform (FFT) function that allows one to analyze data for frequency content. The frequency (or, in this case, the “synchrotron tune”) of the particle’s motion can be estimated by looking at what tune value corresponds to the peak of the FFT coefficients. The following is a code chunck that creates a function to perform an FFT on a set of data (x), and finds the value of the peak coefficient:

# Fast Fourier analyze the data to extract a "tune"
fftpeak = function(x){
   zz_x =  abs(fft(x))
   f_x  = c(1:length(x))/length(x)
   f_xfft = f_x[ max.col( t( cbind( f_x, zz_x) ) )[2] ]
   nu_x = min(f_xfft, (1-f_xfft))
   nu_x
}
ntr = c(1:500)
xtrial = cos(2*pi*0.3812*ntr)  #  ie., cos(2pi * tune * n)
fftpeak(xtrial)
## [1] 0.384

(Try varying the number of points used to see how close the FFT frequency comes to the original value.)

  1. Next, to get an accurate result, track a particle through 16000 turns. Track for various initial \(\phi_0\)’s from \(5^\circ\) toward \(180^\circ\) and keep a tally of the synchrotron tune.

Island Hopping

Let’s model the trajectory of a particle in an otherwise ideal storage ring but with a single sextupole present. The ideal betatron tune is set to \(\nu\) = 0.420809. As shown in class, the mapping of phase space variables for a single turn around the ring can be expressed with the following function:

cn = cos(2*pi*nu)
sn = sin(2*pi*nu)
SextTrack = function(U){
   ac = U[1]
   as = U[2]
   U[1] =  ac*cn + (as-ac^2)*sn
   U[2] = -ac*sn + (as-ac^2)*cn
   return(U)
}
  1. Augment the above code so as to track a single particle for 1000 turns and plot the trajectory in \(x,p\) phase space (where \(p\equiv \beta x+\alpha x'\)). Try the following initial coordinates:
x0 = 0
p0 = c(0.05,0.1,0.2,0.5,1.0,1.4)

Hint: For the sake of comparison, make a series of plots, with equal axes (use asp=1) and arrange in a grid using the par(mfrow=c(3,2)) function in R prior to plotting, where c(3,2) indicates there are three rows of two plots each. Naturally, you may wish to select different numbers for these. (If you use ggplot2, etc., there are other ways of setting up a grid; but par works in base R.)

  1. We now wish to simulate an experiment, where we take a beam of particles and “kick” the beam with a kicker magnet to explore the phase space:

Make plots of xave vs. n for the following conditions:

plot sd(x)=sd(p) kck
1 0.05 0.05
2 0.05 0.10
3 0.05 0.20
4 0.10 0.20
5 0.10 0.50
6 0.10 1.00
7 0.20 0.50
8 0.20 1.00
9 0.20 1.40
  1. For condition (9), take the vector of data containing the mean as a function of turn number (xave above) and select only the last several hundred turns. (Note: This can be done in R by the following command: xend = xave[200:1000], for example.) Perform an FFT on this subset of data and comment on the answer. How does the frequency measured coincide with the phase space for this set of conditions?