Import Geant4 9.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:37:50 +02:00
parent a8e9364cea
commit 96c8bcd0af
6923 changed files with 198390 additions and 41849 deletions
@@ -1,4 +1,4 @@
$Id: History,v 1.2 2007/02/16 11:59:47 maire Exp $
$Id: History,v 1.4 2007/11/20 14:15:18 maire Exp $
----------------------------------------------------
=========================================================
@@ -15,6 +15,12 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
20-nov-07 mma (testem18-V09-00-01)
- PhysicsList : more EmOptions
13-nov-07 mma (testem18-V09-00-00)
- HistoManager/HistoMessenger : print selected histos on ascii file
16-feb-07 mma (testem18-V08-02-01)
- add Water-vapor
- correct RunAction::GetEnergyFromRange()
@@ -1,4 +1,4 @@
$Id: README,v 1.1 2007/02/13 17:57:19 maire Exp $
$Id: README,v 1.2 2007/11/13 16:43:59 maire Exp $
-------------------------------------------------------------------
=========================================================
@@ -66,6 +66,10 @@ $Id: README,v 1.1 2007/02/13 17:57:19 maire Exp $
the commands:
/testem/histo/setFileName name (default testem18)
/testem/histo/setFileType name (default hbook)
It is also possible to print selected histograms on an ascii file:
/testem/histo/printHisto id
All selected histos will be written on a file name.ascii (default testem18)
Note that, by default, histograms are disabled. To activate them, uncomment
the flag G4ANALYSIS_USE in GNUmakefile.
@@ -25,7 +25,7 @@
//
//
// $Id: TestEm18.cc,v 1.1 2007/02/13 17:57:19 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -1,6 +1,6 @@
*************************************************************
Geant4 version Name: geant4-09-00-cand-03 (29-June-2007)
Geant4 version Name: global-V09-00-02 (14-December-2007)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
@@ -9,40 +9,40 @@
***** Table : Nb of materials = 11 *****
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 RadL: 285.161 m Imean: 85.684 eV temperature: 273.15 K pressure: 1.00 atm
---> Element: Nitrogen (N) Z = 7.0 N = 14.0 A = 14.01 g/mole ElmMassFraction: 70.00 % ElmAbundance 72.71 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 30.00 % ElmAbundance 27.29 %
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 RadL: 36.092 cm Imean: 75.000 eV
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ElmMassFraction: 11.21 % ElmAbundance 66.67 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 88.79 % ElmAbundance 33.33 %
Material: Water_vapor density: 1.000 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 360.925 m
Material: Water_vapor density: 1.000 mg/cm3 RadL: 360.925 m Imean: 75.000 eV temperature: 273.15 K pressure: 1.00 atm
---> Element: Hydrogen (H) Z = 1.0 N = 1.0 A = 1.01 g/mole ElmMassFraction: 11.21 % ElmAbundance 66.67 %
---> Element: Oxygen (O) Z = 8.0 N = 16.0 A = 16.00 g/mole ElmMassFraction: 88.79 % ElmAbundance 33.33 %
Material: Carbon density: 2.267 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 18.833 cm
Material: Carbon density: 2.267 g/cm3 RadL: 18.833 cm Imean: 78.000 eV
---> Element: Carbon ( ) Z = 6.0 N = 12.0 A = 12.01 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
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 RadL: 8.893 cm Imean: 166.400 eV
---> Element: Aluminium ( ) Z = 13.0 N = 27.0 A = 26.98 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
Material: Silicon density: 2.330 g/cm3 RadL: 9.368 cm Imean: 173.600 eV
---> Element: Silicon ( ) Z = 14.0 N = 28.1 A = 28.09 g/mole ElmMassFraction: 100.00 % ElmAbundance 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 RadL: 14.065 cm Imean: 187.200 eV
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
Material: Iron density: 7.870 g/cm3 RadL: 1.759 cm Imean: 286.000 eV
---> Element: Iron ( ) Z = 26.0 N = 55.9 A = 55.85 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Germanium density: 5.323 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 2.301 cm
Material: Germanium density: 5.323 g/cm3 RadL: 2.301 cm Imean: 332.800 eV
---> Element: Germanium ( ) Z = 32.0 N = 72.6 A = 72.61 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: Tungsten density: 19.300 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 3.504 mm
Material: Tungsten density: 19.300 g/cm3 RadL: 3.504 mm Imean: 725.200 eV
---> Element: Tungsten ( ) Z = 74.0 N = 183.8 A = 183.85 g/mole ElmMassFraction: 100.00 % ElmAbundance 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 RadL: 5.612 mm Imean: 820.000 eV
---> Element: Lead ( ) Z = 82.0 N = 207.2 A = 207.19 g/mole ElmMassFraction: 100.00 % ElmAbundance 100.00 %
@@ -63,7 +63,7 @@ physicsList->Construct() start.
physicsList->setCut() start.
PhysicsList::SetCuts:CutLength : 1 mm
#
/gun/particle e-
/gun/particle e-
/gun/energy 10 MeV
#
/run/beamOn 100000
@@ -74,38 +74,38 @@ phot: Total cross sections from Sandia parametrisation.
compt: Total cross sections has a good parametrisation from 10 KeV to (100/Z) GeV
Sampling according Klein-Nishina model
tables are built for gamma
Lambda tables from 100 eV to 100 GeV in 90 bins.
Lambda tables from 100 eV to 100 TeV in 1200 bins.
conv: Total cross sections has a good parametrisation from 1.5 MeV to 100 GeV for all Z;
sampling secondary e+e- according Bethe-Heitler model
tables are built for gamma
Lambda tables from 1.022 MeV to 100 GeV in 100 bins.
Lambda tables from 1.022 MeV to 100 TeV in 1200 bins.
eIoni: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Delta cross sections and sampling from MollerBhabha model
Good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
eBrem: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Total cross sections and sampling from StandBrem model (based on the EEDL data library)
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. LPM flag 1
eIoni: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Delta cross sections and sampling from MollerBhabha model
Good description from 1 KeV to 100 GeV.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
eBrem: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Total cross sections and sampling from StandBrem model (based on the EEDL data library)
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV. LPM flag 1
@@ -114,87 +114,87 @@ annihil: Sampling according eplus2gg model
Lambda tables from 100 eV to 100 TeV in 120 bins.
hIoni: tables are built for proton
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Scaling relation is used from proton dE/dx and range.
Delta cross sections and sampling from BetheBloch model for scaled energy > 2 MeV
Parametrisation from Bragg for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
ionIoni: tables are built for GenericIon
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Scaling relation is used from proton dE/dx and range.
Delta cross sections and sampling from BetheBloch model for scaled energy > 2 MeV
Parametrisation from BraggIon for protons below. NuclearStopping 1
Stopping Power data for 8 ion/material pairs are used.
Step function: finalRange(mm)= 0.1, dRoverRange= 0.1, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
hIoni: tables are built for anti_proton
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Scaling relation is used from proton dE/dx and range.
Delta cross sections and sampling from BetheBloch model for scaled energy > 2 MeV
Parametrisation from Bragg for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
muIoni: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below,
radiative corrections for E > 1 GeV
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
muBrems: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Parametrised model
muPairProd: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Parametrised model
muIoni: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Bether-Bloch model for E > 0.2 MeV, parametrisation of Bragg peak below,
radiative corrections for E > 1 GeV
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
muBrems: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Parametrised model
muPairProd: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Parametrised model
hIoni: tables are built for pi+
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Scaling relation is used from proton dE/dx and range.
Delta cross sections and sampling from BetheBloch model for scaled energy > 0.297504 MeV
Parametrisation from Bragg for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
hIoni: tables are built for pi-
dE/dx and range tables from 100 eV to 100 TeV in 480 bins.
Lambda tables from threshold to 100 TeV in 480 bins.
dE/dx and range tables from 100 eV to 100 TeV in 1200 bins.
Lambda tables from threshold to 100 TeV in 1200 bins.
Scaling relation is used from proton dE/dx and range.
Delta cross sections and sampling from BetheBloch model for scaled energy > 0.297504 MeV
Parametrisation from Bragg for protons below.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 1
CSDA range table up to 100 TeV in 480 bins.
Step function: finalRange(mm)= 0.01, dRoverRange= 0.2, integral: 1, fluct: 1
CSDA range table up to 100 TeV in 1200 bins.
Region <DefaultRegionForTheWorld> -- appears in <Water> world volume
Root logical volume(s) : Water
@@ -248,7 +248,7 @@ Start Run processing.
Run terminated.
Run Summary
Number of events processed : 100000
User=47.51s Real=47.52s Sys=0s
User=48.4s Real=48.4s Sys=0s
======================== run summary ======================
@@ -256,19 +256,19 @@ Run Summary
===========================================================
trackLength= 1.0005 cm nb of steps= 1.5539 stepSize= 6.4383 mm
trackLength= 1.0005 cm nb of steps= 1.5836 stepSize= 6.3178 mm
d-rays : eLoss/primary= 245.12 keV nb of d-rays= 0.23468 <Tkin>= 1.0445 MeV Tmin= 347.15 keV Tmax= 4.9503 MeV
d-rays : eLoss/primary= 247.88 keV nb of d-rays= 0.2368 <Tkin>= 1.0468 MeV Tmin= 347.15 keV Tmax= 4.9503 MeV
brems : eLoss/primary= 176.1 keV nb of gammas= 0.30529 <Tkin>= 576.82 keV Tmin= 2.9021 keV Tmax= 9.7003 MeV
brems : eLoss/primary= 177.14 keV nb of gammas= 0.3051 <Tkin>= 580.59 keV Tmin= 2.9021 keV Tmax= 9.6977 MeV
deposit : eLoss/primary= 1.7338 MeV <dEcut > table= 1.7348 MeV ---> simul/reference= 0.99947
deposit : eLoss/primary= 1.7336 MeV <dEcut > table= 1.7348 MeV ---> simul/reference= 0.99932
total : eLoss/primary= 2.1551 MeV <dEfull> table= 2.1626 MeV ---> simul/reference= 0.99653
total : eLoss/primary= 2.1586 MeV <dEfull> table= 2.1627 MeV ---> simul/reference= 0.9981
--------- Ranecu engine status ---------
Initial seed (index) = 0
Current couple of seeds = 1318030641, 1948814343
Current couple of seeds = 539777958, 476209442
----------------------------------------
UserDetectorConstruction deleted.
UserPhysicsList deleted.
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: DetectorConstruction.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: DetectorMessenger.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventAction.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventMessenger.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoManager.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// $Id: HistoManager.hh,v 1.2 2007/11/13 16:43:59 maire Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -63,7 +63,8 @@ class HistoManager
void SetHisto (G4int,G4int,G4double,G4double,const G4String& unit="none");
void FillHisto(G4int id, G4double e, G4double weight = 1.0);
void RemoveHisto (G4int);
void PrintHisto (G4int);
G4bool HistoExist (G4int id) {return exist[id];}
G4double GetHistoUnit(G4int id) {return Unit[id];}
G4double GetBinWidth (G4int id) {return Width[id];}
@@ -84,8 +85,13 @@ class HistoManager
G4double Vmax [MaxHisto];
G4double Unit [MaxHisto];
G4double Width[MaxHisto];
G4bool ascii[MaxHisto];
G4bool factoryOn;
HistoMessenger* histoMessenger;
private:
void saveAscii();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoMessenger.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// $Id: HistoMessenger.hh,v 1.2 2007/11/13 16:43:59 maire Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -61,8 +61,9 @@ class HistoMessenger: public G4UImessenger
G4UIdirectory* histoDir;
G4UIcmdWithAString* factoryCmd;
G4UIcmdWithAString* typeCmd;
G4UIcmdWithAString* optionCmd;
G4UIcmdWithAString* optionCmd;
G4UIcommand* histoCmd;
G4UIcmdWithAnInteger* prhistoCmd;
G4UIcmdWithAnInteger* rmhistoCmd;
};
@@ -25,7 +25,7 @@
//
//
// $Id: PhysListEmLivermore.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PhysListEmPenelope.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PhysListEmStandard.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PhysicsList.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PhysicsListMessenger.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PrimaryGeneratorAction.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RunAction.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StackingAction.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StepMax.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StepMaxMessenger.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: SteppingAction.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: SteppingVerbose.hh,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
// This class manages the verbose outputs in G4SteppingManager.
// It inherits from G4SteppingVerbose.
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: DetectorConstruction.cc,v 1.2 2007/02/16 11:59:47 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: DetectorMessenger.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventAction.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: EventMessenger.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoManager.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// $Id: HistoManager.cc,v 1.2 2007/11/13 16:43:59 maire Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -61,6 +61,7 @@ HistoManager::HistoManager()
exist[k] = false;
Unit[k] = 1.0;
Width[k] = 1.0;
ascii[k] = false;
}
histoMessenger = new HistoMessenger(this);
@@ -127,6 +128,7 @@ void HistoManager::save()
{
#ifdef G4ANALYSIS_USE
if (factoryOn) {
saveAscii(); // Write ascii file, if any
tree->commit(); // Writing the histograms to the file
tree->close(); // and closing the tree (and the file)
G4cout << "\n----> Histogram Tree is saved in " << fileName[1] << G4endl;
@@ -212,4 +214,43 @@ void HistoManager::RemoveHisto(G4int ih)
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void HistoManager::PrintHisto(G4int ih)
{
if (ih < MaxHisto) ascii[ih] = true;
else
G4cout << "---> warning from HistoManager::PrintHisto() : histo " << ih
<< "does not exist" << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
#include <fstream>
void HistoManager::saveAscii()
{
#ifdef G4ANALYSIS_USE
G4String name = fileName[0] + ".ascii";
std::ofstream File(name, std::ios::out);
File.setf( std::ios::scientific, std::ios::floatfield );
//write selected histograms
for (G4int ih=0; ih<MaxHisto; ih++) {
if (exist[ih] && ascii[ih]) {
File << "\n 1D histogram " << ih << ": " << Title[ih]
<< "\n \n \t X \t\t Y" << G4endl;
for (G4int iBin=0; iBin<Nbins[ih]; iBin++) {
File << " " << iBin << "\t"
<< histo[ih]->binMean(iBin) << "\t"
<< histo[ih]->binHeight(iBin)
<< G4endl;
}
}
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: HistoMessenger.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// $Id: HistoMessenger.cc,v 1.2 2007/11/13 16:43:59 maire Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -57,7 +57,7 @@ HistoMessenger::HistoMessenger(HistoManager* manager)
optionCmd = new G4UIcmdWithAString("/testem/histo/setFileOption",this);
optionCmd->SetGuidance("set option for the histograms file");
histoCmd = new G4UIcommand("/testem/histo/setHisto",this);
histoCmd->SetGuidance("Set bining of the histo number ih :");
histoCmd->SetGuidance(" nbBins; valMin; valMax; unit (of vmin and vmax)");
@@ -85,6 +85,11 @@ HistoMessenger::HistoMessenger(HistoManager* manager)
unit->SetDefaultValue("none");
histoCmd->SetParameter(unit);
prhistoCmd = new G4UIcmdWithAnInteger("/testem/histo/printHisto",this);
prhistoCmd->SetGuidance("print histo #id on ascii file");
prhistoCmd->SetParameterName("id",false);
prhistoCmd->SetRange("id>0");
rmhistoCmd = new G4UIcmdWithAnInteger("/testem/histo/removeHisto",this);
rmhistoCmd->SetGuidance("desactivate histo #id");
rmhistoCmd->SetParameterName("id",false);
@@ -96,8 +101,9 @@ HistoMessenger::HistoMessenger(HistoManager* manager)
HistoMessenger::~HistoMessenger()
{
delete rmhistoCmd;
delete prhistoCmd;
delete histoCmd;
delete optionCmd;
delete optionCmd;
delete typeCmd;
delete factoryCmd;
delete histoDir;
@@ -126,7 +132,10 @@ void HistoMessenger::SetNewValue(G4UIcommand* command, G4String newValues)
if (unit != "none") vUnit = G4UIcommand::ValueOf(unit);
histoManager->SetHisto (ih,nbBins,vmin*vUnit,vmax*vUnit,unit);
}
if (command == prhistoCmd)
histoManager->PrintHisto(prhistoCmd->GetNewIntValue(newValues));
if (command == rmhistoCmd)
histoManager->RemoveHisto(rmhistoCmd->GetNewIntValue(newValues));
}
@@ -25,7 +25,7 @@
//
//
// $Id: PhysListEmLivermore.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -25,7 +25,7 @@
//
//
// $Id: PhysListEmPenelope.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PhysListEmStandard.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: PhysicsList.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// $Id: PhysicsList.cc,v 1.2 2007/11/20 14:15:18 maire Exp $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -178,11 +178,27 @@ void PhysicsList::ConstructProcess()
emPhysicsList->ConstructProcess();
AddStepMax();
// Em options
//
G4EmProcessOptions emOptions;
//physics tables
//
emOptions.SetMinEnergy(100*eV);
emOptions.SetMaxEnergy(100*TeV);
emOptions.SetDEDXBinning(1200);
emOptions.SetLambdaBinning(1200);
//energy loss
//
emOptions.SetStepFunction(0.2, 10*um);
emOptions.SetLinearLossLimit(1.e-6);
//build CSDA range
//
emOptions.SetBuildCSDARange(true);
emOptions.SetMaxEnergyForCSDARange(100*TeV);
emOptions.SetDEDXBinningForCSDARange(480);
emOptions.SetDEDXBinning(480);
emOptions.SetDEDXBinningForCSDARange(1200);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PhysicsListMessenger.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: PrimaryGeneratorAction.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: RunAction.cc,v 1.2 2007/02/16 11:59:47 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StackingAction.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StepMax.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: StepMaxMessenger.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: SteppingAction.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: SteppingVerbose.cc,v 1.1 2007/02/13 17:57:20 maire Exp $
// GEANT4 tag $Name: geant4-09-00 $
// GEANT4 tag $Name: geant4-09-01 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......