Difference between revisions of "Documentation of g4sbs"

From Hall A Wiki
Jump to: navigation, search
(How to run the program)
Line 59: Line 59:
 
|}
 
|}
  
This will launch an interactive g4sbs session which, depending on your GEANT4 build, might be a csh terminal, a Qt GUI, or something in between. The Qt GUI in particular has a complete help menu.
+
This will launch an interactive g4sbs session which, depending on your GEANT4 build, might be a csh terminal, a Qt GUI, or something in between. The Qt GUI in particular has a complete help menu:
  
[[Image:Example.jpg]]
+
[[Image:G4sbs_QtGUI.png|left|800px]]
 +
 
 +
<br clear="all">
 +
 
 +
To run g4sbs in batch mode, do one of the following:
 +
{| class="wikitable" style="background: #BFBFBF"
 +
|-
 +
| '''./g4sbs file.mac''' ''OR''
 +
|-
 +
| '''./g4sbs preinit.mac postinit.mac''',
 +
|}
 +
where each ".mac" file is a text file containing valid GEANT4 and/or g4sbs commands, used to configure the simulation. If g4sbs is invoked with one command-line argument as in the first example, it will execute all the commands in "file.mac" ''after'' G4RunManager::Initialize(). If g4sbs is invoked with two command line arguments as in the second example, it will execute the commands in "preinit.mac" ''before'' G4RunManager::Initialize() and the commands in "postinit.mac" ''after'' G4RunManager::Initialize(). As detailed below, this feature was added to make it possible for the user to disable optical photon production via the Cherenkov and Scintillation processes without re-compiling the code, and a long-standing GEANT4 bug prevents disabling of the scintillation process via the standard /process/inactivate command.
  
 
==g4sbs commands==
 
==g4sbs commands==
 +
 +
This section documents all g4sbs commands.
 +
 +
* '''/g4sbs/run nevent''': runs the simulation with nevent events. Note that this command forces building or rebuilding of the geometry, in contrast to '''/run/beamOn''', which does not re-initialize the G4 kernel. Presently, g4sbs will crash if the '''/g4sbs/run''' command is invoked more than once in a g4sbs session (bug is under investigation), meaning that configuration changes require separate simulation jobs.
 +
* '''/g4sbs/gemconfig''': expects one integer argument, defines BigBite GEM layout, possible values are 1 (default), 2, 3
 +
* '''/g4sbs/CDetconfig''': defines configuration of the coordinate detector. '''''This command is obsolete and currently has no effect'''''
  
 
==="Pre-init" vs "Post-init" commands===
 
==="Pre-init" vs "Post-init" commands===

Revision as of 08:25, 23 July 2015

Documentation page for g4sbs

This page is maintained by the UConn group (Andrew Puckett) and as of July 22, 2015 is based on the "uconn_dev" branch of g4sbs on github.

Getting the code and building the program

Prerequisites

  • Working ROOT installation. g4sbs is not yet compatible with root version 6!
  • Working GEANT4 installation. For the uconn_dev branch, g4sbs is only compatible with GEANT4 version 10.0 and later.
  • cmake (also required in any case to build GEANT4).

Note on GEANT4 build options:

  • GEANT4_INSTALL_DATA=ON is needed
  • On Mac OS X, I have built GEANT4 against Qt version 5.3.2. Newer versions of Qt seem to cause GEANT4 Qt-based visualization to crash.

Downloading the repository

The code is hosted on a github repository owned by JLab. To clone via ssh (preferred method on JLab batch farm), do:

git clone git@github.com:JeffersonLab/g4sbs.git

For this method to work, the ssh public key on the machine where you want to get the code must be added to your github account (see Guide to generating ssh keys and adding to your github.com account.)

Cloning the repository defaults to the "master" branch. This page documents the "uconn_dev" branch, which will soon be merged into the master branch. To change to the "uconn_dev" branch, do:

git checkout uconn_dev

Building the program

Create a "build" directory that is parallel to the "g4sbs" source directory (this is not strictly required, but the build directory must be separate from the "g4sbs" directory. The following instructions assume that "build" is parallel to "g4sbs":

mkdir build
cd build
cmake ../g4sbs
make

If successful, the g4sbs executable and several other files and folders will be created in the "build" directory.

How to run the program

g4sbs works in two different modes, batch mode or interactive mode. In interactive mode, visualization of the geometry and events is possible. To run in interactive mode, do

./g4sbs

This will launch an interactive g4sbs session which, depending on your GEANT4 build, might be a csh terminal, a Qt GUI, or something in between. The Qt GUI in particular has a complete help menu:

G4sbs QtGUI.png


To run g4sbs in batch mode, do one of the following:

./g4sbs file.mac OR
./g4sbs preinit.mac postinit.mac,

where each ".mac" file is a text file containing valid GEANT4 and/or g4sbs commands, used to configure the simulation. If g4sbs is invoked with one command-line argument as in the first example, it will execute all the commands in "file.mac" after G4RunManager::Initialize(). If g4sbs is invoked with two command line arguments as in the second example, it will execute the commands in "preinit.mac" before G4RunManager::Initialize() and the commands in "postinit.mac" after G4RunManager::Initialize(). As detailed below, this feature was added to make it possible for the user to disable optical photon production via the Cherenkov and Scintillation processes without re-compiling the code, and a long-standing GEANT4 bug prevents disabling of the scintillation process via the standard /process/inactivate command.

g4sbs commands

This section documents all g4sbs commands.

  • /g4sbs/run nevent: runs the simulation with nevent events. Note that this command forces building or rebuilding of the geometry, in contrast to /run/beamOn, which does not re-initialize the G4 kernel. Presently, g4sbs will crash if the /g4sbs/run command is invoked more than once in a g4sbs session (bug is under investigation), meaning that configuration changes require separate simulation jobs.
  • /g4sbs/gemconfig: expects one integer argument, defines BigBite GEM layout, possible values are 1 (default), 2, 3
  • /g4sbs/CDetconfig: defines configuration of the coordinate detector. This command is obsolete and currently has no effect

"Pre-init" vs "Post-init" commands

Setting up the magnetic field

Output ROOT tree structure

Useful links

Git Documentation Github.com homepage for g4sbs