FAQ

1. Does the TOPAS "single user license" also mean "single computer"?
2. What if I find that none of the TOPAS releases work on my specific Linux system?
3. What about Windows?
4. What is the relationship between TOPAS and Geant4?
5. I heard TOPAS was just for Proton Therapy. Does it now support other areas of medical physics?
6. How does the TOPAS Parameter Control System relate to Geant4 Commands and Macros?
7. Does TOPAS support Geant4's Boolean Solids?
8. What is the definition of History, Event, Run and Sequence

1. Does the TOPAS "single user license" also mean "single computer"?

The same user is welcome, and even encouraged, to use their single user license on multiple computers.
This is anticipated in the basic design of TOPAS. You may find it convenient to develop a TOPAS setup on your laptop or desktop, and then perform a higher statistics run on a separate cluster.
The TOPAS Parameter Control system gives you the confidence that you only have to copy the parameter files from the one system to the other, and you are assured that job will run exactly the same on the other system (aside from stochastic differences if the two systems are of different architectures).


2. What if I find that none of the TOPAS releases work on my specific Linux system?

We believe that the set of Linux builds we currently provide will cover most Linux systems.
In beta tests involving almost 300 users at 122 institutions, we found this set of builds to be sufficient.
Virtual machine systems can also make it easy for you to run one of the supported linux systems on some other system.
If it turns out that none of these builds work for you, we will work with you to resolve the issue.


3. What about Windows?

We have no plans to support running TOPAS natively on Windows. Because Windows is constantly changing and does not follow the common standards of the other systems, it takes too much effort to support this operating system. We prefer to invest our time in other improvements.
We note that even for Geant4 it has been very difficult to maintain support for Windows. However, Windows users can easily install TOPAS inside of a very efficient shell within Windows called Windows Subsystem for Linux. See the detailed guide for this installation technique on our page User Guides.


4. What is the relationship between TOPAS and Geant4?

TOPAS wraps and extends the Geant4 Simulation Toolkit. Geant4 was designed from the start to be the most flexible Monte Carlo simulation toolkit ever devised. Geant4's focus on flexibility has been a brilliant decision, leading the Geant4 user-base to grow over twenty years from its original home in High Energy Physics, to Aerospace, Medical, Nuclear and other fields.

Geant4's flexibility comes at a price that it can take a long time to learn how to use Geant4 and to build and test ones specific Geant4 application. The original Geant4 users could easily pay this price, as they were large HEP detector collaborations. They would detail a few of their collaboration members to spend several years developing a Geant4 application for their collaboration. For other fields, there has been the need to develop easier-to-use shared tools or applications layered on top of Geant4. TOPAS is one such tool.

TOPAS is layered neatly on top of Geant4. We provide Geant4 as a set of pre-built libraries within the TOPAS distribution so that you do not need to build Geant4 yourself. However we make no changes to this underlying Geant4.

Some of the TOPAS developers are themselves also members of the Geant4 collaboration. This dual role allows TOPAS to always be aware of best practices and newest developments within Geant4, and allows TOPAS to provide useful feedback to Geant4 as we make it easier for our users to try out a wide variety of what are, at the deepest level, Geant4 simulations.

Bottom line: TOPAS is a proud user of the Geant4 Simulation Toolkit. If you are getting good results from TOPAS, your success and ours is due to the Geant4 Collaboration.


5. I heard TOPAS was just for Proton Therapy. Does it now support other areas of medical physics?
TOPAS original development was focused on proton therapy since this was our funded NIH project, but our design decisions kept the door open to other application areas, and the underlying Geant4 Simulation Toolkit is appropriate for a very wide variety of medical physics applications. Protons are still our main area of expertise, but we now offer TOPAS to all medical physics researchers. 


6. How does the TOPAS Parameter Control System relate to Geant4 Commands and Macros?
While the Geant4 command system and its macro capabilities provide wonderful flexibility for many applications, the TOPAS Parameter Control System does not rely on Geant4 commands or macros.
Ours is a fundamentally different control system and is at the heart of TOPAS' innovative approach to repeatability, reliability and ease of use in research workflow (and even drives our bottom-up built-in support for 4D simulation).

Among our concerns with commands and macros for our user base is that command and macros tend to be order-dependent - the same Geant4 commands or macros issued in a different sequence can give different results. TOPAS Parameter Control Files are order-independent - you can change the order of lines in a control file and nothing will change in the simulation. This order-independence also drives our ability to support hierarchical systems of control files, allowing one to hold many variables constant while changing just a few from one project to another, and to reliably distribute development effort among different members of a research team. See our Publications and User Guide for more details on the TOPAS Parameter Control System.


7. Does TOPAS support Geant4's Boolean Solids?
You are free to use Geant4 Boolean solids, as you are free to use any Geant4 geometry class, in components that you write yourself from C++. However we do not support these from this kind of solid in our ready-made components.

Our thinking to omit them from the ready-made components is as follows:

There are almost always better ways to create your geometry from standard mother-daughter placement mechanisms, rather than Boolean solids (in seven years of modeling various systems in TOPAS, we've never seen a system that we couldn't instead model with standard placements).

Since standard placement is always more efficient for tracking navigation, we want to strongly encourage users, especially our newest users, to do their placements in this way. Boolean solids, for example, make work more difficult for the Geant4 Smart Voxel system, which lies at the heart of Geant4 navigation efficiency.

We don't want to make our geometry grammar more complicated than necessary.

Boolean solids often do not draw properly in Geant4 visualization (the only Geant4 visualization driver that is guaranteed to correctly represent boolean solids is RayTracer). This can make debugging them difficult.

A case for which you might think you need Boolean solids is a cylinder sticking through a hole in a plate and extending beyond the plate. One can solve this without Boolean solids as follows:

1) If the plate has a cylindrical outer profile, it can be represented just as a hollow tube, and there is no overlap then between this hollow tube and the cylinder passing through it.

2) If the plate has some other profile, the plate can be made without any hole, and the cylinder passing through it can be represented either as:

2a) If the cylinder doesn't need to be a single scoring volume,
 represent it as three adjacent cylinders, one within the plate (a daughter of the plate) and one on either side of the plate (daughters of the mother or group component that contains the plate).

2b) If the cylinder does need to be a single scoring volume,
use Layered Mass Geometry to let the cylinder overlap the plate but in a different, and higher, parallel world. This can also be a good solution if the cylinder needs to overlap many plates. Layered Mass Geometry is fully supported for all TOPAS components. See the user guide for details.

Both of these solutions will generally be faster than Boolean solids for Geant4 navigation, and are guaranteed to visualize correctly.


8. What is the definition of History, Event, Run and Sequence
History and Event mean the same thing.
Event is the term used in High Energy Physics. As this is the original target audience for Geant4, it is the term they use in the Geant4 documentation.
History is a term that, as far as I know, is specific to Medical Physics. So you don't see this term in the Geant4 documentation.
Both mean exactly the same thing.
As TOPAS is a medical physics code, we use the term History.

A History is the set of information about one or more initial particles, and then the entire behavior of these and any subsequently produced particles (secondaries, etc) and their energy deposits and interactions.

A Run is a collection of zero or more Histories, for which all Histories have the exact same TOPAS parameters (geometry, physics settings, magnetic and electric fields, etc.).

As a 4 dimensional code, TOPAS allows one more concept, the Sequence.
A Sequence is composed of zero or more Runs.
In a typical TOPAS 4 dimensional simulation, one or more parameters are varied between one Run and the next Run.

Additional Note 1) More about Histories and Runs:
During the Run, the only thing that changes from one History to the next is the random seed, but this in turn will cause different values to be sampled from physics distributions, primary particle spectra, etc. Also, if the particle source is a phase space file, each history will read different primary particles from the phase space file.

Additional Note 2) The number of Primary Particles in a single History could be Many, One or Zero:
A History is a somewhat arbitrary concept. If we think about the universe, there is only really one fundamental history, the Big Bang. But in the laboratory, the clinic or a Monte Carlo Particle Transport simulation, we choose a starting point for our History that matches our specific setup.
For a study of particle tracking in a high energy physics detector at the LHC, our History would start with all the particles created in the initial collision.
For a simple experiment scattering a particle off a foil, our History would start with a single primary particle.
For a clinical linac simulation where our particle source was a phase space file that had been recorded at the linac's jaws, our History would start with the set of zero or more particles that were recorded at that phase space surface as the result of some previous simulation that began from one primary electron striking the linac's target.