Files
geant4/examples/extended/biasing
2016-06-08 16:57:27 +02:00
..
2016-06-08 16:57:27 +02:00
2016-06-08 16:57:27 +02:00
2016-06-08 16:57:27 +02:00
2016-06-08 16:57:27 +02:00
2016-06-08 16:57:27 +02:00
2016-06-08 16:57:27 +02:00

                        Examples for event biasing
                        --------------------------

This directory includes example applications to demonstrate the usage of
different biasing techniques supported in Geant4, or possible from the 
user applications.


General remark to biasing
-------------------------
The tools provided for importance sampling (or geometrical splitting and
Russian roulette) require the user to have a good understanding of the 
physics in the problem. This is because the user has to decide which 
particle types have to be biased, define the regions (physical volumes, 
replicas) and assign importances to that regions. If this is not done 
properly it can not be expected that the results describe a real 
experiment. The examples given here only demonstrate how to use the tools
technically. They don't intend to produce physical correct results.

General remark to scoring
-------------------------
A interface G4VScorer is provided for the user. The user may create his 
own class to perform the desired scoring. The user defined class 
therefore should inherit from the interface G4VScorer. 
An example of an implementation of a scorer is G4Scorer
which may be found in source/event. 
The scoring in these examples is done with a G4Scorer.
Importance sampling and scoring does not support all options of the 
Geant4 geometry. It only supports physical volumes and simple replicas.
To identify a physical volume (or replica) objects of the class
G4GeometryCell are used. Scoring is done according to these
cells and importance values may be assigned to them.
When scoring is done in a "scoring" or in a "importance" geometry
special action has to be taken to prevent counting of
"collisions" with boundaries of the tracking geometry as interactions.
This is differently handled when scoring is done in the tracking geometry.

--> G4GeometryCell must not share boundaries with the world volume! <--

Known problems
--------------
In the following scenario it can happen that a particle is not
biased and it's weight is therefore not changed even if it crosses
a boundary where biasing should happen.
The importance sampling creates particles on boundaries 
between volumes. If the GPIL method of a physical process returns 
0 as step length for a particle on a boundary and if the PostStepDoIt of
that process changes the direction of the particle to go back in the 
former volume the biasing won't be invoked. 
This will produce particles with weights that do not correspondent to the
importance of the current volumes.

Further information:
--------------------
Short description of importance sampling and scoring:
http://dressel.home.cern.ch/dressel/biasscore/Sampling.html

Example B01
===========

The example uses importance sampling and scoring. Importance values are
defined according to the mass geometry. Scoring is also done in according
to the mass geometry.


Example B02
===========

This example uses a parallel geometry to define G4GeometryCell objects
for scoring and importance sampling. In addition it customizes
the scoring. In this example one scorer creates a histogram.

Compiling and running
---------------------
To compile this example you need AIDA 3.0 installed. To link 
and run it you need a AIDA compliant analysis package. The
GNUmakefile of this example shows how to use Anaphe as analysis
package.
The following list shows what to do if you are at CERN using rehat61
and gcc-2.95.2:
use the shell /bin/sh
1) set the following variables (for example):
ANAPHETOP=/afs/cern.ch/sw/lhcxx
  (or if installed in opt: /opt/Anaphe/5.0.1)
AIDA_DIR=/afs/cern.ch/sw/contrib/AIDA/3.0/src/cpp
  (or if installed in opt: /opt/AIDA/3.0.0/3.0.0/AIDA/3.0/src/cpp)
export ANAPHETOP AIDA_DIR

2) Source the script:
. $ANAPHETOP/share/LHCXX/5.0.1/scripts/setupAnaphe

3) and add to lirary path the following directories:
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB02

Now you should be able to run gmake and to run exampleB02.

The example stores the plot in the file b02.hbook.
To look at the histogram using lizard you also may use Anaphe 5.0.1
http://anaphe.web.cern.ch/anaphe/index2.html.

Files in B02:
B02plot.py: a simple script that may be executed from a lizzard session
   to show the plot created by running the exampleB02.


Example B03
===========

This example uses Geant4 and in particular importance sampling and
scoring through python. It also creates a histogram.

Compiling and running
---------------------
  To compile and run this example you need a python2.2 installation
see http://www.python.org.
  Please set the environment variable "PYTHON_DIR" to your python2.2 
installation e.g:
using afs:
to /afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/PublicDomainPackages/2.0.0
or if Anaphe is installed in opt /opt/Anaphe/5.0.1/specific/redhat72/gcc-2.95.2/PublicDomainPackages/2.0.0.

  Please add to your environment variables
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}:${G4WORKDIR}/tmp/${G4SYSTEM}/exampleB03
  and setenv PYTHONPATH $LD_LIBRARY_PATH.

 You may run gmake now.
 You should be able to execute the file B03RunApplication.py from your 
shell now.

  If you have Anaphe 5.0.1 installed you may also execute the file
B03RunApplication.py from a lizard session. This will create a 
histogram. Therefore you may follow the steps 1 and two
in the above exampleB02.
  See http://anaphe.web.cern.ch/anaphe/index2.html.

Files in B03;
env.csh: Is an example script to set the environment. It should work 
   if you are at CERN and if you are on a redhat6.1 system.
buildit.sh: You don't need to use this file. Only if you want to
   make changes to the python interface defined in B03App.i you may need 
   to use it. 
B03Application.py: Is a example class utilizing importance sampling
   and scoring using python.
B03RunApplication.py: Is a python script running the example. 
   It may be executed from the shell or in a python or lizard
   session. In case it is executed from lizard it creates a plot
   with a histogram.
B03App.py: Is created by swig using the buildit.sh script.