=========================================================
Geant4 - Radiation monitor example
=========================================================
README
---------------------
0. INTRODUCTION
The Radiation monitor example derives from a Geant4 application whose scope
is to study of the effects of a chip carrier on silicon radiation monitoring
devices used in the LHC environment. Further details are available at the
http://www.ge.infn.it/~geant4/hep/radmon
website.
1. HOW TO BUILD
Run gmake from the
$G4INSTALL/examples/advanced/radiation_monitor
directory. The executable
$G4WORKDIR/bin/Radmon
will be built.
If you set the environment variable G4VIS_USE, the geant4 visualisation
module will be build.
If you set the environment variable G4ANALYSIS_USE, the analysis will be
built. Analysis module is based on AIDA 3.2.1 and was tested with PI 1.3.5.
Probably analysis will run also on previous AIDA versions, but it is no
garateed
2. COMMAND LINE SYNTAX
Run
$G4WORKDIR/bin/Radmon -h
for command line help. The following output will be printed out
_____________________________________________________________________________
Usage: Radmon [-h|-H|-?] [-b] [-v] [<filename>]
-h -H -? Usage help
-b Force non-interactive mode
-v Verbose output
<filename> Name of the macro to be run
If ".startup.mac" is present, it will be run before anything else.
_____________________________________________________________________________
-v options adds some extra messages during initialization phase.
At the end of initialization, .startup.mac file is run (if present) and then
<filename> is run (if specified on the command line). After having run these
two files, if -b option is omitted, the interactive session starts.
3. USER INTERFACE
Geometry, Materials, Physics, Beam type, Sensible volumes, Quantities to be
stored for the analysis are all defined interactively (or in macro files)
through the user interface. This allows a high level of flexibility in the
setup definition, without need to rebuild the code. Gemetry types, Physics
list, Beam types, Quantities to be stored for the analysis are all
modularired using abstract classes. If current modules satisfy your
requirements, you will not need to add code, but only to modify macro files
or insert commands interactively through command line.
3.1 RADMON PROPRETARY UI COMMANDS
The introduced user interface commands are:
/radmon/application/EnableRunsDump
/radmon/application/DisableRunsDump
/radmon/application/DumpEventsEvery
/radmon/application/DisableEventsDump
/radmon/application/EnableTracksVisualisation
/radmon/application/DisableTracksVisualisation
/radmon/detectorFactory/Dump
/radmon/detector/EnableEnvironment
/radmon/detector/DisableEnvironment
/radmon/detector/SetEnvironmentType
/radmon/detector/SetEnvironmentAttribute
/radmon/detector/ClearEnvironmentAttribute
/radmon/detector/CreateMultilayer
/radmon/detector/RemoveMultilayer
/radmon/detector/SetMultilayerWidth
/radmon/detector/SetMultilayerHeight
/radmon/detector/AppendLayerToMultilayer
/radmon/detector/RemoveLayerFromMultilayer
/radmon/detector/RemoveAllLayersFromMultilayer
/radmon/detector/SetLayerThickness
/radmon/detector/SetLayerType
/radmon/detector/SetLayerAttribute
/radmon/detector/ClearLayerAttribute
/radmon/detector/CreatePlacement
/radmon/detector/RemovePlacement
/radmon/detector/SetPlacementPosition
/radmon/detector/SetPlacementRotation
/radmon/detector/SetRelativePlacementPosition
/radmon/detector/SetRelativePlacementRotation
/radmon/detector/DumpLayout
/radmon/detector/Load
/radmon/detector/Save
/radmon/materials/CreateElement
/radmon/materials/CreateMaterial
/radmon/materials/AddComponentByAtoms
/radmon/materials/AddComponentByFraction
/radmon/materials/SetMaterialColor
/radmon/materials/SetMaterialTrasparency
/radmon/materials/SetMaterialVisibility
/radmon/materials/SetMaterialStyle
/radmon/materials/Dump
/radmon/materials/Insert
/radmon/materials/Save
/radmon/subPhysicsListFactory/Dump
/radmon/physics/AddPhysicsList
/radmon/physics/RemovePhysicsList
/radmon/physics/SetPhysicsListAttribute
/radmon/physics/ClearPhysicsListAttribute
/radmon/physics/DumpLayout
/radmon/physics/Load
/radmon/physics/Save
/radmon/generatorsFactory/Dump
/radmon/generator/InsertSource
/radmon/generator/SetRelativeSourceIntensity
/radmon/generator/RemoveSource
/radmon/generator/AppendSourceAlgorithm
/radmon/generator/SetSourceAlgorithmType
/radmon/generator/RemoveSourceAlgorithm
/radmon/generator/SetSourceAlgorithmAttribute
/radmon/generator/ClearSourceAlgorithmAttribute
/radmon/generator/Load
/radmon/generator/Save
/radmon/generator/DumpLayout
/radmon/dataAnalysisFactory/Dump
/radmon/analysis/SetOutputFileName
/radmon/analysis/SetOutputFileFormat
/radmon/analysis/CreateSensitiveDetector
/radmon/analysis/SetSensitiveDetectorType
/radmon/analysis/RemoveSensitiveDetector
/radmon/analysis/CreateSensitiveDetectorType
/radmon/analysis/RemoveSensitiveDetectorType
/radmon/analysis/AppendDataAnalysisToSensitiveDetectorType
/radmon/analysis/SetDataAnalysisType
/radmon/analysis/RemoveDataAnalysis
/radmon/analysis/SetDataAnalysisAttribute
/radmon/analysis/ClearDataAnalysisAttribute
/radmon/analysis/DumpLayout
/radmon/analysis/Load
/radmon/analysis/Save
Details of the commands will be given in each specific section.
A common feature to all the code is the presence of 'attributes'. Each
module of geometry, physics, beam type, analysis can have specific
parameters that define its behaviour. These parameters are set through
'attributes'. Next sections will document for each implemented module, the required and optional
attributes, their meaning and their format.
Everything in the Radmon application is case sensitive.
4. APPLICATION
Application commands sets the behaviour of helper user actions:
Command: /radmon/application/EnableRunsDump
Parameters: [none]
Description: Enables the print out of the run number at the begin of the run
Command: /radmon/application/DisableRunsDump
Parameters [none]
Description: Disables the print out of the run number
Command: /radmon/application/DumpEventsEvery
Parameters <n> [integer]
Description: Enables the print out of the event number at the beginning of
the event (1 out of <n> events)
Command: /radmon/application/DisableEventsDump
Parameters [none]
Description: Disables the print out of the event number
Command: /radmon/application/EnableTracksVisualisation
Parameters [none]
Description: Enables the display of the tracks at the end of the run
Requires: G4VIS_USE environment variable at build time
See also: /vis/scene/endOfEventAction [Geant4 built-in UI command]
Command: /radmon/application/DisableTracksVisualisation
Parameters [none]
Description: Disables the display of the tracks
Requires: G4VIS_USE environment variable at build time
5. GEOMETRY
Geometry is completely built interactively. Two concepts are available:
- Environment
- Multi-layers
5.1 ENVIRONMENT
Defines the geometry in which "multi-layers" will be placed. The environment
defines the world volume and eventually other volumes that are not
"multi-layers" volumes. For example the "TestBeam" environment type
(currently not implemented) will define all the geometries of the test beam
except from the tested chips+packagings.
Command: /radmon/detector/DisableEnvironment
Parameters: [none]
Description: Disables the usage of specific environments. The world volume
will be a sphere of RADMON_VACUUM (vacuum) large enough to contain
all the placed multi-layers
Command: /radmon/detector/EnableEnvironment
Parameters: [none]
Description: Enables the usage of a specific environment. The enviroment is
defined through the next commands
Command: /radmon/detector/SetEnvironmentType
Parameters: <type> [string]
Description: Fix the environment type to the type <type>. For a list of
available strings use /radmon/detectorFactory/Dump command
See also: /radmon/detectorFactory/Dump (Chapter 5.3)
Command: /radmon/detector/SetEnvironmentAttribute
Parameters: <name> [string], <value> [string]
Description: Configure the selected environment type setting the attribute
<name> to the value <value>. Each environment type has its own
attributes. Attributes are detailed in Chapter 5.4
Command: /radmon/detector/ClearEnvironmentAttribute
Parameters: <name> [string]
Description: Removes the attribute <name> from the environment
configuration.
5.2 MULTILAYERS
Multilayers are wafer made up of different layers. Several multilayers can
be defined. A instance of a multilayer is called placed multilayer. A placed
multilayer has a position and a rotation relative to the world volume. More
placed multilayers can be instanced for each multilayer type.
5.2.1 MULTILAYERS
Command: /radmon/detector/CreateMultilayer
Parameters: <name> [string]
Description: Creates a multilayer with name <name>
Command: /radmon/detector/RemoveMultilayer
Parameters: <name> [string]
Description: If defined and without placed instances, removes the multilayer
named <name>. If the multilayer has placed instances. You will
have to remove the placed instances with
/radmon/detector/RemovePlacement command.
See Also: /radmon/detector/RemovePlacement (Chapter 5.2.2)
Command: /radmon/detector/SetMultilayerWidth
Parameters: <name> [string], <width> [length]
Description: Defines the multilayer width. the second argument is a space
separated string with a real number and a unit of length
Command: /radmon/detector/SetMultilayerHeight
Parameters: <name> [string], <height> [length]
Description: Defines the multilayer height
Command: /radmon/detector/AppendLayerToMultilayer
Parameters: <name> [string], <label> [string]
Description: Adds a layer to the multilayer named <name>. The layer will be
referenced by the label <label>
The multilayer thickness is alogn the z axis. Width is along x
axis and height along y axis. Appended layers are placed
consecutively along the z direction. The first appended layer
has a z coordinate lower than the second appended layer.
AppendLayerToMultilayer stacks the layers on top of the previous
ones. The origin of reference system for the multilayer is
placed in its center.
Example:
/radmon/detector/AppendLayerToMultilayer mly1 ly1
/radmon/detector/AppendLayerToMultilayer mly1 ly2
/radmon/detector/AppendLayerToMultilayer mly1 ly3
Width mly1
<----------------------------------------->
_________________________________________ ...
| | ^
| ly3 | | Thickness ly3
|_________________ z ^ __________________|...v
| | ly2 | ^ Thickness ly2
|_________________ +---> x _____________|...v
| O | ^
| ly1 | | Thickness ly1
| | |
|_________________________________________|...v
Command: /radmon/detector/RemoveLayerFromMultilayer
Parameters: <name> [string], <label> [string]
Description: Removes the layer named <label> from the multilayer named
<name>
Command: /radmon/detector/RemoveAllLayersFromMultilayer
Parameters: <name> [string]
Description: Removes all the layers form the multilayer.
Command: /radmon/detector/SetLayerThickness
Parameters: <name> [string], <label> [string], <thickness> [length]
Description: Sets the thickness of a layer named <label> defined in
multilayer named <name> to <thickness>
Command: /radmon/detector/SetLayerType
Parameters: <name> [string], <label> [string], <type> [string]
Description: Defines the layer type for a layer named <label> defined in
multilayer named <name>. The type <type> must be one of the
available modules. (Chapter 5.4)
See also: /radmon/detectorFactory/Dump (Chapter 5.3)
Command: /radmon/detector/SetLayerAttribute
Parameters: <name> [string], <label> [string], <attribute> [string],
<value> [string]
Description: Sets the attribute <attribute> to value <value> for a layer
named <label> defined in multilayer named <name>.
See also: Chapter 5.4
Command: /radmon/detector/ClearLayerAttribute
Parameters: <name> [string], <label> [string], <attribute> [string]
Description: Removes the attribute <attribute> from a layer named <label>
defined in multilayer named <name>.
5.2.2 PLACED MULTILAYERS
Command: /radmon/detector/CreatePlacement
Parameters: <name> [string], <type> [string]
Description: Insert in the geometry a multilayer object named <type>. The
inserted instance of the multilayer will be referenced though
the label <name>
Command: /radmon/detector/RemovePlacement
Parameters: <name> [string]
Description: Removes the multilayer instance named <name> from the geometry
Command: /radmon/detector/SetPlacementPosition
Parameters: <name> [string], <x> [real], <y> [real], <z> [real],
<unit> [unit of length]
Description: Set the absolute position of the multilayer instance named
<name>
Command: /radmon/detector/SetPlacementRotation
Parameters: <name> [string], <theta> [real], <phi> [real], <delta> [real],
<unit> [unit of angle]
Description: Set the absolute direction of the multilayer instance named
<name>. The multilayer is rtated by an angle <delta> along the
axis defined by <theta> and <phi> angles
Command: /radmon/detector/SetRelativePlacementPosition
Parameters: <name> [string], <reference> [string], <x> [real], <y> [real],
<z> [real], <unit> [unit of length]
Description: Set the relative position of the multilayer instance named
<name> relative to the coordinates system of another placed
multilayer named <reference>
Command: /radmon/detector/SetRelativePlacementRotation
Parameters: <name> [string], <reference> [string], <theta> [real],
<phi> [real], <delta> [real], <unit> [unit of angle]
Description: Set the absolute direction of the multilayer instance named
<name> relative to the coordinates system of another placed
multilayer named <reference>. The multilayer is rtated by an
angle <delta> along the axis defined by <theta> and <phi>
angles
5.3 OTHER GEOMETRY COMMANDS
Command: /radmon/detectorFactory/Dump
Parameters: [none]
Description: Dumps the complete list of implemented geometry modules. A
geometry module can be used either for the definition of the
enviroment type or for the definition of a layer type. Further
details of the implemented geometry modules are available in
Chapter 5.4
Command: /radmon/detector/DumpLayout
Parameters: [none]
Description: Dumps all the details of the current geometry configuration
Command: /radmon/detector/Load
Parameters: <file name> [string]
Description: Loads the geometry data from <file name> file
Note: This command is not implemented. It is provided for further
developments
Command: /radmon/detector/Save
Parameters: <file name> [string]
Description: Stores the geometry data in <file name> file
Note: This command is not implemented. It is provided for further
developments
5.4 AVAILABLE GEOMETRY MODULES
Available geometry modules are the following:
FlatVolume
FlatVolumeWithHole
FlatVolumeWithGround
FlatVolumeWithGroundAndKeyMarks
FlatVolumeWithGroundAndKeyMarksAndHole
FlatVolumeWithTracks
FlatVolumeWithPins
FlatVolumeWithTracksAndHole
FlatVolumeWithPads
CarvedFlatVolume
CarvedFlatVolumeWithHole
CarvedFlatVolumeWithTracks
CarvedFlatVolumeWithPins
CarvedFlatVolumeWithTracksAndHole
CarvedFlatVolumeWithGround
CarvedFlatVolumeWithGroundAndKeyMarks
CarvedFlatVolumeWithGroundAndKeyMarksAndHole
Technically any geometry model could be used in the environment type
definition, but the only one that is really relevant is FlatVolume. All the
other modules are implemented for specific packagin geometry requirements:
The * symbol used in next definitions is used to group modules categories.
Modules: *FlatVolume* (modules containing FlatVolume word)
Description: Builds a uniform box
Attributes: Width defines the box width (size along x). This
attribute is needed only when the module is used
in the environment definition.
Height defines the box height (size along y). This
attribute is needed only when the module is used
in the environment definition. Sa
Thickness defines the box thickness (size along z). This
attribute is needed only when the module is used
in the environment definition
Material Defines the material type. Materials names are
defined through materials commands (Chapter 6)
VisAttributes [OPTIONAL] Defines the visualization style of the
volume. This attribute is optional. If omitted
devault material visualization style will be used
(Chapter 6)
SensitiveDetector [OPTIONAL] Refers to a defined sensitive
detector. When particles will pass through
this volume, information will be stored according to
the configuration of the referred sensitive
detector. See Chapter 9 for further details.
Width, Height and Thikness sizes are defined by a space separated string
containing a real number followed by a unit of measure for length. Example:
'10.5 cm'
VisAttributes has the following format:
- [OPTIONAL] Either word hidden or word visible can be present. If hidden
the volume will be invisible, if visible the volume will be shown
- [OPTIONAL] Either word solid or word wireframe can be present. If solid
the volume will be drawn as a solid volume. If wireframe, the volume will be
drawn as a wireframe solid.
- [OPTIONAL] 3 or 4 real numbers between 0 and 1. The 3 numbers are the red,
green and blue color components. Optionally the 4th component is the alpha
channel.
Example: 'solid visible 1. 1. 0. 0.5' a visible solid volume yellow and 50%
transparent.
Modules: Carved*
Description: Carves the border of the box with circular holes the holes span
through the whole box thickness. Holes can be plated with
another material along the z direction. Plating thickness is
set through attributes
Attributes: HolesAlongWidth the number (integer) of holes to apply along
the x direction for each side of the box
HolesAlongHeight the number (integer) of holes to apply along
the y direction for each side of the box
HolesRadius radius of the holes
HolesStep separation between two holes
DepositOnHolesThickness [OPTIONAL] thickness of the plating
DepositOnHolesMaterial [OPTIONAL] material used for the
plating
DepositOnHolesVisAttributes [OPTIONAL] visualisation attributes
used to display the plating
__ |
\
\ |
HOLE | |
| <-------> HolesRadius
/ :____ :
__/.... | \ :
| ^ |__ * \ : * = DEPOSIT
| | HolesStep \ \:
|__.....v \ |
\ ^ HOLE | |
\ | HolesRadius /: |
HOLE |..v __/.:./:......
| | :/ : ^ DepositOnHolesThickness
/ |____/..:......v
__/ | : :
| | <--> DepositOnHolesThickness
|________ _ _ _ _ _ _
|
Modules: *WithGround*
Description: Inserts a box inside the original one, centered and made of
another material. The box spans through the whole thickness of
the mother volume
Attributes: GroundWidth width of the ground box
GroundScaleWidth [ALTERNATIVE] width of the ground box given
as a fraction (real number only)
GroundHeight height of the ground box
GroundScaleHeight [ALTERNATIVE] height of the ground box
given as a fraction
GroundMaterial material used for the ground box
GroundVisAttributes [OPTIONAL] visualisation attributes used to
display the box
Modules: *WithHole, *AndHole
Description: Makes a hole inside the original volume. The hole is centered
and spans through the whole thickness of the mother volume
Attributes: HoleWidth width of the hole box
HoleScaleWidth [ALTERNATIVE] width of the hole box given
as a fraction
HoleHeight height of the hole box
HoleScaleHeight [ALTERNATIVE] height of the hole box given
as a fraction
Modules: *WithTracks
Description: Adds tracks from the borders to de center tracks thickness
spans through the whole thickness of the mother volume.
Attributes: HolesAlongWidth See Carved*
HolesAlongHeight See Carved*
HolesRadius See Carved*
HolesStep See Carved*
TracksMaterial defines the material for the tracks
TracksVisAttributes [OPTIONAL] visualisation attributes used to
display the tracks
Modules: *WithPins
Description: Adds pins near the box borders. Pins thickness spans through
the whole thickness of the mother volume.
Attributes: HolesAlongWidth See Carved*
HolesAlongHeight See Carved*
HolesRadius See Carved*
HolesStep See Carved*
PinLength size of the pin in the direction orthogonal
to the mother volume border
MarkedPin a index between 1 and
(HolesAlongWidth+HolesAlongHeight)*2
identifing the pin to mark with a triangle
if 0 no pins will be marked
MarkedPinLength height of the triangle
PinsMaterial defines the material for the pins
PinsVisAttributes [OPTIONAL] visualisation attributes used to
display the pins
Modules: *WithPads
Description: Adds pads in the box. Pads thickness spans through the whole
thickness of the mother volume.
Attributes: PadsWidth_<index> width of the pads. Index must be >0
PadsHeight_<index> height of the pads. Index must be >0
PadsMaterial_<index> material of the pads. Index must be >0
PadsVisAttributes_<index> [OPTIONAL] visualisation attributes
of the pads. Index must be >0
PadsPosition_<index> position of the pads
Pad position is a list of pads. Each pad is devined by 3 numbers grouped
togheter by round brakets and separated by comma. The first number is the
position along x relative to the center, the second one is the position
along y relative to the center and the third (optional is a rotation angle).
Example: '(0.315 mm, 0.315 mm) (0.105 mm, 0.315 mm, 10 deg)'
Modules: *AndKeyMarks
Description: Adds marks used to identify the pin #1.
Attributes: HolesAlongWidth See Carved*
HolesAlongHeight See Carved*
HolesRadius See Carved*
HolesStep See Carved*
GroundWidth See *WithGround*
GroundScaleWidth See *WithGround*
GroundHeight See *WithGround*
GroundScaleHeight See *WithGround*
GroundMaterial See *WithGround*
GroundVisAttributes See *WithGround*
MarkedPinRadius the mark is a circular hole. This attribute
defines thee hole radius
MarkedPinStep the shift from the box border of the mark
center in the direction orthogonal to the
border itself
MarkedPin See *WithPins
6. MATERIALS
A material is defined specifing its elements, their fraction and the mass
density. An element is defined by its molecular density, its atomic number.
Materials and elements can be added interactively within Geant4 but cannot
be removed once added.
Command: /radmon/materials/CreateElement
Parameters: <name> [string], <abbreviation> [string], <z> [integer],
<molar density> [real], <unit> [molar density unit]
Description: Creates an element according to the provided parameters
Command: /radmon/materials/CreateMaterial
Parameters: <name> [string], <mass density> [real],
<unit> [mass density unit], <n> [integer]
Description: Creates a material ccording to the provided parameters. <n> is
the number of components. Components are then defined through
AddComponent* commands. All <n> components must be defined
using the same command (either AddComponentByAtoms or
AddComponentByFraction)
See also: /radmon/materials/AddComponentByAtoms,
/radmon/materials/AddComponentByFraction
Command: /radmon/materials/AddComponentByAtoms
Parameters: <name> [string], <element> [string], <nAtoms> [integer]
Description: Defines the amount of atoms of the component. <element> must be
a previously defined element
Command: /radmon/materials/AddComponentByFraction
Parameters: <name> [string], <component> [string], <fraction> [real]
Description: Defines the fraction of a specific component. <component> must
be a previously defined element or material. Fractions must sum
to 1
Command: /radmon/materials/SetMaterialColor
Parameters: <name> [string], <red> [real], <green> [real], <blue> [real]
Description: Defines the default color for this material
Command: /radmon/materials/SetMaterialTrasparency
Parameters: <name> [string], <alpha> [real]
Description: Defines the default alpha channel level for this material
Command: /radmon/materials/SetMaterialVisibility
Parameters: <name> [string], <mode> [string]
Description: Defines the default visibility for this material. <mode> must
be hidden or visible
Command: /radmon/materials/SetMaterialStyle
Parameters: <name> [string], <mode> [string]
Description: Defines the default style for this material. <mode> must be
solid or wireframe
Command: /radmon/materials/Dump
Parameters: [none]
Description: Dumps all the details of the materials defined
Command: /radmon/materials/Load
Parameters: <file name> [string]
Description: Loads the materials from <file name> file. Previously defined
materials are kept
Note: This command is not implemented. It is provided for further
developments
Command: /radmon/materials/Save
Parameters: <file name> [string]
Description: Stores the materials in <file name> file
Note: This command is not implemented. It is provided for further
developments
7. PHYSICS
Physics must be defined before /run/initialize command. After inizialization
of the Geant4 kernel no more changes can be applyed. Physics is defined
recalling several modules. A system to identify mutual exclusive physics
modules is provided. Even if not very used, physics modules can have
attributes too.
7.1 BASIC PHYSICS COMMANDS
Command: /radmon/physics/AddPhysicsList
Parameters: <name> [string]
Description: Inserts the physics module named <name>
Command: /radmon/physics/RemovePhysicsList
Parameters: <name> [string]
Description: Removes the physics module named <name>
Command: /radmon/physics/SetPhysicsListAttribute
Parameters: <name> [string], <attribute> [string],
<value> [string]
Description: Sets the attribute <attribute> to value <value> in module
<name>
Command: /radmon/physics/ClearPhysicsListAttribute
Parameters: <name> [string], <attribute> [string]
Description: Removes the attribute <attribute> from module <name>
7.2 OTHER PHYSICS COMMANDS
Command: /radmon/subPhysicsListFactory/Dump
Parameters: [none]
Description: Dumps all the available physics modules
Command: /radmon/physics/DumpLayout
Parameters: [none]
Description: Dumps the list of selected physics modules
Command: /radmon/physics/Load
Parameters: <file name> [string]
Description: Loads the physics from <file name> file.
Note: This command is not implemented. It is provided for further
developments
Command: /radmon/physics/Save
Parameters: <file name> [string]
Description: Stores the physics in <file name> file
Note: This command is not implemented. It is provided for further
developments
7.3 PHYSICS MODELS
Available physics models are the following:
Module: ElectronEEDL
Description: MultipleScattering, eIonisation, eBremsstrahlung and
StepLimiter. All applied to electrons only
Attributes: [none]
Module: ElectronStandard
Description: MultipleScattering, LowEnergyIonisation,
LowEnergyBremsstrahlung and StepLimiter. All applied to
electrons only.
Attributes: [none]
Module: PhotonStandard
Description: PhotoElectricEffect, ComptonScattering, GammaConversion and
StepLimiter. All applied to photons only.
Attributes: [none]
Module: PhotonEPDL
Description: LowEnergyPhotoElectric, LowEnergyCompton,
LowEnergyGammaConversion and StepLimiter. All applied to
photons only.
Attributes: [none]
Module: PositronStandard
Description: MultipleScattering, eIonisation, eBremsstrahlung,
eplusAnnihilation and StepLimiter. All applied to positrons
only
Attributes: [none]
Module: MuonStandard
Description: MultipleScattering, MuIonisation, MuBremsstrahlung,
MuPairProduction and StepLimiter applied both to mu+ and mu-.
MuonMinusCaptureAtRest aplied to mu-.
Attributes: [none]
Module: TauStandard
Description: MultipleScattering, hIonisation and StepLimiter applied both to
tau+ and tau-.
Attributes: [none]
Module: Nuclear
Description: ElectroNuclearReaction for electrons and positrons
GammaNuclearReaction up to 3.5 GeV, it's not an aTheoFSGenerator between 3
GeV and 100 TeV for photons
Attributes: [none]
Module: Decay
Description: Unstable particles decay. G4Decay applied to all particles for
which it is pertinent
Attributes: [none]
Module: NeutronBinary
Description: Neutron processes. HadronElasticProcess, LCapture, LFission and
NeutronInelasticProcess based on BinaryCascade up to 10 GeV,
LENeutronInelastic between 8 and 25 GeV and QGSModel between 20
GeV and 100 TeV
Attributes: [none]
Module: NeutronBertini
Description: Neutron processes. HadronElasticProcess, LCapture, LFission and
NeutronInelasticProcess based on CascadeInterface up to 3.2 GeV,
LENeutronInelastic between 2.8 and 25 GeV and QGSModel between 20
GeV and 100 TeV
Attributes: [none]
Module: HadronsBinary
Description: Protons: HadronElasticProcess and ProtonInelasticProcess based
on BinaryCascade up to 10 GeV, LEProtonInelastic between 8 and
25 GeV and QGSModel between 20 GeV and 100 TeV.
Pi+: HadronElasticProcess, PionPlusInelasticProcess based on
PiNuclearCrossSection, LEPionPlusInelastic up to 25 GeV
and QGSModel between 20 GeV and 100 TeV.
Pi-: HadronElasticProcess, PionMinusInelasticProcess based on
PiNuclearCrossSection, LEPionMinusInelastic up to 25 GeV
and QGSModel between 20 GeV and 100 TeV.
Alpha: HadronElasticProcess, AlphaInelasticProcess based on
Tripathi, IonShen cross-sections, LEAlphaInelastic model up to
25 GeV and BinaryLightIonReaction between 80 MeV and 110 GeV
Attributes: [none]
Module: HadronsBertini
Description: Protons: HadronElasticProcess and ProtonInelasticProcess based
on CascadeInterface up to 3.2 GeV, LEProtonInelastic between 2.8
and 25 GeV and QGSModel between 20 GeV and 100 TeV.
Pi+: HadronElasticProcess, PionPlusInelasticProcess based on
PiNuclearCrossSection, CascadeInterface up to 3.2 GeV,
LEPionPlusInelastic between 2.8 GeV and 25 GeV and QGSModel
between 20 GeV and 100 TeV.
Pi-: HadronElasticProcess, PionMinusInelasticProcess based on
PiNuclearCrossSection, CascadeInterface up to 3.2 GeV,
LEPionMinusInelastic between 2.8 GeV and 25 GeV and QGSModel
between 20 GeV and 100 TeV.
Alpha: HadronElasticProcess, AlphaInelasticProcess based on
Tripathi, IonShen cross-sections, LEAlphaInelastic model up to
25 GeV and BinaryLightIonReaction between 80 MeV and 110 GeV
Attributes: [none]
Module: ICRUIonization
Description: Applied to all charged long-lived non-leptons particles.
MultipleScattering, hIonisation and StepLimiter
Attributes: [none]
Module: ProductionCuts
Description: Sets productions cuts for electrons, positrons and photons.
This module is enabled only if Cut attribute is defined.
Attributes: Cuts cut value a string space separated containing a real
number and a unit of length
8. GENERATORS
The primary generation is managed through the concepts od "source" and
"algorithm". With these two concepts it is possible to describe almost any kind of
radiation environment.
8.1 SOURCES
Each source is a copletely different particle generator. (with different
geometry, energy distribution, particle type etc). Usually in simple
radiation environment no more than a source will be needed.
Each source is labelled and has a real value that describes the relative
intensity. For each event the primary generator choose the source to use to
generate primaries based on the relative intensities. On each event only one
source fires primaries.
Sources are defined by the following commands:
Command: /radmon/generator/InsertSource
Parameters: <label> [string]
Description: Inserts a new source labelled <label>
Command: /radmon/generator/SetRelativeSourceIntensity
Parameters: <label> [string], <intensity> [real]
Description: Defines the source relative intensity. Meaningful only when
more than one source is defined
Command: /radmon/generator/RemoveSource
Parameters: <label> [string]
Description: Removes the source named <label>
8.2 SOURCE ALGORITHMS
Source algorithms are filters applied in sequence to the primaries in order
to define the particle type, the geometry of the source the direction of the
source and the energy of the primary particle.
As the algorithm are applyed in sequence you can obtain convolution-like
results. For example you can apply an algorithm that defines a particular
energy distribution and then a second one that applies a gaussian
distribution. You will obtain particles emitted by a distribution that is
the convolution of the two.
Algorithms non necessarely operate on one parameter (position of the
vertex, particle type, energy, direction). For example a algorithm that
generates primaries according a distribution funzion of energy and particle
type based on tables will be provided (currently not implemented).
Algorithms are class modules and can be easily extended by the developer
accordin to the requirements.
____________________________________________________________________________
| ____________________ ____________________ ____________________ |
Initial | | Ex: Gauss. Energy | | Ex: Fix. direction | | Ex: Particle is e+ | | Final
primary ==> | Source Algorithm 1 | => | Source Algorithm 2 | => | Source Algorithm 3 | ==> primary
| |____________________| |____________________| |____________________| |
|____________________________________________________________________________|
The initial primary is alwaya one geantino with 0 energy directed in the z
direction and with vertex in the origin. Applying algorithms you can change
the kind of source. For example in the figure above you will obtain a
positron with a specified fixed direction, with a energy that is distributed
according to a gaussian with specified mean and rms and still emitted from
the origin.
Command: /radmon/generator/AppendSourceAlgorithm
Parameters: <label> [string], <name> [string]
Description: Adds an algorithm to the source <label>. The algorithm will be
referenced in future commands using the name <name>
Command: /radmon/generator/SetSourceAlgorithmType
Parameters: <label> [string], <name> [string], <type> [string]
Description: The algorithm named <name> of source <label> is set to type
<type>. Type is the name of one of the available algorithms.
The list of available algorithms is given by
/radmon/generatorsFactory/Dump command. Chapter 8.4 provides
details of the currently implemented algoritms.
See also: /radmon/generatorsFactory/Dump (Chapter 8.3)
Command: /radmon/generator/RemoveSourceAlgorithm
Parameters: <label> [string], <name> [string]
Description: Removes the algorithm named <name> from source <label>
Commnad: /radmon/generator/SetSourceAlgorithmAttribute
Parameters: <label> [string], <name> [string], <attribute> [string],
<value> [string]
Description: Sets to <value> the attribute <attribute> of algorithm <name>
in source <label>. Required/optional attributes of each
algorithm type are listed in Chapter 8.4
Command: /radmon/generator/ClearSourceAlgorithmAttribute
Parameters: <label> [string], <name> [string], <attribute> [string]
Description: Removes attribute <attribute> from algorithm <name> in source
<label>
8.3 OTHER GENERATOR COMMANDS
Command: /radmon/generatorsFactory/Dump
Parameters: [none]
Description: Dumps all the available source algorithms
Command: /radmon/generator/DumpLayout
Parameters: [none]
Description: Dumps all the details of the sources and of their algorithms
Command: /radmon/generator/Load
Parameters: <file name> [string]
Description: Loads the generator data from <file name> file
Note: This command is not implemented. It is provided for further
developments
Command: /radmon/generator/Save
Parameters: <file name> [string]
Description: Stores the generator data in <file name> file
Note: This command is not implemented. It is provided for further
developments
8.4 SOURCE ALGORITMS IMPLEMENTED
Module: FixedPosition
Description: Shifts the position of the primary vertex of the value
specified
Attributes: Position The shift defined by a string with three real number
separated by spaces and followed by a unit of length
Module: FixedDirection
Description: Rotates the beam direction of a value specified
Attributes: Direction The rotation matrix is defined by an axis of
rotation and the angle of rotation. The Direction
attribute must be a string containig three real
numbers space separated and followed by a unit of
angle. The first two angles are theta and phi and
defines the axis, the third one is delta and defines
the rotation amount.
Example: Suppose this filter has in input a particle rirected
along z and has "Direction"="90. 0. 90. deg". This
means a rotation counter-clock wise of 90 degrees
along the x axis. This means a final direction of -y
Module: FixedEnergy
Description: Shifts the energy of the primary particle by a specified value
Attributes: Energy The energy shift is space separated string made up
of a real number and a unit of energy
Module: FixedParticle
Description: Sets the particle type to the specified particle
Attributes: Particle A string containing the name of a instantiated
particle.
Module: UniformSphere
Description: Shifts the position of the primaries on a sphere of specified
radius and rotates the direction of the primary so that a
primary with direction z is roteted on the radial direction of the sphere,
outward. A primary with initial direction -z, is rotated on the
radial direction of the sphere, inward. The distribution of the
position of the primaries on the sphere is uniform
Attributes: Radius A string containig the length of the radius
^
^ z r | 7
| \ ___ /
| / \
. ==> <-- | | -->
\___/
/ \
L | J
v
_______
/ \
/ | \
/ \ v / \
| J L |
. ==> | --> <-- |
| | 7 r |
| \ / ^ \ /
v -z \ | /
\_______/
Module: UniformPlane
Description: Shifts the position of the primaries on a plane of specified
width, height and direction. The distribution of the position
of the primaries on the plane is uniform.
Attributes: Width width of the plane (x direction)
Height height of the plane (y direction)
Direction as in FixedDirection algorith. Defines a rotation
matrix. It will be applied to the the initial
particle direction, to the width direction and to
the height direction.
9. ANALYSIS
This section is enabled only if G4ANALYSIS_USE is on. In order to store
data, you have to define which part of the geometry is made of sensible
volumes.
This is done setting the attribute "SensitiveDetector" to the volumes you
are interested in (Chapter 5.4) the value of the attribute
"SensitiveDetector" must match one of the sensitive detectors defined with
the following commands. You can set more than a volume to the same sensitive
detector. Data stored for that volumes will be acculuated togheter
As the other parts of the application, analysis is modularised too. You
can define which data you want to store. The list of the data you want to
store is collected in a entity called SensitiveDetectorType. A concrete
instance of this entity is called SensitiveDetector. As said before volumes
linked to the same SensitiveDetector accumulate data togheter. If you want
to collect the same kind of data but separately for let say two geometry
elements you'll have to define two Sensitive Detectors set them to the same
Sensitive detector type.
9.1 SENSITIVE DETECTOR TYPE
Command: /radmon/analysis/CreateSensitiveDetectorType
Parameters: <type> [string]
Description: Defines a new sensitive detector type, named <type>
Command: /radmon/analysis/RemoveSensitiveDetectorType
Parameters: <type> [string]
Description: Removes the sensitive detector type <type>
Command: /radmon/analysis/AppendDataAnalysisToSensitiveDetectorType
Parameters: <type> [string], <label> [string]
Description: Appends to the sensitive detector type <type>, an data
type that will be labelled <label>.
Command: /radmon/analysis/SetDataAnalysisType
Parameters: <type> [string], <label> [string], <module> [string]
Description: Sets the data labelled <label> of the sensitive detector type
<type> to the module <module>. This module will process Hits
and store data of interest for him. Modules will be detailed in
Chapter 9.4. A list of available modules can be obtained with
the command /radmon/dataAnalysisFactory/Dump
See also: /radmon/dataAnalysisFactory/Dump (Chapter 9.3)
Command: /radmon/analysis/RemoveDataAnalysis
Parameters: <type> [string], <label> [string]
Description: Removes the data type labelled <label>, present in sensitive
detector type <type>
Command: /radmon/analysis/SetDataAnalysisAttribute
Parameters: <type> [string], <label> [string], <attribute> [string],
<value> [string]
Description: Sets the attribute <attribute> to value <value> in the analysis
module labelled <label> of sensitive detector type <type>
Command: /radmon/analysis/ClearDataAnalysisAttribute
Parameters: <type> [string], <label> [string], <attribute> [string]
Description: Removes attribute <attribute> from module labelled <label> of
sensitive detector type <type>
9.2 SENSITIVE DETECTOR
As said in chapter 9.1 a concrete instance of a sensitive detector type is
called sensitive detector. These instances are the ones to be referenced
in the attribute "SensitiveDetector" of the geometry modules
Command: /radmon/analysis/CreateSensitiveDetector
Parameters: <name> [string]
Description: Creates a sensitive detector with name <name>
Command: /radmon/analysis/SetSensitiveDetectorType
Parameters: <name> [string], <type> [string]
Description: Sets the sensitive detector with name <name> to the sensitive
detector type <type>
Command: /radmon/analysis/RemoveSensitiveDetector
Parameters: <name> [string]
Description: Removes the sensitive detector named <name>
9.3 OTHER GENRATOR COMMANDS
Command: /radmon/analysis/SetOutputFileName
Parameters: <file name> [string]
Description: Set the output file name. If this command is called after some
events, the previous file is closed and a new one will be open
when the next event is run. When analysis command are run and
the analysis setup is modified. Always the old file is closed
and a new one is open when the next event happens. If
<file name> just exists on the system <file name>_n will be
used where n is the first number > 0 for which the file does
not exists on the system
Command: /radmon/analysis/SetOutputFileFormat
Parameters: <format> [string]
Description: This variable depends on the AIDA implementation. Possible
values for PI 1.3.5 are XML, ROOT, HBOOK
Command: /radmon/dataAnalysisFactory/Dump
Parameters: [none]
Description: Dumps all the available physics modules
Command: /radmon/analysis/DumpLayout
Parameters: [none]
Description: Dumps the list of selected physics modules
Command: /radmon/analysis/Load
Parameters: <file name> [string]
Description: Loads the physics from <file name> file.
Note: This command is not implemented. It is provided for further
developments
Command: /radmon/analysis/Save
Parameters: <file name> [string]
Description: Stores the physics in <file name> file
Note: This command is not implemented. It is provided for further
developments
9.4 ANALYSIS MODULES
Module: DepositedEnergy
Description Stores the total energy deposited in the volumes on a Tuple
column called EnergyDeposit. The energy is store in MeV.
One entry per event is stored.
Attributes: [none]
10. PROVIDED MACROS
Code comes with a large set of basic macros in order to configure basic
funcionalities:
$G4INSTALL/examples/advanced/radiation_monitor/macros/ApplyRelativePositioning.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultAnalysis.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultBeam.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultGeometry.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultMaterials.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultOptions.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultPhysics.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultView.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DetectorsDummyGeometry.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DetectorsGeometry.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DetectorsParameters.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/DirectionalBeam.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/EnvironmentGeometry.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/PackagingDummyGeometry.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/PackagingGeometry.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/PackagingParameters.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/RadiationEnvironmentBeam.mac
$G4INSTALL/examples/advanced/radiation_monitor/macros/RelativePositioningPackaging.mac
$G4INSTALL/examples/advanced/radiation_monitor/.startup.mac
10.1 MACROS CALL PATH
If
$G4WORKDIR/bin/Radmon
is run from
$G4INSTALL/examples/advanced/radiation_monitor
the following macros are run in the following order. The three structure
helps undestanding which macro runs the other "sub"-macros.
.startup.mac
|- macros/DefaultOptions.mac
|
|- macros/DefaultPhysics.mac
-- Run Manager Initialization --
|- macros/DefaultBeam.mac
| \- macros/RadiationEnvironmentBeam.mac -or- macros/DirectionalBeam.mac
|
|- macros/DefaultMaterials.mac
|
|- [DISABLED] macros/DefaultView.mac
|
|- macros/DefaultGeometry.mac
| |- macros/EnvironmentGeometry.mac
| |- macros/DetectorsGeometry.mac -or- macros/DetectorsDummyGeometry.mac
| | \- macros/DetectorsParameters.mac \- macros/DetectorsParameters.mac
| |- macros/PackagingGeometry.mac -or- macros/PackagingDummyGeometry.mac
| | \- macros/PackagingParameters.mac \- macros/PackagingParameters.mac
| |- macros/RelativePositioningPackaging.mac
| \- macros/ApplyRelativePositioning.mac
|
\- macros/DefaultAnalysis.mac
10.2 MACROS DETAILS
Macro: $G4INSTALL/examples/advanced/radiation_monitor/.startup.mac
Description: Calls the macros collecting commands for each particular
section of the application. Calls /run/initialize after Physics
setup
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultOptions.mac
Description: Sets messaging options using Geant4 built-in commands and
Radmon commands
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultPhysics.mac
Description: Defines the physics list Low Energy modules for electrons and
photons, Standard modules for Positrons and Muons, Binary
models for hadrons, ICRU models for ions.
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultBeam.mac
Description: Calls one between RadiationEnvironmentBeam and DirectionalBeam
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/RadiationEnvironmentBeam.mac
Description: 250 MeV protons emitted from a sphere centered in the origin,
with radius 2 cm and with protons directed radially inward.
_______
/ \
/ | \
/ \ v / \
| J L |
| --> <-- |....
| 7 r | ^
\ / ^ \ / | 2 cm
\ | / |
\_______/.......v
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DirectionalBeam.mac
Description: 250 MeV protons emitted from a plane of size 1.2x1.2 cm^2,
placed at -2 cm on the z direction, orthogonal to the z
direction, with particles emitted parallel to the z direction
itself
^ y Beam direction
| /| -->
/ | ^ y 7 x
... / | 7 x | /
^ | . | / . --> z
| | | Origin
1.2 cm | | :/ :
| | : :
v...|/: :
<-------------------->
2 cm
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultMaterials.mac
Description: Defines materials needed by the geometry
Elements: H, C, N, O, Na, Al, Si, Ar, Ca, Fe, Cu, W, Au, Pb
Materials: Aluminum, Tungsten, Copper, Gold, Water, EpoxyGlass,
Air, Alumina
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultView.mac
Description: Opens a OPENGL Viewer. Commented parts opens a Raytracing
viewer.
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultGeometry.mac
Description: Calls EnvironmentGeometry, Detectors[Dummy]Geometry,
Packaging[Dummy]Geometry, defines and then places the
multilayers using RelativePositioningPackaging and
ApplyRelativePositioning
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/EnvironmentGeometry.mac
Description: A box of air of 5x5x5 cm3
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DetectorsGeometry.mac
Description: The detailed geometry of REM-TOT-500 and LAAS chips. See
http://www.ge.infn.it/~geant4/hep/radmon/ for a picture of the
chips. Chips dimensions are set using aliases. Aliases
definition is in DetectorsParameters
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DetectorsDummyGeometry.mac
Description: An alternative geometry for the detectors. This geometry is
simpler (less detailed) and fills the same volume (width,
height and thickness) the non-dummy geometry is usefull to
place relatively volumes using OGLSX viewer. This viewer does
not fully support booleans operations heavily used in
geometries defined in non-dummy macros
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DetectorsParameters.mac
Description: Aliases needed in the chip geometry definition
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/PackagingGeometry.mac
Description: The detailed geometry of MIL-STD-105D packaging. See
http://www.ge.infn.it/~geant4/hep/radmon/ for a picture of the
packaging. Packaging dimensions are set using aliases. Aliases
definition is in PackagingParameters
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/PackagingDummyGeometry.mac
Description: An alternative geometry for the packaging. This geometry is
simpler (less detailed) and fills the same volume (width,
height and thickness) of the non-dummy geometry is usefull to
place relatively volumes using OGLSX viewer. This viewer does
not fully support booleans operations heavily used in
geometries defined in non-dummy macros
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/PackagingParameters.mac
Description: Aliases needed in the packagin geometry definition
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/RelativePositioningPackaging.mac
Description: Relative positioning aliases. Needed in the relative
positioning of chips respect to the packaging. These aliases
are used by ApplyRelativePositioning macro
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/ApplyRelativePositioning.mac
Description: Sets the position of four chips (2 LAAS and 2 REM-TOT-500)
relative to the packaging position
Macro: $G4INSTALL/examples/advanced/radiation_monitor/macros/DefaultAnalysis.mac
Description: Sets REM-TOT-500 and LAAS volumes sensitive. Energy deposited
by particles transversing these volumes will be accumulated and
stored for each event in analysis.hbook file. An ntuple will be
created.
11. TO DO
- High precision neutron physics module
- Alternative analysis modules
- Improve analysis capabilities
- Alternative beam generation algorithms
_____________________________________________________________________________
Author: Riccardo Capra <capra@riccardo-capra.it>
Date: 06 December 2005
This file in HTML format and further details ared available at
http://www.ge.infn.it/~geant4/hep/radmon/