Import Geant4 0.1.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 2.1 1998/07/02 15:26:53 gunter Exp $
|
||||
# $Id: GNUmakefile,v 1.1 1999/01/07 16:05:51 gunter Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 2.8 1998/10/30 12:30:12 maire Exp $
|
||||
$Id: History,v 1.4 1999/05/31 14:48:07 maire Exp $
|
||||
--------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,6 +14,19 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
31-05-99 Guy Barrand, Michel Maire
|
||||
- introduce a command interface based on Motif: G4UIXm
|
||||
|
||||
16th April 1999 H.Kurashige
|
||||
- modify ExN03SteppingAction::UserSteppingAction
|
||||
- modify ExN03EventAction
|
||||
- modify ExN03RunAction::BeginOfRunAction/EndOfRunAction
|
||||
- Add cutForGamma/cutForElectron/cutForProton in ExN03PhysicsList
|
||||
- modify ExN03PhysicsList::SetCuts
|
||||
|
||||
10-03-99 Michel Maire
|
||||
- Choose RaneCu as the default random number generator.
|
||||
- print the seed event%n
|
||||
|
||||
9-10-98 John Apostolakis
|
||||
- This used to be example N02. It is now N03.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 2.2 1998/11/27 17:09:02 maire Exp $
|
||||
$Id: README,v 1.2 1999/05/31 14:48:07 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -75,7 +75,7 @@ $Id: README,v 2.2 1998/11/27 17:09:02 maire Exp $
|
||||
|
||||
The Visualization Manager is set in the main().
|
||||
The initialisation of the drawing is done via the command
|
||||
/vis~/create_view in the macro prerunN03.mac. This macro is
|
||||
a set of /vis commands in the macro prerunN03.mac. This macro is
|
||||
automatically read from the main in case of interactive running mode.
|
||||
|
||||
The detector has a default view which is a longitudinal view of the
|
||||
@@ -84,6 +84,11 @@ $Id: README,v 2.2 1998/11/27 17:09:02 maire Exp $
|
||||
The tracks are drawn at the end of event, and erased at the end of run.
|
||||
Optionaly one can choose to draw all particles, only the charged one,
|
||||
or none. This command is defined in EventActionMessenger class.
|
||||
|
||||
NB: the visualization (with OpenGL) assumes two things:
|
||||
1- the visualisation & interfaces categories have been compiled
|
||||
with the environment variable G4VIS_BUILD_OPENGLX_DRIVER.
|
||||
2- exampleN03.cc has been compiled with G4VIS_USE_OPENGLX.
|
||||
|
||||
5- PHYSICS DEMO
|
||||
|
||||
@@ -97,8 +102,18 @@ $Id: README,v 2.2 1998/11/27 17:09:02 maire Exp $
|
||||
|
||||
As a homework try to visualize a gamma conversion alone,
|
||||
or the effect of the multiple scattering.
|
||||
|
||||
6- HOW TO START ?
|
||||
|
||||
6- USER INTERFACES
|
||||
|
||||
The default command interface, called G4UIterminal, is done via
|
||||
standart cin/G4cout.
|
||||
|
||||
On can use a Motif driven command interface (called G4UIXm) if:
|
||||
1- interfaces category has been compiled with G4UI_BUILD_XM_SESSION
|
||||
2- exampleN03.cc has been compiled with G4UI_USE_XM.
|
||||
|
||||
|
||||
7- HOW TO START ?
|
||||
|
||||
- compile and link to generate an executable
|
||||
% cd N03
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: exampleN03.cc,v 2.9 1998/12/08 16:37:30 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: exampleN03.cc,v 1.7 1999/06/04 12:50:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -23,6 +23,8 @@
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4UIterminal.hh"
|
||||
#include "G4UIXm.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
#include "ExN03VisManager.hh"
|
||||
@@ -34,18 +36,13 @@
|
||||
#include "ExN03RunAction.hh"
|
||||
#include "ExN03EventAction.hh"
|
||||
#include "ExN03SteppingAction.hh"
|
||||
|
||||
|
||||
#ifdef GNU_GCC
|
||||
#include <rw/tpordvec.h>
|
||||
#include "ExN03CalorHit.hh"
|
||||
template class RWTPtrOrderedVector <ExN03CalorHit>;
|
||||
template class RWTPtrVector <ExN03CalorHit>;
|
||||
template class G4Allocator <ExN03CalorHit>;
|
||||
#endif
|
||||
#include "Randomize.hh"
|
||||
|
||||
int main(int argc,char** argv) {
|
||||
|
||||
// choose the Random engine
|
||||
HepRandom::setTheEngine(new RanecuEngine);
|
||||
|
||||
// Construct the default run manager
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
|
||||
@@ -54,6 +51,18 @@ int main(int argc,char** argv) {
|
||||
runManager->SetUserInitialization(detector);
|
||||
runManager->SetUserInitialization(new ExN03PhysicsList);
|
||||
|
||||
G4UIsession* session=0;
|
||||
|
||||
if (argc==1) // Define UI session for interactive mode.
|
||||
{
|
||||
// G4UIterminal is a (dumb) terminal.
|
||||
#ifdef G4UI_USE_XM
|
||||
session = new G4UIXm(argc,argv);
|
||||
#else
|
||||
session = new G4UIterminal;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
// visualization manager
|
||||
G4VisManager* visManager = new ExN03VisManager;
|
||||
@@ -72,10 +81,9 @@ int main(int argc,char** argv) {
|
||||
// get the pointer to the User Interface manager
|
||||
G4UImanager* UI = G4UImanager::GetUIpointer();
|
||||
|
||||
if (argc==1) // Define UI session for interactive mode.
|
||||
if (session) // Define UI session for interactive mode.
|
||||
{
|
||||
// G4UIterminal is a (dumb) terminal.
|
||||
G4UIsession * session = new G4UIterminal;
|
||||
UI->ApplyCommand("/control/execute prerunN03.mac");
|
||||
session->SessionStart();
|
||||
delete session;
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
/calor/setNbOfLayers 30
|
||||
/calor/setSizeYZ 1.5 m
|
||||
/calor/update
|
||||
/vis~/clear/scene
|
||||
/gun/particle gamma
|
||||
/gun/energy 500 MeV
|
||||
/run/beamOn 1
|
||||
|
||||
@@ -1,81 +1,80 @@
|
||||
|
||||
***** Table : Nb of materials = 13 *****
|
||||
|
||||
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
|
||||
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
|
||||
---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
|
||||
Material: liquidArgon density: 1.390 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 14.065 cm
|
||||
---> Element: liquidArgon Z = 18.0 N = 40.0 A = 39.95 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm
|
||||
Material: Copper density: 8.960 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.436 cm
|
||||
---> Element: Copper Z = 29.0 N = 63.5 A = 63.55 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
|
||||
Material: Lead density: 11.350 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 5.612 mm
|
||||
---> Element: Lead Z = 82.0 N = 207.2 A = 207.19 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
|
||||
Material: Water density: 1.000 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 36.092 cm
|
||||
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
|
||||
|
||||
Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm
|
||||
Material: Scintillator density: 1.032 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 42.549 cm
|
||||
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 91.45 % Abundance 47.37 %
|
||||
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 8.55 % Abundance 52.63 %
|
||||
|
||||
Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm
|
||||
Material: quartz density: 2.200 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 12.295 cm
|
||||
---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 46.75 % Abundance 33.33 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 53.25 % Abundance 66.67 %
|
||||
|
||||
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
|
||||
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
|
||||
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
|
||||
|
||||
Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m
|
||||
Material: Aerogel density: 200.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.493 m
|
||||
---> Element: Silicon Si Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 29.22 % Abundance 11.12 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 66.49 % Abundance 44.42 %
|
||||
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.19 % Abundance 44.37 %
|
||||
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 0.10 % Abundance 0.09 %
|
||||
|
||||
Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m
|
||||
Material: CarbonicGas density: 27.000 mg/cm3 temperature: 325.00 K pressure: 50.00 atm RadLength: 13.406 m
|
||||
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 27.29 % Abundance 33.33 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 72.71 % Abundance 66.67 %
|
||||
|
||||
Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km
|
||||
Material: WaterSteam density: 0.300 mg/cm3 temperature: 500.00 K pressure: 2.00 atm RadLength: 1.203 km
|
||||
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 11.21 % Abundance 66.67 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 88.79 % Abundance 33.33 %
|
||||
|
||||
Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 6317232936888469300000.000 km
|
||||
Material: Galactic density: 0.000 mg/cm3 temperature: 2.73 K pressure: 0.00 atm RadLength: 6317232936888469291008.000 km
|
||||
---> Element: Galactic Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.786 km
|
||||
Material: Beam density: 0.010 mg/cm3 temperature: 273.15 K pressure: 0.02 atm RadLength: 36.786 km
|
||||
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 30.00 % Abundance 27.29 %
|
||||
|
||||
|
||||
|
||||
The calorimeter is made of 10 layers of: [ 10mm of Lead + 5mm of liquidArgon ]
|
||||
ExN03PhysicsList::SetCuts:CutLength : 2 (mm)
|
||||
|
||||
phot: Total cross sections from a parametrisation(L.Urban). Good description from 10 KeV to 50 MeV for all Z
|
||||
PhysicsTables from 10 keV to 50 MeV in 100 bins.
|
||||
phot: Total cross sections from a parametrisation. Good description from 10 KeV to 50 MeV for all ZSandia crossSection below 50 KeV
|
||||
PhysicsTables from 50 keV to 50 MeV in 100 bins.
|
||||
|
||||
compt: Total cross sections from a parametrisation(L.Urban). Good description from 10 KeV to (100/Z) GeV.
|
||||
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
|
||||
Scattered gamma energy according Klein-Nishina.
|
||||
PhysicsTables from 10 keV to 1e+02 GeV in 100 bins.
|
||||
|
||||
conv: Total cross sections from a parametrisation(L.Urban). Good description from 1.5 MeV to 100 GeV for all Z.
|
||||
conv: Total cross sections from a parametrisation. Good description from 1.5 MeV to 100 GeV for all Z.
|
||||
e+e- energies according Bethe-Heitler
|
||||
PhysicsTables from 1 MeV to 1e+02 GeV in 100 bins.
|
||||
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
displacement of the particle , too.
|
||||
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
|
||||
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
|
||||
|
||||
eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to 100 GeV.
|
||||
delta ray energy sampled from differential Xsection.
|
||||
PhysicsTables from 1 keV to 1e+02 TeV in 100 bins.
|
||||
|
||||
eBrem: Total cross sections from a parametrisation(L.Urban). Good description from 1 KeV to 100 GeV.
|
||||
eBrem: Total cross sections from a parametrisation. Good description from 1 KeV to 100 GeV.
|
||||
log scale extrapolation above 100 GeV
|
||||
Gamma energy sampled from a parametrised formula.
|
||||
PhysicsTables from 1 keV to 1e+02 TeV in 100 bins.
|
||||
@@ -87,7 +86,7 @@ annihil: Total cross section from Heilter formula (annihilation into 2 photons)
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
displacement of the particle , too.
|
||||
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
|
||||
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -97,22 +96,22 @@ hIoni: Knock-on electron cross sections .
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
displacement of the particle , too.
|
||||
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
|
||||
PhysicsTables from 1e+02 eV to 1e+02 TeV in 100 bins.
|
||||
|
||||
MuIoni: knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
delta ray energy sampled from differential Xsection.
|
||||
PhysicsTables from 1 keV to 1e+03 PeV in 100 bins.
|
||||
|
||||
MuBrems: cross sections from R. Kokoulin
|
||||
MuBrems: theoretical cross section
|
||||
Good description up to 1000 TeV.
|
||||
PhysicsTables from 1 GeV to 1e+03 PeV in 100 bins.
|
||||
|
||||
MuPairProd: cross sections from R. Kokoulin
|
||||
MuPairProd: theoretical cross sections
|
||||
Good description up to 1000 TeV.
|
||||
PhysicsTables from 1 GeV to 1e+03 PeV in 50 bins.
|
||||
#
|
||||
# Macro file for the initialization phase of "exampleN02.cc"
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
#
|
||||
# Sets some default verbose
|
||||
# and initializes the graphic.
|
||||
@@ -122,52 +121,64 @@ MuPairProd: cross sections from R. Kokoulin
|
||||
#
|
||||
/run/particle/dumpCutValues
|
||||
============= The cut Energy ==============================
|
||||
gamma e- mu- proton neutron
|
||||
Cut in range [mm] 2 2 2 2 2
|
||||
Cut in energy [KeV]
|
||||
Aluminium 9.6 1e+03 7.4e+03 1.9e+04 0.99
|
||||
liquidArgon 8.6 5.6e+02 4.8e+03 1.2e+04 0.99
|
||||
Copper 36 2.7e+03 1.3e+04 3.4e+04 0.99
|
||||
Lead 1.2e+02 2.6e+03 1.3e+04 3.2e+04 0.99
|
||||
Water 3.9 5.7e+02 5e+03 1.3e+04 0.99
|
||||
Scintillator 3.1 5.8e+02 5e+03 1.3e+04 0.99
|
||||
quartz 7.6 9.1e+02 6.9e+03 1.8e+04 0.99
|
||||
Air 0.99 0.99 82 1.7e+02 0.99
|
||||
Aerogel 2.3 1.8e+02 1.9e+03 4.8e+03 0.99
|
||||
CarbonicGas 0.99 54 6e+02 1.3e+03 0.99
|
||||
WaterSteam 0.99 0.99 30 45 0.99
|
||||
Galactic 0.99 0.99 0.99 0.99 0.99
|
||||
Beam 0.99 0.99 0.99 0.99 0.99
|
||||
gamma e- mu- proton neutron
|
||||
Cut in range 2 mm 2 mm 2 mm 2 mm 2 mm
|
||||
Cut in energy
|
||||
Aluminium 9.56 keV 1.03 MeV 7.44 MeV 19.4 MeV 990 eV
|
||||
liquidArgon 8.59 keV 561 keV 4.78 MeV 12.3 MeV 990 eV
|
||||
Copper 35.7 keV 2.68 MeV 13.3 MeV 34.3 MeV 990 eV
|
||||
Lead 121 keV 2.61 MeV 12.6 MeV 31.8 MeV 990 eV
|
||||
Water 3.89 keV 568 keV 4.96 MeV 13.1 MeV 990 eV
|
||||
Scintillator 3.07 keV 575 keV 5.02 MeV 13.4 MeV 990 eV
|
||||
quartz 7.59 keV 907 keV 6.91 MeV 18.1 MeV 990 eV
|
||||
Air 990 eV 990 eV 82.2 keV 174 keV 990 eV
|
||||
Aerogel 2.32 keV 181 keV 1.9 MeV 4.84 MeV 990 eV
|
||||
CarbonicGas 990 eV 54.1 keV 597 keV 1.34 MeV 990 eV
|
||||
WaterSteam 990 eV 990 eV 29.6 keV 45 keV 990 eV
|
||||
Galactic 990 eV 990 eV 990 eV 990 eV 990 eV
|
||||
Beam 990 eV 990 eV 990 eV 990 eV 990 eV
|
||||
===================================================
|
||||
#
|
||||
# Create empty scene ("world" is default)
|
||||
/vis/scene/create
|
||||
#
|
||||
# Add volume to scene
|
||||
/vis/scene/add/volume
|
||||
#
|
||||
# Create a scene handler for a specific graphics system
|
||||
# Edit the next line(s) to choose another graphic system
|
||||
#
|
||||
#/vis~/create_view/new_graphics_system DAWNFILE
|
||||
/vis~/create_view/new_graphics_system OGLIX
|
||||
/vis~/draw/current
|
||||
/vis~/show/view
|
||||
#/vis/sceneHandler/create DAWNFILE
|
||||
/vis/sceneHandler/create OGLIX
|
||||
#
|
||||
# Create a viewer
|
||||
/vis/viewer/create
|
||||
#
|
||||
# Draw scene
|
||||
/vis/scene/notifyHandlers
|
||||
#
|
||||
# for drawing the tracks
|
||||
# if too many tracks cause core dump => storeTrajectory 0
|
||||
/tracking/storeTrajectory 1
|
||||
#/vis/scene/include/trajectories
|
||||
Idle> /run/particle/dumpCutValues
|
||||
============= The cut Energy ==============================
|
||||
gamma e- mu- proton neutron
|
||||
Cut in range [mm] 2 2 2 2 2
|
||||
Cut in energy [KeV]
|
||||
Aluminium 9.6 1e+03 7.4e+03 1.9e+04 0.99
|
||||
liquidArgon 8.6 5.6e+02 4.8e+03 1.2e+04 0.99
|
||||
Copper 36 2.7e+03 1.3e+04 3.4e+04 0.99
|
||||
Lead 1.2e+02 2.6e+03 1.3e+04 3.2e+04 0.99
|
||||
Water 3.9 5.7e+02 5e+03 1.3e+04 0.99
|
||||
Scintillator 3.1 5.8e+02 5e+03 1.3e+04 0.99
|
||||
quartz 7.6 9.1e+02 6.9e+03 1.8e+04 0.99
|
||||
Air 0.99 0.99 82 1.7e+02 0.99
|
||||
Aerogel 2.3 1.8e+02 1.9e+03 4.8e+03 0.99
|
||||
CarbonicGas 0.99 54 6e+02 1.3e+03 0.99
|
||||
WaterSteam 0.99 0.99 30 45 0.99
|
||||
Galactic 0.99 0.99 0.99 0.99 0.99
|
||||
Beam 0.99 0.99 0.99 0.99 0.99
|
||||
gamma e- mu- proton neutron
|
||||
Cut in range 2 mm 2 mm 2 mm 2 mm 2 mm
|
||||
Cut in energy
|
||||
Aluminium 9.56 keV 1.03 MeV 7.44 MeV 19.4 MeV 990 eV
|
||||
liquidArgon 8.59 keV 561 keV 4.78 MeV 12.3 MeV 990 eV
|
||||
Copper 35.7 keV 2.68 MeV 13.3 MeV 34.3 MeV 990 eV
|
||||
Lead 121 keV 2.61 MeV 12.6 MeV 31.8 MeV 990 eV
|
||||
Water 3.89 keV 568 keV 4.96 MeV 13.1 MeV 990 eV
|
||||
Scintillator 3.07 keV 575 keV 5.02 MeV 13.4 MeV 990 eV
|
||||
quartz 7.59 keV 907 keV 6.91 MeV 18.1 MeV 990 eV
|
||||
Air 990 eV 990 eV 82.2 keV 174 keV 990 eV
|
||||
Aerogel 2.32 keV 181 keV 1.9 MeV 4.84 MeV 990 eV
|
||||
CarbonicGas 990 eV 54.1 keV 597 keV 1.34 MeV 990 eV
|
||||
WaterSteam 990 eV 990 eV 29.6 keV 45 keV 990 eV
|
||||
Galactic 990 eV 990 eV 990 eV 990 eV 990 eV
|
||||
Beam 990 eV 990 eV 990 eV 990 eV 990 eV
|
||||
===================================================
|
||||
Idle> # e+ 300MeV
|
||||
Idle> /gun/particle e+
|
||||
@@ -176,42 +187,54 @@ Idle> /run/beamOn 1
|
||||
### Run 0 start.
|
||||
Start closing geometry.
|
||||
Start Run processing.
|
||||
|
||||
---> Event: 0
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 9876, 54321
|
||||
----------------------------------------
|
||||
>>> Event 0
|
||||
10 hits are stored in ExN03CalorHitsCollection.
|
||||
Absorber: total energy: 2.9e+02 MeV total track length: 16 cm
|
||||
Gap: total energy: 10 MeV total track length: 4.4 cm
|
||||
185 trajectories stored in this event.
|
||||
Absorber: total energy: 2.8e+02 MeV total track length: 14 cm
|
||||
Gap: total energy: 12 MeV total track length: 5.9 cm
|
||||
195 trajectories stored in this event.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 1
|
||||
User=0.12s Real=0.13s Sys=0.033s
|
||||
User=0.28s Real=0.33s Sys=0.03s
|
||||
Idle> #
|
||||
Idle> # list the existing physics processes
|
||||
Idle> /process/list
|
||||
Transportation, msc, hIoni, eIoni
|
||||
eBrem, annihil, MuIoni, MuBrems
|
||||
MuPairProd, phot, compt, conv
|
||||
Transportation, msc, hIoni, MuIoni
|
||||
MuBrems, MuPairProd, eIoni, eBrem
|
||||
annihil, phot, compt, conv
|
||||
Decay
|
||||
Idle> #
|
||||
Idle> # switch off MultipleScattering
|
||||
Idle> /process/inactivate MultipleScattering
|
||||
illegal process (or type) name
|
||||
Idle> /process/inactivate msc
|
||||
Idle> /run/beamOn 1
|
||||
### Run 1 start.
|
||||
Start Run processing.
|
||||
|
||||
---> Event: 0
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 2089514513, 1200712414
|
||||
----------------------------------------
|
||||
>>> Event 0
|
||||
9 hits are stored in ExN03CalorHitsCollection.
|
||||
Absorber: total energy: 2.8e+02 MeV total track length: 16 cm
|
||||
Gap: total energy: 12 MeV total track length: 5.8 cm
|
||||
187 trajectories stored in this event.
|
||||
Absorber: total energy: 2.8e+02 MeV total track length: 15 cm
|
||||
Gap: total energy: 17 MeV total track length: 7.6 cm
|
||||
195 trajectories stored in this event.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 1
|
||||
User=0.12s Real=0.13s Sys=0.017s
|
||||
User=0.25s Real=0.28s Sys=0.02s
|
||||
Idle> #
|
||||
Idle> # switch on MultipleScattering
|
||||
Idle> /process/activate MultipleScattering
|
||||
illegal process (or type) name
|
||||
Idle> /process/activate msc
|
||||
Idle> #
|
||||
Idle> # change detector parameter
|
||||
Idle> /calor/setAbsMat Aluminium
|
||||
@@ -227,22 +250,28 @@ Idle> /calor/setSizeYZ 1.5 m
|
||||
Idle> /calor/update
|
||||
|
||||
The calorimeter is made of 30 layers of: [ 20mm of Aluminium + 50mm of Aerogel ]
|
||||
Idle> /vis~/clear/scene
|
||||
Idle> /gun/particle gamma
|
||||
Idle> /gun/energy 500 MeV
|
||||
Idle> /run/beamOn 1
|
||||
### Run 2 start.
|
||||
Start closing geometry.
|
||||
Start Run processing.
|
||||
|
||||
---> Event: 0
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 900551276, 1952365952
|
||||
----------------------------------------
|
||||
>>> Event 0
|
||||
30 hits are stored in ExN03CalorHitsCollection.
|
||||
Absorber: total energy: 3.8e+02 MeV total track length: 86 cm
|
||||
Gap: total energy: 86 MeV total track length: 2.4 m
|
||||
212 trajectories stored in this event.
|
||||
21 hits are stored in ExN03CalorHitsCollection.
|
||||
Absorber: total energy: 4.2e+02 MeV total track length: 98 cm
|
||||
Gap: total energy: 68 MeV total track length: 1.9 m
|
||||
176 trajectories stored in this event.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 1
|
||||
User=0.32s Real=0.35s Sys=0.033s
|
||||
User=0.62s Real=0.71s Sys=0.09s
|
||||
Idle> G4 kernel has come to Quit state.
|
||||
Deletion of G4 kernel class start.
|
||||
UserDetectorConstruction deleted.
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03CalorHit.hh,v 1.1 1998/10/09 14:54:46 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03CalorHit.hh,v 1.1 1999/01/07 16:05:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03CalorimeterSD.hh,v 1.1 1998/10/09 14:54:46 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03CalorimeterSD.hh,v 1.1 1999/01/07 16:05:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03DetectorConstruction.hh,v 2.3 1998/10/09 15:25:28 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03DetectorConstruction.hh,v 1.1 1999/01/07 16:05:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03DetectorMessenger.hh,v 2.3 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03DetectorMessenger.hh,v 1.1 1999/01/07 16:05:54 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03EventAction.hh,v 2.3 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03EventAction.hh,v 1.3 1999/04/16 11:55:03 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -27,17 +27,19 @@ class ExN03EventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
ExN03EventAction();
|
||||
~ExN03EventAction();
|
||||
virtual ~ExN03EventAction();
|
||||
|
||||
public:
|
||||
void BeginOfEventAction();
|
||||
void EndOfEventAction();
|
||||
virtual void BeginOfEventAction(const G4Event*);
|
||||
virtual void EndOfEventAction(const G4Event*);
|
||||
|
||||
void SetDrawFlag(G4String val) {drawFlag = val;};
|
||||
void SetDrawFlag (G4String val) {drawFlag = val;};
|
||||
void SetPrintModulo(G4int val) {printModulo = val;};
|
||||
|
||||
private:
|
||||
G4int calorimeterCollID; // Hits collection ID
|
||||
G4String drawFlag; // control the drawing of event
|
||||
G4int calorimeterCollID;
|
||||
G4String drawFlag;
|
||||
G4int printModulo;
|
||||
ExN03EventActionMessenger* eventMessenger;
|
||||
};
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03EventActionMessenger.hh,v 1.1 1998/10/09 14:54:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03EventActionMessenger.hh,v 1.2 1999/03/10 16:15:37 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
|
||||
class ExN03EventAction;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -35,6 +36,7 @@ class ExN03EventActionMessenger: public G4UImessenger
|
||||
private:
|
||||
ExN03EventAction* eventAction;
|
||||
G4UIcmdWithAString* DrawCmd;
|
||||
G4UIcmdWithAnInteger* PrintCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03PhysicsList.hh,v 2.4 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03PhysicsList.hh,v 1.2 1999/04/16 11:55:04 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -29,10 +29,19 @@ class ExN03PhysicsList: public G4VUserPhysicsList
|
||||
|
||||
protected:
|
||||
// Construct particle and physics
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
virtual void ConstructParticle();
|
||||
virtual void ConstructProcess();
|
||||
|
||||
void SetCuts(G4double);
|
||||
virtual void SetCuts();
|
||||
|
||||
public:
|
||||
// Set/Get cut values
|
||||
void SetCutForGamma(G4double);
|
||||
void SetCutForElectron(G4double);
|
||||
void SetCutForProton(G4double);
|
||||
G4double GetCutForGamma() const;
|
||||
G4double GetCutForElectron() const;
|
||||
G4double GetCutForProton() const;
|
||||
|
||||
protected:
|
||||
// these methods Construct particles
|
||||
@@ -45,6 +54,12 @@ class ExN03PhysicsList: public G4VUserPhysicsList
|
||||
// these methods Construct physics processes and register them
|
||||
void ConstructGeneral();
|
||||
void ConstructEM();
|
||||
|
||||
private:
|
||||
G4double cutForGamma;
|
||||
G4double cutForElectron;
|
||||
G4double cutForProton;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorAction.hh,v 2.3 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03PrimaryGeneratorAction.hh,v 1.1 1999/01/07 16:05:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.hh,v 2.3 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.1 1999/01/07 16:05:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03RunAction.hh,v 2.3 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03RunAction.hh,v 1.3 1999/04/22 21:45:15 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -30,11 +30,9 @@ class ExN03RunAction : public G4UserRunAction
|
||||
~ExN03RunAction();
|
||||
|
||||
public:
|
||||
void BeginOfRunAction(G4Run*);
|
||||
void EndOfRunAction(G4Run*);
|
||||
void BeginOfRunAction(const G4Run*);
|
||||
void EndOfRunAction(const G4Run*);
|
||||
|
||||
private:
|
||||
G4int runIDcounter;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03SteppingAction.hh,v 2.2 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03SteppingAction.hh,v 1.2 1999/04/16 11:55:06 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -24,9 +24,9 @@ class ExN03SteppingAction : public G4UserSteppingAction
|
||||
{
|
||||
public:
|
||||
ExN03SteppingAction();
|
||||
~ExN03SteppingAction();
|
||||
virtual ~ExN03SteppingAction();
|
||||
|
||||
void UserSteppingAction();
|
||||
virtual void UserSteppingAction(const G4Step*);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03VisManager.hh,v 2.6 1998/10/09 15:48:01 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03VisManager.hh,v 1.2 1999/06/24 07:48:48 stesting Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
#ifndef ExN03VisManager_h
|
||||
#define ExN03VisManager_h 1
|
||||
|
||||
#ifdef G4VIS_USE
|
||||
|
||||
#include "G4VisManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -48,3 +50,5 @@ private:
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -10,13 +10,25 @@
|
||||
#
|
||||
/run/particle/dumpCutValues
|
||||
#
|
||||
# Create empty scene ("world" is default)
|
||||
/vis/scene/create
|
||||
#
|
||||
# Add volume to scene
|
||||
/vis/scene/add/volume
|
||||
#
|
||||
# Create a scene handler for a specific graphics system
|
||||
# Edit the next line(s) to choose another graphic system
|
||||
#
|
||||
#/vis~/create_view/new_graphics_system DAWNFILE
|
||||
/vis~/create_view/new_graphics_system OGLIX
|
||||
/vis~/draw/current
|
||||
/vis~/show/view
|
||||
#/vis/sceneHandler/create DAWNFILE
|
||||
/vis/sceneHandler/create OGLIXm
|
||||
#
|
||||
# Create a viewer
|
||||
/vis/viewer/create
|
||||
#
|
||||
# Draw scene
|
||||
/vis/scene/notifyHandlers
|
||||
#
|
||||
# for drawing the tracks
|
||||
# if too many tracks cause core dump => storeTrajectory 0
|
||||
/tracking/storeTrajectory 1
|
||||
#/vis/scene/include/trajectories
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run1.mac,v 2.2 1998/10/30 12:30:16 maire Exp $
|
||||
# $Id: run1.mac,v 1.1 1999/01/07 16:05:53 gunter Exp $
|
||||
#
|
||||
# Macro file for "exampleN03.cc"
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run2.mac,v 2.2 1998/10/30 12:30:17 maire Exp $
|
||||
# $Id: run2.mac,v 1.2 1999/03/10 16:15:36 maire Exp $
|
||||
#
|
||||
# Macro file of "exampleN03.cc"
|
||||
#
|
||||
@@ -14,6 +14,7 @@
|
||||
#
|
||||
# shoot randomly 20 events
|
||||
#
|
||||
/event/printModulo 5
|
||||
/gun/random on
|
||||
/run/beamOn 20
|
||||
#
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03CalorHit.cc,v 1.1 1998/10/09 14:55:09 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03CalorHit.cc,v 1.1 1999/01/07 16:05:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03CalorimeterSD.cc,v 1.1 1998/10/09 14:55:09 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03CalorimeterSD.cc,v 1.2 1999/01/28 17:11:24 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -69,7 +69,8 @@ G4bool ExN03CalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist)
|
||||
|
||||
G4VPhysicalVolume* physVol = theTouchable->GetVolume();
|
||||
//theTouchable->MoveUpHistory();
|
||||
G4int LayerNumber = theTouchable->GetReplicaNumber(1);
|
||||
G4int LayerNumber = 0;
|
||||
if (Detector->GetNbOfLayers()>1) LayerNumber=theTouchable->GetReplicaNumber(1);
|
||||
|
||||
if (HitID[LayerNumber]==-1)
|
||||
{
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03DetectorConstruction.cc,v 2.5 1998/10/09 15:53:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03DetectorConstruction.cc,v 1.2 1999/02/03 16:07:23 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -50,6 +50,7 @@ ExN03DetectorConstruction::ExN03DetectorConstruction()
|
||||
GapThickness = 5.*mm;
|
||||
NbOfLayers = 10;
|
||||
CalorSizeYZ = 10.*cm;
|
||||
ComputeCalorParameters();
|
||||
|
||||
// create commands for interactive definition of the calorimeter
|
||||
detectorMessenger = new ExN03DetectorMessenger(this);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03DetectorMessenger.cc,v 2.3 1998/10/09 15:53:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03DetectorMessenger.cc,v 1.1 1999/01/07 16:05:56 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03EventAction.cc,v 2.5 1998/10/30 14:41:00 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03EventAction.cc,v 1.3 1999/04/16 11:55:08 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -31,11 +31,13 @@
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "Randomize.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
ExN03EventAction::ExN03EventAction()
|
||||
:calorimeterCollID(-1),drawFlag("all"),eventMessenger(NULL)
|
||||
:calorimeterCollID(-1),drawFlag("all"),eventMessenger(NULL),
|
||||
printModulo(10000)
|
||||
{
|
||||
eventMessenger = new ExN03EventActionMessenger(this);
|
||||
}
|
||||
@@ -49,20 +51,27 @@ ExN03EventAction::~ExN03EventAction()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void ExN03EventAction::BeginOfEventAction()
|
||||
{ if(calorimeterCollID==-1)
|
||||
{
|
||||
void ExN03EventAction::BeginOfEventAction(const G4Event* evt)
|
||||
{
|
||||
|
||||
G4int evtNb = evt->GetEventID();
|
||||
if (evtNb%printModulo == 0)
|
||||
{
|
||||
G4cout << "\n---> Event: " << evtNb << endl;
|
||||
HepRandom::showEngineStatus();
|
||||
}
|
||||
|
||||
if (calorimeterCollID==-1)
|
||||
{
|
||||
G4SDManager * SDman = G4SDManager::GetSDMpointer();
|
||||
calorimeterCollID = SDman->GetCollectionID("CalCollection");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void ExN03EventAction::EndOfEventAction()
|
||||
void ExN03EventAction::EndOfEventAction(const G4Event* evt)
|
||||
{
|
||||
const G4Event* evt = fpEventManager->GetConstCurrentEvent();
|
||||
|
||||
G4cout << ">>> Event " << evt->GetEventID() << endl;
|
||||
|
||||
G4HCofThisEvent* HCE = evt->GetHCofThisEvent();
|
||||
@@ -102,7 +111,7 @@ void ExN03EventAction::EndOfEventAction()
|
||||
if(G4VVisManager::GetConcreteInstance())
|
||||
{
|
||||
for(G4int i=0; i<n_trajectories; i++)
|
||||
{ G4Trajectory* trj = (*(evt->GetTrajectoryContainer()))[i];
|
||||
{ G4Trajectory* trj = (G4Trajectory *)((*(evt->GetTrajectoryContainer()))[i]);
|
||||
if (drawFlag == "all") trj->DrawTrajectory(50);
|
||||
else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.))
|
||||
trj->DrawTrajectory(50);
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03EventActionMessenger.cc,v 1.1 1998/10/09 14:55:10 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03EventActionMessenger.cc,v 1.2 1999/03/10 16:15:38 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include "ExN03EventAction.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -31,6 +32,12 @@ ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct)
|
||||
DrawCmd->SetDefaultValue("charged");
|
||||
DrawCmd->SetCandidates("none charged all");
|
||||
DrawCmd->AvailableForStates(Idle);
|
||||
|
||||
PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this);
|
||||
PrintCmd->SetGuidance("Print events modulo n");
|
||||
PrintCmd->SetParameterName("EventNb",false);
|
||||
PrintCmd->SetRange("EventNb>0");
|
||||
PrintCmd->AvailableForStates(Idle);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -38,6 +45,7 @@ ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct)
|
||||
ExN03EventActionMessenger::~ExN03EventActionMessenger()
|
||||
{
|
||||
delete DrawCmd;
|
||||
delete PrintCmd;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -46,7 +54,9 @@ void ExN03EventActionMessenger::SetNewValue(G4UIcommand * command,G4String newVa
|
||||
{
|
||||
if(command == DrawCmd)
|
||||
{eventAction->SetDrawFlag(newValue);}
|
||||
|
||||
|
||||
if(command == PrintCmd)
|
||||
{eventAction->SetPrintModulo(PrintCmd->GetNewIntValue(newValue));}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03PhysicsList.cc,v 2.5 1998/10/09 15:53:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03PhysicsList.cc,v 1.2 1999/04/16 11:55:09 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -29,7 +29,11 @@
|
||||
ExN03PhysicsList::ExN03PhysicsList(): G4VUserPhysicsList()
|
||||
{
|
||||
defaultCutValue = 2.0*mm;
|
||||
SetVerboseLevel(1);
|
||||
cutForGamma = defaultCutValue;
|
||||
cutForElectron = defaultCutValue;
|
||||
cutForProton = defaultCutValue;
|
||||
|
||||
SetVerboseLevel(1);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -209,29 +213,74 @@ void ExN03PhysicsList::ConstructGeneral()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void ExN03PhysicsList::SetCuts(G4double cut)
|
||||
void ExN03PhysicsList::SetCuts()
|
||||
{
|
||||
if (verboseLevel >0){
|
||||
if (verboseLevel >1){
|
||||
G4cout << "ExN03PhysicsList::SetCuts:";
|
||||
G4cout << "CutLength : " << cut/mm << " (mm)" << endl;
|
||||
}
|
||||
|
||||
// set cut values for gamma at first and for e- second and next for e+,
|
||||
// because some processes for e+/e- need cut values for gamma
|
||||
SetCutValue(cut, "gamma");
|
||||
SetCutValue(cut, "e-");
|
||||
SetCutValue(cut, "e+");
|
||||
SetCutValue(cutForGamma, "gamma");
|
||||
SetCutValue(cutForElectron, "e-");
|
||||
SetCutValue(cutForElectron, "e+");
|
||||
|
||||
// set cut values for proton and anti_proton before all other hadrons
|
||||
// because some processes for hadrons need cut values for proton/anti_proton
|
||||
SetCutValue(cut, "proton");
|
||||
SetCutValue(cut, "anti_proton");
|
||||
|
||||
SetCutValueForOthers(cut);
|
||||
SetCutValue(cutForProton, "proton");
|
||||
SetCutValue(cutForProton, "anti_proton");
|
||||
|
||||
SetCutValueForOthers(defaultCutValue);
|
||||
|
||||
if (verboseLevel>1) DumpCutValuesTable();
|
||||
if (verboseLevel>1) {
|
||||
DumpCutValuesTable();
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
void ExN03PhysicsList::SetCutForGamma(G4double cut)
|
||||
{
|
||||
ResetCuts();
|
||||
cutForGamma = cut;
|
||||
}
|
||||
|
||||
void ExN03PhysicsList::SetCutForElectron(G4double cut)
|
||||
{
|
||||
ResetCuts();
|
||||
cutForElectron = cut;
|
||||
}
|
||||
|
||||
void ExN03PhysicsList::SetCutForProton(G4double cut)
|
||||
{
|
||||
ResetCuts();
|
||||
cutForProton = cut;
|
||||
}
|
||||
|
||||
G4double ExN03PhysicsList::GetCutForGamma() const
|
||||
{
|
||||
return cutForGamma;
|
||||
}
|
||||
|
||||
G4double ExN03PhysicsList::GetCutForElectron() const
|
||||
{
|
||||
return cutForElectron;
|
||||
}
|
||||
|
||||
G4double ExN03PhysicsList::GetCutForProton() const
|
||||
{
|
||||
return cutForGamma;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorAction.cc,v 2.3 1998/10/09 15:53:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03PrimaryGeneratorAction.cc,v 1.1 1999/01/07 16:05:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.cc,v 2.3 1998/10/09 15:53:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.1 1999/01/07 16:05:57 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03RunAction.cc,v 2.7 1998/10/30 14:41:01 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03RunAction.cc,v 1.5 1999/04/22 21:45:24 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -24,7 +24,6 @@
|
||||
|
||||
ExN03RunAction::ExN03RunAction()
|
||||
{
|
||||
runIDcounter = 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -34,26 +33,26 @@ ExN03RunAction::~ExN03RunAction()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void ExN03RunAction::BeginOfRunAction(G4Run* aRun)
|
||||
void ExN03RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
{
|
||||
aRun->SetRunID(runIDcounter++);
|
||||
|
||||
|
||||
G4cout << "### Run " << aRun->GetRunID() << " start." << endl;
|
||||
|
||||
if (G4VVisManager::GetConcreteInstance())
|
||||
{
|
||||
G4UImanager* UI = G4UImanager::GetUIpointer();
|
||||
UI->ApplyCommand("/vis~/clear/view");
|
||||
UI->ApplyCommand("/vis~/draw/current");
|
||||
UI->ApplyCommand("/vis/clear/view");
|
||||
UI->ApplyCommand("/vis/draw/current");
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void ExN03RunAction::EndOfRunAction(G4Run* aRun)
|
||||
void ExN03RunAction::EndOfRunAction(const G4Run* )
|
||||
{
|
||||
if (G4VVisManager::GetConcreteInstance())
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/vis~/show/view");
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/vis/show/view");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03SteppingAction.cc,v 2.2 1998/10/09 15:53:49 japost Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03SteppingAction.cc,v 1.2 1999/04/16 11:55:11 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -27,9 +27,10 @@ ExN03SteppingAction::~ExN03SteppingAction()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void ExN03SteppingAction::UserSteppingAction()
|
||||
void ExN03SteppingAction::UserSteppingAction(const G4Step*)
|
||||
{ }
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: ExN03VisManager.cc,v 2.9 1998/11/30 10:21:29 allison Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
// $Id: ExN03VisManager.cc,v 1.1 1999/01/07 16:05:58 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
Reference in New Issue
Block a user