Saturday July 04, 2009 [04:05:31 UTC]

G4beamline

A "Swiss Army Knife" for Geant4, optimized for simulating beamlines.
print


Workaround for Mac OS X Update 10.5.7 breaking Open Inventor


Here (Known Bugs).

Major Update to the G4beamline User's Guide


New users and experienced users alike will probably benefit from reading the new sections:
  • 2.8.1 Additional Drawing Techniques.
Changing drawing scales, background color, drawing axes, cut-aways and sections, wireframe mode, filters.
  • 3. Important Values that affect the Validity and Accuracy of Simulations.
Physics list, tracking accuracy parameters, tolerances, thresholds, cuts, misc.
  • 7. Tips and Techniques.
Too many to list here. Includes suggestions as diverse as obtaining help, tuning bending magnets, and encoding information in event and track IDs.

The G4beamline User's Guide is available hereexternal link.

G4beamline now supports the making of movies


G4beamline release 1.16 includes support for generating a movie of the beam, with the camera on the reference particle, watching the beam particles "dancing" nearby. See the User's Guide chapter 8.3 for details. A very flexible user interface is provided, and most movie formats are supported (avi, mov, swf, ...).

This is a limited version of this feature. Known limitations:
  • Longitudinal variables (z, Pz) do not subtract the reference value, making them essentially useless.
  • Each user must install the necessary tool (ffmepg) on their own.
  • Multiple reference particles cannot be used; one reference is required.
  • Documentation is limited

Here is a Flash movie of Example1: Movieexternal link. This example is just a gaussian beam expanding in free space (the 4 virtualdetectors are not visible). Muons are blue and a handful of decay electrons and neutrinos are red and gray. This 10 second movie took 12 seconds of CPU time to produce.


The G4beamline Tutorial given at LEMC 2008 was videotaped by Fermilab Visual Media Services. part 1external link part 2external link



Click hereexternal link for a Flash video giving a simple example of using G4beamline.



G4beamline is now available for Windows XP and Vista, for Macintosh OS X (Intel), and for Linux (Intel).



General


G4beamline is a single-particle tracking program based on the Geant4external link simulation toolkit. It is specifically designed for the simulation of beamlines.

The key aspect of g4beamline is that the input file defining the simulation is not significantly more complicated than the problem being simulated (by contrast, any C++ simulation program will inherently be significantly more complicated than the problem) — G4beamline isolates the user from programming complexities. To make this possible, g4beamline does not give the user all of the power and flexibility of the underlying Geant4 toolkit; it does, however, provide enough flexibility to simulate many different systems that can be considered "beamlines" one way or another. For instance, there is a "cosmic-ray beam", and the notion of "beamline" is rather flexible. In use, one normally just lays out the beamline elements along the beam centerline, using "centerline coordinates" that rotate appropriately whenever needed (e.g. when a bending magnet is placed, or at a target to take a secondary beam off at an angle).

Note that no programming at all is required to simulate systems that use beamline elements already in g4beamline's repertoire. This includes bending magnets, quadrupoles, solenoids, materials of all types in the shape of boxes, cylinders, tubes, spheres, and polycones, pillbox RF cavities, and a few specialized elements for muon cooling. The distribution includes an executable program that runs on Windows Xp, Mac OS X (Intel), or on most modern versions of Linux (it has been tested to run on all RedHat-drived distributions since 7.1, including Fedora Core 1-8). Moreover, the visualization capabilities of Geant4 are available with no further effort, including visualization using OpenInventor, OpenGL, HepRep, DAWN, VRML, and other viewers (as long as your system supports X-windows with the GLX extension). The internal design of the program makes it relatively simple to add new commands and beamline elements to its repertoire (this does, however, require C++ programming).

A major limitation of g4beamline is that at present it does not simulate the performance of real-world detectors. It implements "virtual" detectors which sample the tracks that intersect them with the precision of a float, and measure all tracking variables (X,Y,Z,Px,Py,Pz,t,PDGid). Each virtualdetector generates an NTuple in the output file, which can be histogrammed with the appropriate program. NTuples can be written to Root or ASCII files, and the historoot program is included to make it easy o generate plots using Root. So g4beamline will tell you where the particles go, but won't give details of real-world detector outputs.

Another limitation of g4beamline is that at present it does not implement parameterized placements of volumes. These are required for a practical implementation of the many segments of modern detectors.

Please join and use our G4beamline forum. You can self-register using the LOGIN module at the left (valid email required), and immediately start posting to the forum.

Getting Started

G4beamline is distributed as a tarball for Linux/Intel, For Windows XP, and for Mac OS/Intel, available here. More details are contained in the G4beamline User's Guideexternal link, and in the README-*.txt files.

Linux (Intel)

If you intend to install and run G4beamline on your Linux desktop, and it is already running either KDE or Gnome (or a similar X Windows desktop), and the OpenGL and Motif extensions are already installed on your system, then this Quick Start Guide is for you. If you are doing something more complicated (e.g. you have a Windows desktop and use Exceed to connect to a Linux server), then this may help, but you'll probably need to read README-Linux.txt. These instructions assume you are using the bash shell; for other shells modify them accordingly.

The details are available in README-Linux.txtexternal link.

  • Download the G4beamline tarball from here - get the latest one available, these instructions assume it is named g4beamline-VERSION.tgz.
  • Unpack the tarball in your $HOME directory:
                tar -xzf g4beamline-VERSION.tgz
  • This creates a directory g4beamline-VERSION; cd there and run setup:
                cd g4beamline-VERSION
                ./setup
The setup script will assist you in adding the G4beamline programs into a directory in your PATH.
  • Try the interactive help:
                g4bl -
                ---- configuration information ----
                cmd: help
                ---- list of commands ----
                cmd: help beam
                ---- detailed description of the beam command ----
                cmd: ^C
  • Now move to the test directory and run the tests:
                cd $HOME/g4beamline-VERSION/tests
                ./all
This takes 5-10 minutes to run more than 50 tests. the output should end with "All Tests Passed".
  • Now move to the examples directory and look at the examples; try the following:
                cd $HOME/g4beamline-VERSION/examples
                # first visualize the system
                g4bl example1.in viewer=best
                # (play with the viewer, then ^C)
                # then generate NTuples for histogramming
                g4bl example1.in
                # and histogram the NTuples
                historoot g4beamline.root
                # (play with HistoRoot, then exit)
                ... similarly for the other examples ...


Files and Directories in the G4beamline Tarball
G4beamlineUsersGuide.pdfUser's Guide
HISTORY.txtThe development history of the program.
INSTALL.txtInstructions for installation and building g4beamline.
MagnetsDirectory containing some magnetic field maps used in the examples.
README.txtA general introduction to g4beamline.
WindowsDirectory containing some window profiles used in the examples.
binDirectory containing excutable programs and scripts.
guiDirectory containing Java classes and images for the graphical user interface
dataDirectory containing the physics data required by Geant4.
examplesDirectory containing some examples.
g4beamline.pptA PowerPoint® presentation about g4beamline.
help.txtA copy of the current help text.
ldd.txtA list of the shared objects required by g4beamline (for debugging the installation).
libDirectory containing required libraries.
packagesDirectory containing packages required for building g4beamline (contained in the -devel- tarball only.
sourceDirectory containing the g4beamline source (contained in the -devel- tarball only).
todolist.txtDecription of items still to be done.
viewer.defA file that controls how the different viewers are handled.


Windows XP and Vista

This release for Windows XP and Vista includes a standard Windows installer which puts shortcuts onto your desktop and into the start menu. It can also be used with the Cygwin command-line.

Macintosh OS X (Intel)


This release for Mac OS X supports only the recent Intel Processors. See README-MacOSX.txtexternal link. Installation and startup is essentially the same as for Linux (above), except Mac OS X is called "Darwin".

Documentation

Here is a recent G4beamline User's Guideexternal link. It is updated for each release and included in the execution tarball.

Here is internal documentation for all classes in G4beamline: Doxygenexternal link.

New Feature Requests

G4beamline is developed in a user-driven methodology that encourages rapid release cycles and user contributions. To request a new feature, simply join the G4beamline forum and post a message describing your request in as much detail as possible. here's the current list of things users have suggested (in no particular order):
  • Space charge computations
  • polarized physics
  • very low energy physics (< 100 eV)
  • electron emission from an arbitrary surface, weighted by E^n
  • permit use of local coordinates in virtualdetector
  • user-defined cuts per volume and per material
  • implement the general particle generator
  • implement importance sampling, and the ability for users to easily control cross-sections
  • add the new solids that Geant4 supports not in G4beamline
  • fringe fields in sector bends
  • let printf also print fields
  • implement a method to compute the total energy deposited in an object, and put it into an NTuple
  • configurable background color in viewers
  • asymmetric scaling in viewers (e.g. magnify x and y for long beamlines)
  • can the RF frequency in a ring be tuned so the reference particle has an integral number of cycles?
  • implement Fano and Tollestrup models for multiple scattering
  • automate small installation errors
  • permit the user to define solids directly and build up objects via boolean operations (etc.)


Download

The installer or tarball contains everything required to run the program, except for the prerequisites listed below, and some physics data needed for low energy physics processes (e.g. thermal neutrons — see the Geant4 website).

Please join and use our G4beamline forum. You can self-register using the LOGIN module at the left (valid email required), and immediately start posting to the forum.

G4beamline release 1.16 is now available (2-APR-2009).

This release uses Geant4 9.2.p01.

Prerequisites:
  • Java (1.5 or later), required for the GUI; g4beamline itself does not use Java
  • Root (5.12 thru 5.22), required to use HistoRoot or G4blmovie; g4beamline itself does not need Root installed (it includes the Root libraries it needs)
  • tcl (any version), required for the tests; g4beamline itself does not use tcl
  • Motif, OpenMotif, or LessTif on Linux and Mac

Known Bugs:
  • Mac OS X update 10.5.7 breaks the Open Inventor Viewer. A workaround is to download the old library libGL.1.dylibexternal link and move it into --InstallDirectory--/lib/Darwin-g++. This will be fixed in the next release.
  • When reading an input beam file containing secondary particles (parent != 0), G4beamline will sometimes abort. This bug was introduced in release 1.16. See Tom Roberts for a fix.
  • In BLFieldMap with a time dependence, if the E-factor is omitted then 1.0 is used rather than the B-factor as documented. So don't omit the 3rd column in the time series. This affects all releases, and will be fixed in the next release.
  • The LISAPhysicsList does not work.
  • In movies, the longitudinal variables z and Pz do not have the Reference values subtracted, making them essentially useless.

Major Changes from 1.15.3
  • The G4beamline User's Guide has been considerably enhanced. Experienced users should look at section 3 (Important Values that affect the Validity and Accuracy of Simulation), and section 7 (Tips and Techniques).
  • G4beamline can now generate movies, in which the camera sits on the reference particle, watching the beam particles dancing around nearby; see this Movieexternal link for an example.
  • in viewer mode, no output NTuple files (root, ASCII, FOR009.DAT, HistoScope) are written (they used to be truncated).
  • TrackID and EventID are now properly preserved from input beam files.
  • The tracker command can now fit tracks that don't hit every trackerplane.
  • Additional visualization techniques are now documented (different x-, y-, and z-scales, background color, drawing axes, cut-away planes, etc.) in section 2.8.1.
  • Comma-separated lists of floats can now use expressions
There are also numerous bug fixes and improvements.

Linux

1. cd to your HOME directory (or other directory into which you want to install)
2. download g4beamline-1.16-Linux-g++.tgzexternal link
3. tar -xzf g4beamline-1.16-Linux-g++.tgz
4. rm g4beamline-1.16-Linux-g++.tgz (optional clean-up)
5. cd g4beamline-1.16-Linux-g++
6. ./setup
The setup script will guide you through adding the G4beamline programs into a directory in your PATH.

The programs are:
  • g4bl — runs g4beamline
  • g4blgui — runs the same GUI used by default on Windows
  • historoot — provides a GUI to the Root histogramming capabilities
  • g4blmovie — generates a movie

Mac OS X 10.4 and 10.5 (Intel)

1. cd to your HOME directory (or other directory into which you want to install)
2. download g4beamline-1.16-Darwin-g++.tgzexternal link
3. tar -xzf g4beamline-1.16-Darwin-g++.tgz
4. rm g4beamline-1.16-Darwin-g++.tgz (optional clean-up)
5. cd g4beamline-1.16-Darwin-g++
6. ./setup
The setup script will guide you through adding the G4beamline programs into a directory in your PATH.

The programs are:
  • g4bl — runs g4beamline
  • g4blgui — runs the same GUI used by default on Windows
  • historoot — provides a GUI to the Root histogramming capabilities
  • g4blmovie — generates a movie

Note the G4beamline viewers all use X-windows, but the GUIs (g4blgui, historoot) run native Mac OS (i.e. quartz). This means that to use a viewer you must run g4bl from an Xterm window, which you get by running the X-Windows application.

Windows

G4beamline-1.16.msiexternal link This is an installer — just download and double-click it and it will install itself in the usual way, including putting shortcuts onto your desktop and into the Start menu. If you have installed Cygwin, you can also use the command-line programs in the same way as on Linux and Mac OS. Note you cannot run the tests without Cygwin (at present they are command-line only).

Source

First download the release for your platform and install it as above, then un-tar this tarball g4beamline-1.16-source.tgzexternal link into the top g4beamline-1.16-* directory. See BUILD.txt for a detailed description of how I build G4beamline on all 3 platforms.


G4beamline release 1.15.3 is now available (8-JAN-2009).

[+]

G4beamline release 1.15.1 is now available (14-Aug-2008).

[+]

G4beamline release 1.15 is now available (2-Aug-2008).

[+]

G4beamline release 1.14.3 is now available (21-JULY-2008)

[+]

G4beamline release 1.14b is now available (20-JUNE-2008).

[+]

G4beamline release 1.14 is now available (1-MAR-2008).

[+]

G4beamline release 1.09 has been withdrawn.

[+]

Support

Please join and use our G4beamline forum. You can self-register using the LOGIN module at the left (valid email required), and immediately start posting to the forum.


Example


A simple example input file is example1.in, a simulation of a simple Gaussian beam going into 4 virtual detectors. As you can see, there are a handful of general definitions (the physics and beam commands), and then you just define the elements you need (box Beam, virtualdetector Det) and place them where they go (the 5 place commands). With the included HistoScope program, this is all that is needed to visualize the system, and to generate the histograms below (and, of course, many more).
*       example1.in  4/2/03 TJR
*
* Simple example g4beamline input file:
*       a 200 MeV mu+ Gaussian beam is tracked through 1-meter drift
*       spaces into four detectors

# QGSP is the "default" physics use-case for High Energy Physics
physics QGSP

# the beam is nominally headed in the +Z direction
beam gaussian particle=mu+ nEvents=1000 beamZ=0.0 \
        sigmaX=10.0 sigmaY=10.0 sigmaXp=0.100 sigmaYp=0.100 \
        meanMomentum=200.0 sigmaP=4.0 meanT=0.0 sigmaT=0.0

# BeamVis just shows where the beam comes from
box BeamVis width=100.0 height=100.0 length=0.1 material=Vacuum color=1,0,0
place BeamVis z=0

# define the detector
virtualdetector Det radius=1000.0 color=0,1,0

# place four detectors, putting their number into their names
place Det z=1000.0 rename=Det#
place Det z=2000.0 rename=Det#
place Det z=3000.0 rename=Det#
place Det z=4000.0 rename=Det#


Here is the OpenInventor graphics system displaying this example. Note the red BeamVis and the four green Det-s, plus three blue mu+ tracks. In the real viewer you can use the mouse to zoom, pan, and rotate the image in real time, and select wireframe mode so you can look inside solid objects.




Here is a set of histograms generated by HistoScope from this example. In the HistoScope program you can interactively use the mouse to select an NTuple, select which field(s) of the NTuple to plot, create new variables in terms of the NTuple fields, zoom and pan the plot axes, and apply cuts. You can interactively vary the cut values and watch the effect on the plot in real time, and can combine multiple plots into a single image, as was done here. There are many types of plots, including the simple histograms shown here.



List of attached files
  name desc uploaded size >
1 : 332 icon example1.swf Example1 movie. 18-Mar-2009 [20:27 UTC] by tjrob 963.10 Kb 46