Import Geant4 5.1.0 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.50 2002/06/25 10:19:41 ribon Exp $
|
||||
$Id: History,v 1.58 2003/03/25 17:13:07 maire Exp $
|
||||
--------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -14,6 +14,29 @@ track of all tags.
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
25-03-03 mma (exampleN03-V05-00-05)
|
||||
- Use G4PVPlacement and G4PVReplica constructors in logical mother.
|
||||
|
||||
20-02-03 V.Ivant (exampleN03-V05-00-04)
|
||||
- Migrade to cut per region
|
||||
|
||||
11-02-03 mma (exampleN03-V05-00-03)
|
||||
- DetectorConstruction : change names of volumes
|
||||
|
||||
30-01-03 mma (exampleN03-V05-00-02)
|
||||
- save random number seed. In README explain the rndm handling.
|
||||
commit rndmSeed.mac to show how to save and reset rndm seed
|
||||
|
||||
18-12-02 mma (exampleN03-V05-00-01)
|
||||
- code for smooth trajectory put in DetectorContruction::SetMagField()
|
||||
and TrackingAction::PreUserTrackingAction()
|
||||
|
||||
16-12-02 mma (exampleN03-V05-00-00)
|
||||
- UI directory /N03/
|
||||
|
||||
19-11-02 jacek
|
||||
- introducing smooth trajectory display
|
||||
|
||||
25-06-02 ribon (exampleN03-V04-00-02)
|
||||
- fixed paths to macros in visTutor/gui.mac.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.8 2001/11/27 11:10:31 maire Exp $
|
||||
$Id: README,v 1.10 2003/01/30 14:14:17 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -117,7 +117,34 @@ $Id: README,v 1.8 2001/11/27 11:10:31 maire Exp $
|
||||
As a homework try to visualize a gamma conversion alone,
|
||||
or the effect of the multiple scattering.
|
||||
|
||||
6- USER INTERFACES
|
||||
6- RANDOM NUMBERS HANDLING
|
||||
|
||||
CLHEP provides several random number engines. In this example the Ranecu
|
||||
engine is choosen at beginning of the main (exampleN03.cc).
|
||||
|
||||
By default, G4RunManager does not save the rndm seed.
|
||||
To do so the user must set in BeginOfRunAction:
|
||||
G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
Then the rndm seed is systematically saved at beginning of run
|
||||
(currentRun.rndm) and beginning of event (currentEvent.rndm)
|
||||
Therefore, in case of abnormal end, the seed of the last event processed
|
||||
is available in currentEvent.rndm
|
||||
|
||||
Even in case of normal run processing, the user may wish to preserve the
|
||||
rndm seed of selected events. At any time in the event, put the
|
||||
following statement:
|
||||
if (condition) G4RunManager::GetRunManager()->rndmSaveThisEvent();
|
||||
currentEvent.rndm will be copied to runXXevntYY.rndm
|
||||
(see ExN03SteppingAction::UserSteppingAction() )
|
||||
|
||||
To restart a run from a given rndm seed, use the UI command :
|
||||
/random/resetEngineFrom fileName
|
||||
|
||||
The macro rndmSeed.mac shows how to save and reset the random number
|
||||
seed between runs, with UI commands.
|
||||
|
||||
7- USER INTERFACES
|
||||
|
||||
The default command interface, called G4UIterminal, is done via
|
||||
standart cin/G4cout.
|
||||
@@ -129,7 +156,7 @@ $Id: README,v 1.8 2001/11/27 11:10:31 maire Exp $
|
||||
2- exampleN03.cc has been compiled with G4UI_USE_XM.
|
||||
|
||||
|
||||
7- HOW TO START ?
|
||||
8- HOW TO START ?
|
||||
|
||||
- compile and link to generate an executable
|
||||
% cd N03
|
||||
|
||||
@@ -21,17 +21,12 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: exampleN03.cc,v 1.16 2002/01/09 17:24:10 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: exampleN03.cc,v 1.18 2002/12/18 15:17:55 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - exampleN03
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// Comments
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
@@ -54,8 +49,11 @@
|
||||
#include "ExN03RunAction.hh"
|
||||
#include "ExN03EventAction.hh"
|
||||
#include "ExN03SteppingAction.hh"
|
||||
#include "ExN03TrackingAction.hh"
|
||||
#include "ExN03SteppingVerbose.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
int main(int argc,char** argv) {
|
||||
|
||||
// choose the Random engine
|
||||
@@ -98,6 +96,7 @@ int main(int argc,char** argv) {
|
||||
runManager->SetUserAction(new ExN03PrimaryGeneratorAction(detector));
|
||||
runManager->SetUserAction(new ExN03RunAction);
|
||||
runManager->SetUserAction(new ExN03EventAction);
|
||||
runManager->SetUserAction(new ExN03TrackingAction);
|
||||
runManager->SetUserAction(new ExN03SteppingAction);
|
||||
|
||||
//Initialize G4 kernel
|
||||
@@ -133,3 +132,4 @@ int main(int argc,char** argv) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
/process/activate msc
|
||||
#
|
||||
# change detector parameter
|
||||
/calor/setAbsMat Aluminium
|
||||
/calor/setGapMat Aerogel
|
||||
/calor/setAbsThick 2. cm
|
||||
/calor/setGapThick 5. cm
|
||||
/calor/setNbOfLayers 30
|
||||
/calor/setSizeYZ 1.5 m
|
||||
/calor/update
|
||||
/N03/det/setAbsMat Aluminium
|
||||
/N03/det/setGapMat Aerogel
|
||||
/N03/det/setAbsThick 2. cm
|
||||
/N03/det/setGapThick 5. cm
|
||||
/N03/det/setNbOfLayers 30
|
||||
/N03/det/setSizeYZ 1.5 m
|
||||
/N03/det/update
|
||||
/gun/particle gamma
|
||||
/gun/energy 500 MeV
|
||||
/run/beamOn 1
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
/process/activate msc
|
||||
#
|
||||
# change detector parameter
|
||||
/calor/setAbsMat Aluminium
|
||||
/calor/setGapMat Aerogel
|
||||
/calor/setAbsThick 2. cm
|
||||
/calor/setGapThick 5. cm
|
||||
/calor/setNbOfLayers 30
|
||||
/calor/setSizeYZ 1.5 m
|
||||
/calor/update
|
||||
/N03/det/setAbsMat Aluminium
|
||||
/N03/det/setGapMat Aerogel
|
||||
/N03/det/setAbsThick 2. cm
|
||||
/N03/det/setGapThick 5. cm
|
||||
/N03/det/setNbOfLayers 30
|
||||
/N03/det/setSizeYZ 1.5 m
|
||||
/N03/det/update
|
||||
#
|
||||
/gun/particle gamma
|
||||
/gun/energy 500 MeV
|
||||
/event/printModulo 500
|
||||
/N03/event/printModulo 500
|
||||
/run/beamOn 5000
|
||||
exit
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-05-00 $
|
||||
(13-Dec-2002)
|
||||
Geant4 version $Name: geant4-05-01 $
|
||||
(30-Apr-2003)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
Visualization Manager instantiating...
|
||||
@@ -18,7 +18,7 @@ Current available graphics systems are:
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
|
||||
***** Table : Nb of materials = 12 *****
|
||||
***** Table : Nb of materials = 13 *****
|
||||
|
||||
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 %
|
||||
@@ -37,6 +37,11 @@ Current available graphics systems are:
|
||||
---> 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: Mylar density: 1.397 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 28.599 cm
|
||||
---> Element: Carbon C Z = 6.0 N = 12.0 A = 12.01 g/mole fractionMass: 62.49 % Abundance 45.45 %
|
||||
---> Element: Hydrogen H Z = 1.0 N = 1.0 A = 1.01 g/mole fractionMass: 4.20 % Abundance 36.36 %
|
||||
---> Element: Oxygen O Z = 8.0 N = 16.0 A = 16.00 g/mole fractionMass: 33.30 % Abundance 18.18 %
|
||||
|
||||
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 %
|
||||
@@ -90,7 +95,8 @@ msc: Tables of transport mean free paths.
|
||||
|
||||
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 100 TeV in 100 bins.
|
||||
PhysicsTables from 1 keV to 100 TeV in 100 bins.
|
||||
Step function: finalRange(mm)= 1, dRoverRange= 0.2
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -106,6 +112,7 @@ hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
delta ray energy sampled from differential Xsection.
|
||||
PhysicsTables from 1 keV to 100 TeV in 100 bins.
|
||||
Step function: finalRange(mm)= 1, dRoverRange= 0.2
|
||||
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
@@ -129,35 +136,32 @@ MuBrems: theoretical cross section
|
||||
MuPairProd: theoretical cross sections
|
||||
Good description up to 1000 PeV.
|
||||
PhysicsTables from 1 keV to 1000 PeV in 150 bins.
|
||||
============= The cut Energy ==============================
|
||||
gamma e-
|
||||
Cut in range
|
||||
Aluminium 1 mm 1 mm
|
||||
liquidArgon 1 mm 1 mm
|
||||
Lead 1 mm 1 mm
|
||||
Water 1 mm 1 mm
|
||||
Scintillator 1 mm 1 mm
|
||||
quartz 1 mm 1 mm
|
||||
Air 1 mm 1 mm
|
||||
Aerogel 1 mm 1 mm
|
||||
CarbonicGas 1 mm 1 mm
|
||||
WaterSteam 1 mm 1 mm
|
||||
Galactic 1 mm 1 mm
|
||||
Beam 1 mm 1 mm
|
||||
Cut in energy
|
||||
Aluminium 6.89 keV 597 keV
|
||||
liquidArgon 6.18 keV 343 keV
|
||||
Lead 101 keV 1.38 MeV
|
||||
Water 2.9 keV 347 keV
|
||||
Scintillator 2.37 keV 356 keV
|
||||
quartz 5.52 keV 534 keV
|
||||
Air 990 eV 990 eV
|
||||
Aerogel 1.71 keV 119 keV
|
||||
CarbonicGas 990 eV 36.5 keV
|
||||
WaterSteam 990 eV 990 eV
|
||||
Galactic 990 eV 990 eV
|
||||
Beam 990 eV 990 eV
|
||||
===================================================
|
||||
|
||||
========= Table of registered couples ==============================
|
||||
|
||||
Index : 0 used in the geometry : Yes recalculation needed : No
|
||||
Material : Galactic
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
|
||||
Energy thresholds : gamma 990 eV e- 990 eV e+ 990 eV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 1 used in the geometry : Yes recalculation needed : No
|
||||
Material : Lead
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
|
||||
Energy thresholds : gamma 100.511 keV e- 1.37814 MeV e+ 1.28002 MeV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
Index : 2 used in the geometry : Yes recalculation needed : No
|
||||
Material : liquidArgon
|
||||
Range cuts : gamma 1 mm e- 1 mm e+ 1 mm
|
||||
Energy thresholds : gamma 6.17835 keV e- 342.891 keV e+ 334.551 keV
|
||||
Region(s) which use this couple :
|
||||
DefaultRegionForTheWorld
|
||||
|
||||
====================================================================
|
||||
|
||||
### Run 0 start.
|
||||
|
||||
---> Begin of event: 0
|
||||
@@ -167,8 +171,8 @@ Cut in energy
|
||||
Current couple of seeds = 9876, 54321
|
||||
----------------------------------------
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 271.238 MeV total track length: 18.8504 cm
|
||||
Gap: total energy: 8.40916 MeV total track length: 4.16209 cm
|
||||
Absorber: total energy: 280.969 MeV total track length: 19.1263 cm
|
||||
Gap: total energy: 15.6581 MeV total track length: 7.72188 cm
|
||||
|
||||
9 hits are stored in ExN03CalorHitsCollection.
|
||||
Transportation, hIoni, msc, eIoni
|
||||
@@ -181,13 +185,13 @@ Cut in energy
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 594012148, 523050693
|
||||
Current couple of seeds = 1882600825, 646183068
|
||||
----------------------------------------
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 266.99 MeV total track length: 18.6743 cm
|
||||
Gap: total energy: 20.1124 MeV total track length: 9.65901 cm
|
||||
Absorber: total energy: 279.503 MeV total track length: 19.5074 cm
|
||||
Gap: total energy: 18.0413 MeV total track length: 8.92458 cm
|
||||
|
||||
10 hits are stored in ExN03CalorHitsCollection.
|
||||
9 hits are stored in ExN03CalorHitsCollection.
|
||||
|
||||
------------------------------------------------------------
|
||||
---> The calorimeter is 10 layers of: [ 10mm of Aluminium + 5mm of liquidArgon ]
|
||||
@@ -200,18 +204,75 @@ Cut in energy
|
||||
------------------------------------------------------------
|
||||
---> The calorimeter is 30 layers of: [ 20mm of Aluminium + 50mm of Aerogel ]
|
||||
------------------------------------------------------------
|
||||
|
||||
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.022 MeV to 100 GeV in 100 bins.
|
||||
|
||||
compt: Total cross sections from a parametrisation. Good description from 10 KeV to (100/Z) GeV.
|
||||
Scattered gamma energy according Klein-Nishina.
|
||||
PhysicsTables from 1 keV to 100 GeV in 80 bins.
|
||||
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
displacement of the particle , too.
|
||||
PhysicsTables from 100 eV to 100 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 100 TeV in 100 bins.
|
||||
Step function: finalRange(mm)= 1, dRoverRange= 0.2
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
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 100 TeV in 100 bins.
|
||||
|
||||
annihil: Total cross section from Heilter formula(annihilation into 2 photons).
|
||||
gamma energies sampled according Heitler
|
||||
PhysicsTables from 10 keV to 10 TeV in 100 bins.
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
delta ray energy sampled from differential Xsection.
|
||||
PhysicsTables from 1 keV to 100 TeV in 100 bins.
|
||||
Step function: finalRange(mm)= 1, dRoverRange= 0.2
|
||||
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
displacement of the particle , too.
|
||||
PhysicsTables from 100 eV to 100 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 1000 PeV in 150 bins.
|
||||
|
||||
msc: Tables of transport mean free paths.
|
||||
New model of MSC , computes the lateral
|
||||
displacement of the particle , too.
|
||||
PhysicsTables from 100 eV to 100 TeV in 100 bins.
|
||||
|
||||
MuBrems: theoretical cross section
|
||||
Good description up to 1000 PeV.
|
||||
PhysicsTables from 1 keV to 1000 PeV in 150 bins.
|
||||
|
||||
MuPairProd: theoretical cross sections
|
||||
Good description up to 1000 PeV.
|
||||
PhysicsTables from 1 keV to 1000 PeV in 150 bins.
|
||||
### Run 2 start.
|
||||
|
||||
---> Begin of event: 0
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 696574897, 750246800
|
||||
Current couple of seeds = 802021539, 124830767
|
||||
----------------------------------------
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 408.79 MeV total track length: 96.801 cm
|
||||
Gap: total energy: 68.9387 MeV total track length: 1.95423 m
|
||||
Absorber: total energy: 373.452 MeV total track length: 90.026 cm
|
||||
Gap: total energy: 77.4747 MeV total track length: 2.1498 m
|
||||
|
||||
21 hits are stored in ExN03CalorHitsCollection.
|
||||
28 hits are stored in ExN03CalorHitsCollection.
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: exo1.mac,v 1.1 2002/02/14 14:35:01 maire Exp $
|
||||
# $Id: exo1.mac,v 1.2 2002/12/16 16:37:25 maire Exp $
|
||||
#
|
||||
# Macro file for "exampleN03.cc"
|
||||
#
|
||||
@@ -8,17 +8,17 @@
|
||||
# Idle> /control/execute exo1.mac
|
||||
#
|
||||
#
|
||||
/calor/setNbOfLayers 1
|
||||
/N03/det/setNbOfLayers 1
|
||||
#
|
||||
/calor/setAbsMat Aluminium
|
||||
/calor/setAbsThick 10 cm
|
||||
/N03/det/setAbsMat Aluminium
|
||||
/N03/det/setAbsThick 10 cm
|
||||
#
|
||||
/calor/setGapMat Air
|
||||
/calor/setGapThick 0 cm
|
||||
/N03/det/setGapMat Air
|
||||
/N03/det/setGapThick 0 cm
|
||||
#
|
||||
/calor/setSizeYZ 10 cm
|
||||
/N03/det/setSizeYZ 10 cm
|
||||
#
|
||||
/calor/update
|
||||
/N03/det/update
|
||||
#
|
||||
/vis/viewer/zoom 1.3
|
||||
#
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: exo2.mac,v 1.1 2002/02/14 14:35:01 maire Exp $
|
||||
# $Id: exo2.mac,v 1.2 2002/12/16 16:37:25 maire Exp $
|
||||
#
|
||||
# Macro file for "exampleN03.cc"
|
||||
#
|
||||
@@ -8,17 +8,17 @@
|
||||
# Idle> /control/execute exo2.mac
|
||||
#
|
||||
#
|
||||
/calor/setNbOfLayers 1
|
||||
/N03/det/setNbOfLayers 1
|
||||
#
|
||||
/calor/setAbsMat Aluminium
|
||||
/calor/setAbsThick 10 cm
|
||||
/N03/det/setAbsMat Aluminium
|
||||
/N03/det/setAbsThick 10 cm
|
||||
#
|
||||
/calor/setGapMat Air
|
||||
/calor/setGapThick 0 cm
|
||||
/N03/det/setGapMat Air
|
||||
/N03/det/setGapThick 0 cm
|
||||
#
|
||||
/calor/setSizeYZ 10 cm
|
||||
/N03/det/setSizeYZ 10 cm
|
||||
#
|
||||
/calor/update
|
||||
/N03/det/update
|
||||
#
|
||||
/vis/viewer/zoom 1.3
|
||||
#
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03CalorHit.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03CalorimeterSD.hh,v 1.4 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03DetectorConstruction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03DetectorMessenger.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03DetectorMessenger.hh,v 1.6 2002/12/16 16:37:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -55,7 +55,8 @@ class ExN03DetectorMessenger: public G4UImessenger
|
||||
private:
|
||||
ExN03DetectorConstruction* ExN03Detector;
|
||||
|
||||
G4UIdirectory* ExN03detDir;
|
||||
G4UIdirectory* N03Dir;
|
||||
G4UIdirectory* detDir;
|
||||
G4UIcmdWithAString* AbsMaterCmd;
|
||||
G4UIcmdWithAString* GapMaterCmd;
|
||||
G4UIcmdWithADoubleAndUnit* AbsThickCmd;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03EventAction.hh,v 1.7 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03EventActionMessenger.hh,v 1.6 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03EventActionMessenger.hh,v 1.7 2002/12/16 16:37:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "G4UImessenger.hh"
|
||||
|
||||
class ExN03EventAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
class G4UIcmdWithAnInteger;
|
||||
|
||||
@@ -50,8 +51,9 @@ class ExN03EventActionMessenger: public G4UImessenger
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
ExN03EventAction* eventAction;
|
||||
G4UIcmdWithAString* DrawCmd;
|
||||
ExN03EventAction* eventAction;
|
||||
G4UIdirectory* eventDir;
|
||||
G4UIcmdWithAString* DrawCmd;
|
||||
G4UIcmdWithAnInteger* PrintCmd;
|
||||
};
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03PhysicsList.hh,v 1.10 2002/03/08 10:48:30 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorAction.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.5 2002/01/09 17:24:11 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.hh,v 1.6 2002/12/16 16:37:26 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "globals.hh"
|
||||
|
||||
class ExN03PrimaryGeneratorAction;
|
||||
class G4UIdirectory;
|
||||
class G4UIcmdWithAString;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -49,7 +50,8 @@ class ExN03PrimaryGeneratorMessenger: public G4UImessenger
|
||||
void SetNewValue(G4UIcommand*, G4String);
|
||||
|
||||
private:
|
||||
ExN03PrimaryGeneratorAction* ExN03Action;
|
||||
ExN03PrimaryGeneratorAction* ExN03Action;
|
||||
G4UIdirectory* gunDir;
|
||||
G4UIcmdWithAString* RndmCmd;
|
||||
};
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03RunAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03SteppingAction.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03SteppingVerbose.hh,v 1.7 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03TrackingAction.hh,v 1.2 2002/12/18 15:17:56 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#ifndef ExN03TrackingAction_h
|
||||
#define ExN03TrackingAction_h
|
||||
|
||||
#include "G4UserTrackingAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
class G4Track;
|
||||
|
||||
class ExN03TrackingAction : public G4UserTrackingAction
|
||||
{
|
||||
public:
|
||||
ExN03TrackingAction() {;}
|
||||
~ExN03TrackingAction() {;}
|
||||
|
||||
void PreUserTrackingAction (const G4Track* aTrack);
|
||||
void PostUserTrackingAction(const G4Track* aTrack) {;}
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03VisManager.hh,v 1.6 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
# Idle> /control/execute newgeom.mac
|
||||
#
|
||||
#
|
||||
/calor/setNbOfLayers 1
|
||||
/N03/det/setNbOfLayers 1
|
||||
#
|
||||
/calor/setAbsMat Water
|
||||
/calor/setAbsThick 40 cm
|
||||
/N03/det/setAbsMat Water
|
||||
/N03/det/setAbsThick 40 cm
|
||||
#
|
||||
/calor/setGapMat Air
|
||||
/calor/setGapThick 0 cm
|
||||
/N03/det/setGapMat Air
|
||||
/N03/det/setGapThick 0 cm
|
||||
#
|
||||
/calor/setSizeYZ 40 cm
|
||||
/N03/det/setSizeYZ 40 cm
|
||||
#
|
||||
/calor/update
|
||||
/N03/det/update
|
||||
#
|
||||
/calor/setField 3 tesla
|
||||
/N03/det/setField 3 tesla
|
||||
#
|
||||
/vis/viewer/zoom 1.3
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# $Id: rndmSeed.mac,v 1.1 2003/01/27 17:55:47 maire Exp $
|
||||
#
|
||||
# This macro illustrates how to save and reset the random number seed
|
||||
#
|
||||
# inform the RunManager to systematically save the seed
|
||||
#
|
||||
/random/setSavingFlag 1
|
||||
#
|
||||
# run 0
|
||||
#
|
||||
/run/beamOn 7
|
||||
#look at what is saved
|
||||
/control/shell ls
|
||||
#
|
||||
# run 1
|
||||
#
|
||||
/run/beamOn
|
||||
#save the seed of this current run
|
||||
/random/saveThisRun
|
||||
/control/shell ls
|
||||
#
|
||||
# run 2
|
||||
#
|
||||
/run/beamOn 4
|
||||
#
|
||||
# restart run 2
|
||||
#
|
||||
/random/resetEngineFrom currentRun.rndm
|
||||
/run/beamOn 4
|
||||
#
|
||||
# restart run 1
|
||||
#
|
||||
/random/resetEngineFrom run1.rndm
|
||||
/run/beamOn
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run2.mac,v 1.5 2000/11/21 10:59:43 maire Exp $
|
||||
# $Id: run2.mac,v 1.6 2002/12/16 16:37:25 maire Exp $
|
||||
#
|
||||
# Macro file of "exampleN03.cc"
|
||||
#
|
||||
@@ -14,8 +14,8 @@
|
||||
#
|
||||
# shoot randomly 20 events
|
||||
#
|
||||
/event/printModulo 5
|
||||
/gun/random on
|
||||
/N03/event/printModulo 5
|
||||
/N03/gun/rndm on
|
||||
/run/beamOn 20
|
||||
#
|
||||
# activate/inactivate physic processes
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03CalorHit.cc,v 1.5 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03CalorimeterSD.cc,v 1.6 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03DetectorConstruction.cc,v 1.11 2002/01/09 17:24:12 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03DetectorConstruction.cc,v 1.15 2003/03/25 17:13:08 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -39,9 +39,11 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4UniformMagField.hh"
|
||||
#include "G4FieldManager.hh"
|
||||
#include "G4UniformMagField.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4IdentityTrajectoryFilter.hh"
|
||||
#include "G4PropagatorInField.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4RunManager.hh"
|
||||
|
||||
@@ -158,6 +160,12 @@ G4Material* Sci = new G4Material(name="Scintillator", density, ncomponents=2);
|
||||
Sci->AddElement(C, natoms=9);
|
||||
Sci->AddElement(H, natoms=10);
|
||||
|
||||
density = 1.397*g/cm3;
|
||||
G4Material* Myl = new G4Material(name="Mylar", density, ncomponents=3);
|
||||
Myl->AddElement(C, natoms=10);
|
||||
Myl->AddElement(H, natoms= 8);
|
||||
Myl->AddElement(O, natoms= 4);
|
||||
|
||||
density = 2.200*g/cm3;
|
||||
G4Material* SiO2 = new G4Material(name="quartz", density, ncomponents=2);
|
||||
SiO2->AddElement(Si, natoms=1);
|
||||
@@ -245,8 +253,8 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
physiWorld = new G4PVPlacement(0, //no rotation
|
||||
G4ThreeVector(), //at (0,0,0)
|
||||
logicWorld, //its logical volume
|
||||
"World", //its name
|
||||
logicWorld, //its logical volume
|
||||
0, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
@@ -267,9 +275,9 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
physiCalor = new G4PVPlacement(0, //no rotation
|
||||
G4ThreeVector(), //at (0,0,0)
|
||||
logicCalor, //its logical volume
|
||||
"Calorimeter", //its name
|
||||
logicCalor, //its logical volume
|
||||
physiWorld, //its mother volume
|
||||
logicWorld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
@@ -285,16 +293,16 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter()
|
||||
if (NbOfLayers > 1)
|
||||
physiLayer = new G4PVReplica("Layer", //its name
|
||||
logicLayer, //its logical volume
|
||||
physiCalor, //its mother
|
||||
logicCalor, //its mother
|
||||
kXAxis, //axis of replication
|
||||
NbOfLayers, //number of replica
|
||||
LayerThickness); //witdth of replica
|
||||
else
|
||||
physiLayer = new G4PVPlacement(0, //no rotation
|
||||
G4ThreeVector(), //at (0,0,0)
|
||||
logicLayer, //its logical volume
|
||||
"Layer", //its name
|
||||
logicLayer, //its logical volume
|
||||
physiCalor, //its mother volume
|
||||
logicCalor, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
}
|
||||
@@ -310,13 +318,13 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
logicAbsorber = new G4LogicalVolume(solidAbsorber, //its solid
|
||||
AbsorberMaterial, //its material
|
||||
"Absorber"); //its name
|
||||
AbsorberMaterial->GetName()); //name
|
||||
|
||||
physiAbsorber = new G4PVPlacement(0, //no rotation
|
||||
G4ThreeVector(-GapThickness/2,0.,0.), //its position
|
||||
"Absorber", //its name
|
||||
logicAbsorber, //its logical volume
|
||||
physiLayer, //its mother
|
||||
logicAbsorber, //its logical volume
|
||||
AbsorberMaterial->GetName(), //its name
|
||||
logicLayer, //its mother
|
||||
false, //no boulean operat
|
||||
0); //copy number
|
||||
|
||||
@@ -333,13 +341,13 @@ G4VPhysicalVolume* ExN03DetectorConstruction::ConstructCalorimeter()
|
||||
|
||||
logicGap = new G4LogicalVolume(solidGap,
|
||||
GapMaterial,
|
||||
"Gap");
|
||||
GapMaterial->GetName());
|
||||
|
||||
physiGap = new G4PVPlacement(0, //no rotation
|
||||
G4ThreeVector(AbsorberThickness/2,0.,0.), //its position
|
||||
"Gap", //its name
|
||||
logicGap, //its logical volume
|
||||
physiLayer, //its mother
|
||||
logicGap, //its logical volume
|
||||
GapMaterial->GetName(), //its name
|
||||
logicLayer, //its mother
|
||||
false, //no boulean operat
|
||||
0); //copy number
|
||||
}
|
||||
@@ -457,6 +465,8 @@ void ExN03DetectorConstruction::SetMagField(G4double fieldValue)
|
||||
{ magField = new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue));
|
||||
fieldMgr->SetDetectorField(magField);
|
||||
fieldMgr->CreateChordFinder(magField);
|
||||
G4TransportationManager::GetTransportationManager()->GetPropagatorInField()
|
||||
->SetTrajectoryFilter(new G4IdentityTrajectoryFilter);
|
||||
} else {
|
||||
magField = 0;
|
||||
fieldMgr->SetDetectorField(magField);
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03DetectorMessenger.cc,v 1.7 2002/12/05 01:07:01 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03DetectorMessenger.cc,v 1.8 2002/12/16 16:37:27 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -44,53 +44,56 @@ ExN03DetectorMessenger::ExN03DetectorMessenger(
|
||||
ExN03DetectorConstruction* ExN03Det)
|
||||
:ExN03Detector(ExN03Det)
|
||||
{
|
||||
ExN03detDir = new G4UIdirectory("/calor/");
|
||||
ExN03detDir->SetGuidance("ExN03 detector control.");
|
||||
|
||||
AbsMaterCmd = new G4UIcmdWithAString("/calor/setAbsMat",this);
|
||||
N03Dir = new G4UIdirectory("/N03/");
|
||||
N03Dir->SetGuidance("UI commands of this example");
|
||||
|
||||
detDir = new G4UIdirectory("/N03/det/");
|
||||
detDir->SetGuidance("detector control");
|
||||
|
||||
AbsMaterCmd = new G4UIcmdWithAString("/N03/det/setAbsMat",this);
|
||||
AbsMaterCmd->SetGuidance("Select Material of the Absorber.");
|
||||
AbsMaterCmd->SetParameterName("choice",false);
|
||||
AbsMaterCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
GapMaterCmd = new G4UIcmdWithAString("/calor/setGapMat",this);
|
||||
GapMaterCmd = new G4UIcmdWithAString("/N03/det/setGapMat",this);
|
||||
GapMaterCmd->SetGuidance("Select Material of the Gap.");
|
||||
GapMaterCmd->SetParameterName("choice",false);
|
||||
GapMaterCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setAbsThick",this);
|
||||
AbsThickCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setAbsThick",this);
|
||||
AbsThickCmd->SetGuidance("Set Thickness of the Absorber");
|
||||
AbsThickCmd->SetParameterName("Size",false);
|
||||
AbsThickCmd->SetRange("Size>=0.");
|
||||
AbsThickCmd->SetUnitCategory("Length");
|
||||
AbsThickCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
GapThickCmd = new G4UIcmdWithADoubleAndUnit("/calor/setGapThick",this);
|
||||
GapThickCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setGapThick",this);
|
||||
GapThickCmd->SetGuidance("Set Thickness of the Gap");
|
||||
GapThickCmd->SetParameterName("Size",false);
|
||||
GapThickCmd->SetRange("Size>=0.");
|
||||
GapThickCmd->SetUnitCategory("Length");
|
||||
GapThickCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/calor/setSizeYZ",this);
|
||||
SizeYZCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setSizeYZ",this);
|
||||
SizeYZCmd->SetGuidance("Set tranverse size of the calorimeter");
|
||||
SizeYZCmd->SetParameterName("Size",false);
|
||||
SizeYZCmd->SetRange("Size>0.");
|
||||
SizeYZCmd->SetUnitCategory("Length");
|
||||
SizeYZCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
NbLayersCmd = new G4UIcmdWithAnInteger("/calor/setNbOfLayers",this);
|
||||
NbLayersCmd = new G4UIcmdWithAnInteger("/N03/det/setNbOfLayers",this);
|
||||
NbLayersCmd->SetGuidance("Set number of layers.");
|
||||
NbLayersCmd->SetParameterName("NbLayers",false);
|
||||
NbLayersCmd->SetRange("NbLayers>0 && NbLayers<500");
|
||||
NbLayersCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
UpdateCmd = new G4UIcmdWithoutParameter("/calor/update",this);
|
||||
UpdateCmd = new G4UIcmdWithoutParameter("/N03/det/update",this);
|
||||
UpdateCmd->SetGuidance("Update calorimeter geometry.");
|
||||
UpdateCmd->SetGuidance("This command MUST be applied before \"beamOn\" ");
|
||||
UpdateCmd->SetGuidance("if you changed geometrical value(s).");
|
||||
UpdateCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/calor/setField",this);
|
||||
MagFieldCmd = new G4UIcmdWithADoubleAndUnit("/N03/det/setField",this);
|
||||
MagFieldCmd->SetGuidance("Define magnetic field.");
|
||||
MagFieldCmd->SetGuidance("Magnetic field will be in Z direction.");
|
||||
MagFieldCmd->SetParameterName("Bz",false);
|
||||
@@ -107,7 +110,8 @@ ExN03DetectorMessenger::~ExN03DetectorMessenger()
|
||||
delete AbsThickCmd; delete GapThickCmd;
|
||||
delete SizeYZCmd; delete UpdateCmd;
|
||||
delete MagFieldCmd;
|
||||
delete ExN03detDir;
|
||||
delete detDir;
|
||||
delete N03Dir;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03EventAction.cc,v 1.16 2002/01/09 17:24:13 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03EventAction.cc,v 1.17 2003/02/10 18:39:49 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03EventActionMessenger.cc,v 1.8 2002/12/05 01:07:01 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03EventActionMessenger.cc,v 1.9 2002/12/16 16:37:27 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "ExN03EventActionMessenger.hh"
|
||||
|
||||
#include "ExN03EventAction.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "globals.hh"
|
||||
@@ -40,8 +41,11 @@
|
||||
|
||||
ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct)
|
||||
:eventAction(EvAct)
|
||||
{
|
||||
DrawCmd = new G4UIcmdWithAString("/event/drawTracks",this);
|
||||
{
|
||||
eventDir = new G4UIdirectory("/N03/event/");
|
||||
eventDir->SetGuidance("event control");
|
||||
|
||||
DrawCmd = new G4UIcmdWithAString("/N03/event/drawTracks",this);
|
||||
DrawCmd->SetGuidance("Draw the tracks in the event");
|
||||
DrawCmd->SetGuidance(" Choice : none, charged(default),neutral, all");
|
||||
DrawCmd->SetParameterName("choice",true);
|
||||
@@ -49,7 +53,7 @@ ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct)
|
||||
DrawCmd->SetCandidates("none charged neutral all");
|
||||
DrawCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
PrintCmd = new G4UIcmdWithAnInteger("/event/printModulo",this);
|
||||
PrintCmd = new G4UIcmdWithAnInteger("/N03/event/printModulo",this);
|
||||
PrintCmd->SetGuidance("Print events modulo n");
|
||||
PrintCmd->SetParameterName("EventNb",false);
|
||||
PrintCmd->SetRange("EventNb>0");
|
||||
@@ -61,7 +65,8 @@ ExN03EventActionMessenger::ExN03EventActionMessenger(ExN03EventAction* EvAct)
|
||||
ExN03EventActionMessenger::~ExN03EventActionMessenger()
|
||||
{
|
||||
delete DrawCmd;
|
||||
delete PrintCmd;
|
||||
delete PrintCmd;
|
||||
delete eventDir;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03PhysicsList.cc,v 1.13 2002/03/08 10:48:30 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03PhysicsList.cc,v 1.14 2003/02/20 14:46:57 vnivanch Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
#include "G4ParticleTypes.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -292,22 +292,14 @@ void ExN03PhysicsList::SetCuts()
|
||||
if (verboseLevel >0){
|
||||
G4cout << "ExN03PhysicsList::SetCuts:";
|
||||
G4cout << "CutLength : " << G4BestUnit(defaultCutValue,"Length") << G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
// 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(defaultCutValue, "gamma");
|
||||
SetCutValue(defaultCutValue, "e-");
|
||||
SetCutValue(defaultCutValue, "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(defaultCutValue, "proton");
|
||||
SetCutValue(defaultCutValue, "anti_proton");
|
||||
|
||||
SetCutValueForOthers(defaultCutValue);
|
||||
|
||||
if (verboseLevel>0) DumpCutValuesTable();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.7 2002/12/05 01:07:01 asaim Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03PrimaryGeneratorMessenger.cc,v 1.8 2002/12/16 16:37:27 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "ExN03PrimaryGeneratorMessenger.hh"
|
||||
|
||||
#include "ExN03PrimaryGeneratorAction.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -39,8 +40,11 @@
|
||||
ExN03PrimaryGeneratorMessenger::ExN03PrimaryGeneratorMessenger(
|
||||
ExN03PrimaryGeneratorAction* ExN03Gun)
|
||||
:ExN03Action(ExN03Gun)
|
||||
{
|
||||
RndmCmd = new G4UIcmdWithAString("/gun/random",this);
|
||||
{
|
||||
gunDir = new G4UIdirectory("/N03/gun/");
|
||||
gunDir->SetGuidance("PrimaryGenerator control");
|
||||
|
||||
RndmCmd = new G4UIcmdWithAString("/N03/gun/rndm",this);
|
||||
RndmCmd->SetGuidance("Shoot randomly the incident particle.");
|
||||
RndmCmd->SetGuidance(" Choice : on(default), off");
|
||||
RndmCmd->SetParameterName("choice",true);
|
||||
@@ -54,6 +58,7 @@ ExN03PrimaryGeneratorMessenger::ExN03PrimaryGeneratorMessenger(
|
||||
ExN03PrimaryGeneratorMessenger::~ExN03PrimaryGeneratorMessenger()
|
||||
{
|
||||
delete RndmCmd;
|
||||
delete gunDir;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03RunAction.cc,v 1.10 2002/01/09 17:24:13 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03RunAction.cc,v 1.12 2003/01/30 14:14:19 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#include "ExN03RunAction.hh"
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4VVisManager.hh"
|
||||
#include "G4ios.hh"
|
||||
@@ -49,15 +50,16 @@ ExN03RunAction::~ExN03RunAction()
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ExN03RunAction::BeginOfRunAction(const G4Run* aRun)
|
||||
{
|
||||
|
||||
{
|
||||
G4cout << "### Run " << aRun->GetRunID() << " start." << G4endl;
|
||||
|
||||
if (G4VVisManager::GetConcreteInstance())
|
||||
{
|
||||
G4UImanager* UI = G4UImanager::GetUIpointer();
|
||||
UI->ApplyCommand("/vis/scene/notifyHandlers");
|
||||
}
|
||||
//inform the runManager to save random number seed
|
||||
G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
//visualization
|
||||
if (G4VVisManager::GetConcreteInstance()) {
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/vis/scene/notifyHandlers");
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03SteppingAction.cc,v 1.6 2002/01/09 17:24:13 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03SteppingAction.cc,v 1.7 2003/01/30 14:14:19 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
|
||||
#include "ExN03SteppingAction.hh"
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
ExN03SteppingAction::ExN03SteppingAction()
|
||||
@@ -44,7 +46,10 @@ ExN03SteppingAction::~ExN03SteppingAction()
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ExN03SteppingAction::UserSteppingAction(const G4Step*)
|
||||
{ }
|
||||
{
|
||||
// save the random number seed of this event, under condition
|
||||
//// if(condition) G4RunManager::GetRunManager()->rndmSaveThisEvent();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03SteppingVerbose.cc,v 1.9 2002/01/09 17:24:13 ranjard Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// $Id: ExN03SteppingVerbose.cc,v 1.10 2003/02/10 18:39:49 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -73,7 +73,8 @@ void ExN03SteppingVerbose::StepInfo()
|
||||
<< G4std::setw(6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< G4std::setw(6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< G4std::setw(6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
<< G4std::setw(6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
|
||||
<< " ";
|
||||
|
||||
// if( fStepStatus != fWorldBoundary){
|
||||
if( fTrack->GetNextVolume() != 0 ) {
|
||||
@@ -162,7 +163,8 @@ G4int prec = G4cout.precision(3);
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetKineticEnergy(),"Energy")
|
||||
<< G4std::setw( 6) << G4BestUnit(fStep->GetTotalEnergyDeposit(),"Energy")
|
||||
<< G4std::setw( 6) << G4BestUnit(fStep->GetStepLength(),"Length")
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length");
|
||||
<< G4std::setw( 6) << G4BestUnit(fTrack->GetTrackLength(),"Length")
|
||||
<< " ";
|
||||
|
||||
if(fTrack->GetNextVolume()){
|
||||
G4cout << G4std::setw(10) << fTrack->GetVolume()->GetName();
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: ExN03TrackingAction.cc,v 1.3 2002/12/18 15:17:56 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
#include "ExN03TrackingAction.hh"
|
||||
#include "G4SmoothTrajectory.hh"
|
||||
#include "G4TrackingManager.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void ExN03TrackingAction :: PreUserTrackingAction(const G4Track* aTrack)
|
||||
{
|
||||
fpTrackingManager->SetTrajectory(new G4SmoothTrajectory(aTrack));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: ExN03VisManager.cc,v 1.10 2002/11/13 19:14:38 duns Exp $
|
||||
// GEANT4 tag $Name: geant4-05-00 $
|
||||
// GEANT4 tag $Name: geant4-05-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
Reference in New Issue
Block a user