Simulation software for medical linacs

learning resources

Educational Materials

If you are interested in learning more about medical linear accelerator technology and physics, consider attending the ATec course offered at the University Health Network, in Toronto, Canada. ATec, which stands for “Accelerator Technology”, uses SIMAC as a reference.

Another course worth considering, and which goes much deeper into accelerator physics is the US Particle Accelerator School, which is run by a consortium of Universities and laboratories of the US Department of Energy and US National Science Foundation.

A tool for teaching MRI physics as been developed at Georgia Regents University.
A tool for learning Monte Carlo simulation has been developed at SLAC, and is available here.

User Manual

  1. Obtain a download package for Windows of Mac at These are zipped files with an executable file and many other ancillary files.
  2. For Windows users, unzip the downloaded file, and place the entire package at a convenient location. If the “Extract All” command gives errors or warnings, use 7-zip instead.
  3. Once unzipped, open the SIMAC directory and find the executable file called exe. Leave all other files and directories in place. Double click the simacMain.exe file to launch SIMAC.
  4. For Mac users, the download process will automatically unzip the files. Just move the package to an appropriate location, and double click the simacMain icon to launch SIMAC.

The following images are generated with the Windows version of SIMAC. To our knowledge, the Mac version should behave in the exact same manner.

Launch SIMAC. The following screen should appear:


The first step is to turn on the radiation beam and choose an energy and pulse repetition rate (PRF).



Once the machine operating mode (Energy and PRF) chosen, the program will populate pre-set values in the linac configuration.


SIMAC is now running. There are 3 sections to the control screen:


The following table lists the parameter name and their meaning:

RF Freq Frequency in MHz of the RF input into the klystron
RF In RF power that is output from the RF driver and then input to the klystron (W)
Kly V Klystron pulse voltage (kV)
RF Out RF power that is output from the klystron and then input to the accelerating waveguide (MW)
P refl Power reflected from the accelerating waveguide back towards the klystron.
Width Accelerator pulse time duration (s) for Klystron or Accelerator screens
Gun V The accelerating potential for the electron gun.
Grid V The grid voltage on the electron gun (not enabled in this version of SIMAC)
BMag I Bending magnet current (A)
Gun I Accelerator waveguide gun current (mA)
Tar I Target current (mA)
Pos R Position steering coil current (Radial or in-plane direction)
Pos T Position steering coil current (Transverse or cross-plane direction)
Ang R Angle steering coil current (Radial or in-plane direction)
Ang T Angle steering coil current (Transverse or cross-plane direction)
Jaw R Jaw size for radial (in-plane) direction (cm)
Jaw T Jaw size for transverse (cross-plane) direction (cm)
Depth Depth of measurement plane for treatment head screen

The physical meaning of these parameters can be found in ANDERSON, Rhys et al. Simulation of a medical linear accelerator for teaching purposes. Journal of Applied Clinical Medical Physics, [S.l.], v. 16, n. 3, may. 2015. ISSN 15269914. Available at:

Any of the parameters in section 3 can be adjusted, either by moving the slider or clicking the “increase” or “decrease” arrows:



This example is for the Klystron Voltage adjustment. Other parameters are adjusted in the same way.


For Mac users, there is a small bug in that these windows do not open initially on the first try. A workaround is to re-click on the simacMain icon in the Mac Dock as shown below after clicking on the “Klystron”, “Accelerator” or “Treatment Head” buttons. This is only necessary for the opening of the first window. These windows open normally after that.



This screen displays several additional parameters related to the klystron’s operating point:

Kly I Klystron current (A)
Efficiency Calculated as: 100*RFOut/Pin,

where Pin = KLY V * KLY I

Gain Calculated as 10*log10(RF Out/RF In)
PFN V Pulse Forming Network Voltage (not accurate in this version)
HVPS I High Voltage Power Supply Current (not accurate in this version)


This screen also displays the Klystron Characteristic curve on the bottom right. This curve is derived from Equation 1 in Anderson et al: JACMP, vol 16, No 3:


This screen displays several additional parameters related to the linac’s operating point:

Efficiency Calculated as: 100*Beam Current*Energy/RF,

where the beam current is taken from the Beam Characteristic curve, shown on the bottom right

Beam Power Calculated as Beam current * Beam Energy, where the beam current is taken from the Beam Characteristic curve, shown on the bottom right
Energy The energy of the electron beam striking the target.


This screen also displays the Beam Characteristic curve on the bottom right (also known as the accelerator’s load line). This curve is derived from Equation 2 in Anderson et al: JACMP, vol 16, No 3:


This screen displays parameters related to dose transport in the treatment head. Steering parameters from the main screen are copied onto this screen, as well as beam energy and dose rate. The beam position and angle on the target are displayed on the bottom left. On the bottom right, the resulting beam symmetry in both the Radial (in-plane) and transverse (cross-plane) directions are shown. The effect of beam steering can be investigated by adjusting the steering coil currents on the main screen (Pos R, Pos T, Ang R, Ang T).

Both the “Klystron” and “Accelerator” windows include oscilloscope simulators to simulate viewing typical linac service signals. For instance, in the “Accelerator” window, the RF power Gun current and target current signals are available for oscilloscope viewing.




SIMAC has several teaching resources that are designed to help the teaching process. These are resources allow the student and teacher to:

  1. Save a particular linac state to be re-loaded later.
  2. Save all the linac configuration changes during a SIMAC session.
  3. Create an error condition on the linac that can be loaded at a later SIMAC session, and is hidden for the user.

These options are available from the File menu within SIMAC:


Learning Resources

To experience SIMAC yourself