173 lines
6.9 KiB
Plaintext
173 lines
6.9 KiB
Plaintext
$Id: README,v 1.11 2004/05/29 10:02:08 mantero Exp $
|
|
-------------------------------------------------------------------
|
|
|
|
=========================================================
|
|
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
|
=========================================================
|
|
|
|
xray_fluorescence
|
|
-----------------
|
|
XrayFluo is an advanced Geant4 example based on a realistic simulation of
|
|
a test beam.
|
|
The aim of the test beam was to characterize the response function of various
|
|
X-Rays detectors used to measure fluorescence emissions from samples composed
|
|
of different materials irradiated with a monochromatic beam of photons.
|
|
In this example the geometry of the detector is simplified:
|
|
one single pixel is used, since the test beams has used monolithic detectors.
|
|
The response function is tabulated for different values of incident
|
|
energy and stored in the file response.dat and SILIresponse.dat.
|
|
At the moment, two kinds of detectors are available: HPGe and Si(Li).
|
|
The sample, a simple box whose material can be selected, can be irradiated
|
|
with different particles, with different spectra for the incident energy and
|
|
with different shapes of the primary generator.
|
|
Apart from the sample and the detector there are two diaphragm reproducing
|
|
those used to collimate the incident beam during the test beam.
|
|
|
|
Other two geometries are present for the user: an infinte-plane geometry and
|
|
a planetary one, with the status of "beta release". The user must select,
|
|
at the moment of the execution, which geometry wants to use.
|
|
If the program is executed in batch mode, it is possible to specify
|
|
geometry from command line. Example:
|
|
/path/XrayFluo macro.mac 1 (for test beam Geometry)
|
|
/path/XrayFluo macro.mac 2 (for infinite plane Geometry)
|
|
|
|
The aim of this advanced example is to illustrate the use of particle
|
|
generation and analysis schemes available in Geant4:
|
|
|
|
- the generation of particles is done via the G4ParticleGun: the example
|
|
shows how to use it in order to obtain a beam of circular section or
|
|
a particle source isotropic in space
|
|
|
|
- the example includes the possibility to shoot particles according to a
|
|
given energy spectrum: the files B_flare.dat, C_Flare.dat and M_flare.dat
|
|
store the spectra of photons during solar flares, the files
|
|
mercury2_flx_solmax.dat and mercury_flx_solmin.dat contain the spectra of
|
|
protons respectively during solar maximum and solar minimum conditions, and
|
|
merc2_flx_alp_max.dat merc_flx_alp_min.dat contain the spectra of alpha
|
|
particles again respectively during solar maximum and solar minimum
|
|
conditions.
|
|
|
|
- histograming facilities are presently provided for the Linux environment
|
|
by using the AIDA3 interfaces.
|
|
The AIDA compliant version has not been tested by the developers and is
|
|
here as a example of "forward compatibility" on how to use analysis.
|
|
|
|
In order to be able to use any of these packages, prior installation is
|
|
necessary and a number of environment variables will have to be set.
|
|
|
|
|
|
#set up VRMLview
|
|
setenv G4VRMLFILE_MAX_FILE_NUM 100
|
|
setenv G4VRMLFILE_VIEWER vrmlview #if installed
|
|
setenv PATH ${PATH}:"/afs/cern.ch/sw/contrib/VRML/bin/Linux"
|
|
|
|
#set up OpenGL or Mesa
|
|
setenv G4VIS_BUILD_OPENGLX_DRIVER 1
|
|
setenv G4VIS_USE_OPENGLX 1
|
|
setenv OGLHOME /afs/cern.ch/sw/geant4/dev/Mesa/Linux-g++
|
|
|
|
#set up DAWN
|
|
setenv G4VIS_BUILD_DAWN_DRIVER 1
|
|
setenv G4VIS_USE_DAWN 1
|
|
setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/DAWN/Linux-g++"
|
|
|
|
# flag that we want to use analysis:
|
|
setenv G4ANALYSIS_USE 1
|
|
|
|
#select AIDA implementation: PI 1.2.1 (for cern AFS)
|
|
|
|
setenv G4ANALYSIS_BUILD 1
|
|
setenv PI_VERSION 1_2_1
|
|
|
|
setenv PATH ${PATH}:"/afs/cern.ch/sw/geant4/dev/PI/Linux-g++/bin"
|
|
|
|
eval `aida-config -r csh`
|
|
|
|
|
|
#path to the lowEnergy data base
|
|
|
|
setenv G4LEDATA /afs/cern.ch/sw/geant4/dev/data/G4EMLOW2.3
|
|
|
|
#path to Xray_Fluorescence data files, if not set, PWD is assumed:
|
|
|
|
setenv XRAYDATA /afs/cern.ch/user/u/username
|
|
|
|
1. Run
|
|
To execute a sample simulation with visualisation of tracks
|
|
reaching the detector run:
|
|
|
|
XrayFluo
|
|
|
|
execute command "/control/execute xxxxx.mac"
|
|
|
|
|
|
If the analysis options are set, histograms will
|
|
automatically stored in the corresponding files (hbook or XML)
|
|
|
|
2. Detector description
|
|
|
|
The telescope and detector geometry is defined in
|
|
XrayFluoDetectorConstruction.cc
|
|
|
|
3. Detector peculiar properties are described in XrayFluoSiLiDetectorType and
|
|
XrayFluoHPGeDetectorType, both derived from XrayFluoVDetectorType. Other
|
|
detector types can be added, creating other implementations of
|
|
XrayFluoVDetectorType objects.
|
|
Detector type selection is made in XrayFluoDetectorConstruction, and can be
|
|
modified trough /apparate/detector command of the UI.
|
|
Other commands (apparate/sample /apparate/sampleGranularity
|
|
/apparate/GrainDiameter) are present to simulate sample granulosity:
|
|
grains are spheres, disposed in a compact cubic structure, i.e superipmposition
|
|
of planes of maximum density with ABC ABC path. The fundamental cell is of type
|
|
cubic with centered-faces.
|
|
|
|
4. Physics processes
|
|
|
|
The physics processes are in XrayFluoPhysicsList.cc
|
|
The main process in this example is fluorescence emission from the sample.
|
|
|
|
5. Event generation
|
|
|
|
This is done using the G4ParticleGun with some modifications. See
|
|
XrayFluoParticleGeneratorAction.cc
|
|
|
|
6. Analysis
|
|
|
|
At present the analisys is provided by any AIDA-3.2.1 compliant analysis system.
|
|
In the example the Anaphe toolkit is used.
|
|
|
|
AIDA / Anaphe configuration for compilation and link are in GNUmakefile, once
|
|
is set the environmente as above:
|
|
|
|
ifdef G4ANALYSIS_USE
|
|
CPPFLAGS += `aida-config --include`
|
|
LDFLAGS += `aida-config --lib`
|
|
endif
|
|
|
|
To build and execute the example on platforms where there is no
|
|
implementation of the analysis system, the environment variables
|
|
must not be set.
|
|
|
|
It is possible to visualize the outpu of the simulation. In order to do this
|
|
is necessary to uncomment all lines in XrayFluoAnalysisManager.cc / .hh regarding plotting;
|
|
and the same must be done for plotting refernces in XrayFluoRunManager.cc and XrayFluoEventAction.cc.
|
|
And link against other AIDA compliant analysis sistems, such as Anaphe or JAS.
|
|
|
|
Finally, by setting visPlotter variable in XrayFluoAnalysisManager to true,
|
|
it is possible to display the simulated output of the detector while
|
|
simulation is in progress. Graph window is updated every 100000 events.
|
|
|
|
The example provides also a simple Python file used to display
|
|
histograms with Lizard 3.0.0.x (from Anaphe)
|
|
|
|
Various commads, with help, are available for Geant4 UI.
|
|
/analysis/outputFile and /analysis/fileType respectively for
|
|
changing the name and the type (xml or Hbook) of the file in wich results
|
|
are saved.
|
|
If these commends are used, to make the changes effective, another
|
|
command, /anaysis/update, must be executed.
|
|
|
|
NOTE: if a file named xrayfluo.hbk (default name) is present, it
|
|
will be deleted, even if /analysis/outputFile command is issued
|
|
before any run.
|