Import Geant4 10.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 14:11:04 +02:00
parent c9b32a6c0a
commit d4af681f38
4886 changed files with 420149 additions and 1023309 deletions
@@ -1,6 +1,6 @@
//$Id$
///\file "analysis/AnaEx02/.README"
///\file "analysis/AnaEx02/.README.txt"
///\brief Example AnaEx02 README page
/*! \page ExampleAnaEx02 Example AnaEx02
@@ -83,15 +83,15 @@
AnaEx02 can produce 4 histograms :
- histo 1 : total energy deposit in absorber per event
- histo 2 : total energy deposit in gap per event
- histo 3 : total track length of charged particles in absorber per event
- histo 4 : total track length of charged particles in gap per event
- EAbs : total energy deposit in absorber per event
- EGap : total energy deposit in gap per event
- LAbs : total track length of charged particles in absorber per event
- LGap : total track length of charged particles in gap per event
And 2 Ntuples :
- ntuple 1:
- Ntuple1:
- one row per event : EnergyAbs EnergyGap
- ntuple 1:
- Ntuple2:
- one row per event : TrackLAbs TrackLGap
These histos and ntuples are booked in HistoManager and filled from
+68 -68
View File
@@ -4,7 +4,7 @@
############################################
*************************************************************
Geant4 version Name: geant4-10-01-ref-00 (5-December-2014)
Geant4 version Name: geant4-10-02-ref-00 (4-December-2015)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
@@ -13,33 +13,33 @@
***** Table : Nb of materials = 3 *****
Material: G4_Galactic density: 0.000 kg/m3 RadL: 204310101.835 pc Nucl.Int.Length: 114314827.001 pc
Material: G4_Galactic density: 0.000 kg/m3 RadL: 204310101.835 pc Nucl.Int.Length: 113427275.267 pc
Imean: 21.800 eV temperature: 2.73 K pressure: 0.00 atm
---> Element: H (H) Z = 1.0 N = 1.0 A = 1.01 g/mole
---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 %
---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 %
---> Element: H (H) Z = 1.0 N = 1 A = 1.008 g/mole
---> Isotope: H1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.989 %
---> Isotope: H2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.011 %
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.247 cm
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.248 cm
Imean: 823.000 eV
---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole
---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.40 %
---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.10 %
---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.10 %
---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.40 %
---> Element: Pb (Pb) Z = 82.0 N = 207 A = 207.217 g/mole
---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.400 %
---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.100 %
---> Isotope: Pb207 Z = 82 N = 207 A = 206.98 g/mole abundance: 22.100 %
---> Isotope: Pb208 Z = 82 N = 208 A = 207.98 g/mole abundance: 52.400 %
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.653 cm
Material: G4_lAr density: 1.396 g/cm3 RadL: 14.003 cm Nucl.Int.Length: 85.706 cm
Imean: 188.000 eV
---> Element: Ar (Ar) Z = 18.0 N = 40.0 A = 39.95 g/mole
---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 %
---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 %
---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.60 %
---> Element: Ar (Ar) Z = 18.0 N = 40 A = 39.948 g/mole
---> Isotope: Ar36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.337 %
---> Isotope: Ar38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.063 %
---> Isotope: Ar40 Z = 18 N = 40 A = 39.96 g/mole abundance: 99.600 %
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
@@ -85,7 +85,7 @@ eIoni: for e- SubType= 2
eBrem: for e- SubType= 3
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
LPM flag: 1 for E > 1 GeV
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
@@ -112,7 +112,7 @@ eIoni: for e+ SubType= 2
eBrem: for e+ SubType= 3
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
Lambda tables from threshold to 10 TeV, 7 bins per decade, spline: 1
LPM flag: 1 for E > 1 GeV
LPM flag: 1 for E > 1 GeV, HighEnergyThreshold(GeV)= 10000
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBremSB : Emin= 0 eV Emax= 1 GeV DipBustGen
eBremLPM : Emin= 1 GeV Emax= 10 TeV DipBustGen
@@ -128,7 +128,7 @@ CoulombScat: for e+, integral: 1 SubType= 1 BuildTable= 1
eCoulombScattering : Emin= 100 MeV Emax= 10 TeV
msc: for proton SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -154,6 +154,7 @@ hPairProd: for proton SubType= 4
hPairProd : Emin= 0 eV Emax= 10 TeV
CoulombScat: for proton, integral: 1 SubType= 1 BuildTable= 1
Used Lambda table of anti_proton
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
@@ -186,7 +187,7 @@ ionIoni: for alpha SubType= 2
BetheBloch : Emin= 7.9452 MeV Emax= 10 TeV
msc: for anti_proton SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -218,7 +219,7 @@ CoulombScat: for anti_proton, integral: 1 SubType= 1 BuildTable= 1
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
msc: for kaon+ SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -250,7 +251,7 @@ CoulombScat: for kaon+, integral: 1 SubType= 1 BuildTable= 1
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
msc: for kaon- SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -276,13 +277,13 @@ hPairProd: for kaon- SubType= 4
hPairProd : Emin= 0 eV Emax= 10 TeV
CoulombScat: for kaon-, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
Used Lambda table of kaon+
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
msc: for mu+ SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -315,7 +316,7 @@ CoulombScat: for mu+, integral: 1 SubType= 1 BuildTable= 1
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
msc: for mu- SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -342,13 +343,13 @@ muPairProd: for mu- SubType= 4
muPairProd : Emin= 0 eV Emax= 10 TeV
CoulombScat: for mu-, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
Used Lambda table of mu+
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
msc: for pi+ SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -380,7 +381,7 @@ CoulombScat: for pi+, integral: 1 SubType= 1 BuildTable= 1
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
msc: for pi- SubType= 10
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 1, polarAngleLimit(deg)= 180
RangeFactor= 0.2, step limit type: 0, lateralDisplacement: 0, polarAngleLimit(deg)= 180
===== EM models for the G4Region DefaultRegionForTheWorld ======
WentzelVIUni : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
@@ -406,7 +407,7 @@ hPairProd: for pi- SubType= 4
hPairProd : Emin= 0 eV Emax= 10 TeV
CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Lambda table from threshold to 10 TeV, 7 bins per decade, spline: 1
Used Lambda table of pi+
180 < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
===== EM models for the G4Region DefaultRegionForTheWorld ======
eCoulombScattering : Emin= 0 eV Emax= 10 TeV
@@ -419,7 +420,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Process: hadElastic
Model: hElasticCHIPS: 0 eV ---> 100 TeV
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
Cr_sctns: G4NeutronElasticXS: 0 eV ---> 100 TeV
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: neutronInelastic
@@ -440,8 +441,8 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for GenericIon
Process: ionInelastic
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
Model: FTFP: 2 GeV ---> 100 TeV
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
Model: FTFP: 2 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -449,8 +450,8 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for He3
Process: He3Inelastic
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
Model: FTFP: 2 GeV ---> 100 TeV
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
Model: FTFP: 2 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -458,12 +459,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for alpha
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: alphaInelastic
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
Model: FTFP: 2 GeV ---> 100 TeV
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
Model: FTFP: 2 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -471,13 +472,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for anti_He3
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: anti_He3Inelastic
Model: FTFP: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -487,13 +488,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for anti_alpha
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: anti_alphaInelastic
Model: FTFP: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -503,13 +504,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for anti_deuteron
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: anti_deuteronInelastic
Model: FTFP: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -547,13 +548,13 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for anti_triton
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
Model: AntiAElastic: 100 MeV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100.1 MeV/n
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: anti_tritonInelastic
Model: FTFP: 0 eV ---> 100 TeV
Model: FTFP: 0 eV /n ---> 100 TeV/n
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -563,12 +564,12 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for deuteron
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: dInelastic
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
Model: FTFP: 2 GeV ---> 100 TeV
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
Model: FTFP: 2 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
@@ -607,7 +608,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Process: kaon+Inelastic
Model: FTFP: 4 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 5 GeV
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
---------------------------------------------------
@@ -620,7 +621,7 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Process: kaon-Inelastic
Model: FTFP: 4 GeV ---> 100 TeV
Model: BertiniCascade: 0 eV ---> 5 GeV
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
Cr_sctns: Glauber-Gribov: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
Process: hBertiniCaptureAtRest
@@ -708,19 +709,19 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
Hadronic Processes for triton
Process: hadElastic
Model: hElasticLHEP: 0 eV ---> 100 TeV
Model: hElasticLHEP: 0 eV /n ---> 100 TeV/n
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
Process: tInelastic
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
Model: FTFP: 2 GeV ---> 100 TeV
Model: Binary Light Ion Cascade: 0 eV /n ---> 4 GeV/n
Model: FTFP: 2 GeV/n ---> 100 TeV/n
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
================================================================
### Run 0 start.
----> Histogram file is opened in AnaEx02.root
----> Output file is open in AnaEx02.root
---> Begin of event: 0
@@ -744,21 +745,20 @@ CoulombScat: for pi-, integral: 1 SubType= 1 BuildTable= 1
--------------------End of Run------------------------------
mean Energy in Absorber : 453.339 MeV +- 14.5813 MeV
mean Energy in Gap : 23.591 MeV +- 7.0809 MeV
mean Energy in Absorber : 453.889 MeV +- 13.1894 MeV
mean Energy in Gap : 23.8243 MeV +- 6.98854 MeV
mean trackLength in Absorber : 32.4232 cm +- 1.14085 cm
mean trackLength in Gap : 11.6974 cm +- 3.62573 cm
mean trackLength in Absorber : 32.4743 cm +- 1.02249 cm
mean trackLength in Gap : 11.8047 cm +- 3.58344 cm
------------------------------------------------------------
----> print histograms statistic
EAbs : mean = 453.339 MeV rms = 14.5813 MeV
EGap : mean = 23.591 MeV rms = 7.0809 MeV
LAbs : mean = 32.4232 cm rms = 1.14085 cm
LGap : mean = 11.6974 cm rms = 3.62573 cm
EAbs: mean = 453.889 MeV rms = 13.1894 MeV
EGap: mean = 23.8243 MeV rms = 6.98854 MeV
LAbs: mean = 32.4743 cm rms = 1.02249 cm
LGap: mean = 11.8047 cm rms = 3.58344 cm
----> Histogram Tree is saved
----> Histograms and ntuples are saved
Total navigation history collections cleaned: 64
+13 -1
View File
@@ -1,4 +1,4 @@
$Id: History 85990 2014-11-06 15:40:51Z gcosmo $
$Id: History 92374 2015-08-31 08:52:09Z gcosmo $
--------------------------------------------------
=========================================================
@@ -15,6 +15,18 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
30-08-15 I. Hrivnacova (AnaEx02-V10-01-02)
- Corrected previous update which caused compilation error
28-08-15 I. Hrivnacova (AnaEx02-V10-01-01)
- Fixed compilation on Windows
27-08-15 I. Hrivnacova (AnaEx02-V10-01-00)
- Introduced meaningful histograms and ntuple names instead of numbers
in all AnaEx0N examples and use histogram ids starting from 0
- Simplified HistoManager classes and fixed function names to follow
coding guidelines
06-11-14 I. Hrivnacova (AnaEx02-V10-00-04)
- Updated for moving script in shared (analysisShared-V10-00-01)
- Updated README - commented special compilation (via make setup)
+7 -7
View File
@@ -1,4 +1,4 @@
$Id: README 85990 2014-11-06 15:40:51Z gcosmo $
$Id: README 92322 2015-08-27 14:54:05Z gcosmo $
--------------------------------------------------
=========================================================
@@ -86,15 +86,15 @@ $Id: README 85990 2014-11-06 15:40:51Z gcosmo $
AnaEx02 can produce 4 histograms :
histo 1 : total energy deposit in absorber per event
histo 2 : total energy deposit in gap per event
histo 3 : total track length of charged particles in absorber per event
histo 4 : total track length of charged particles in gap per event
EAbs : total energy deposit in absorber per event
EGap : total energy deposit in gap per event
LAbs : total track length of charged particles in absorber per event
LGap : total track length of charged particles in gap per event
And 2 Ntuples :
- ntuple 1:
- Ntuple1:
- one row per event : EnergyAbs EnergyGap
- ntuple 1:
- Ntuple2:
- one row per event : TrackLAbs TrackLGap
These histos and ntuples are booked in HistoManager and filled from
@@ -26,7 +26,7 @@
/// \file analysis/AnaEx02/include/HistoManager.hh
/// \brief Definition of the HistoManager class
//
// $Id: HistoManager.hh 74272 2013-10-02 14:48:50Z gcosmo $
// $Id: HistoManager.hh 92322 2015-08-27 14:54:05Z gcosmo $
// GEANT4 tag $Name: geant4-09-04 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -39,23 +39,22 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class TFile;
class TTree;
class TH1D;
class TFile;
class TTree;
class TH1D;
const G4int MaxHisto = 5;
const G4int MaxHisto = 4;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class HistoManager
{
public:
HistoManager();
~HistoManager();
void book();
void save();
void Book();
void Save();
void FillHisto(G4int id, G4double bin, G4double weight = 1.0);
void Normalize(G4int id, G4double fac);
@@ -66,7 +65,6 @@ class HistoManager
void PrintStatistic();
private:
TFile* fRootFile;
TH1D* fHisto[MaxHisto];
TTree* fNtuple1;
@@ -1,4 +1,4 @@
$Id: History 85990 2014-11-06 15:40:51Z gcosmo $
$Id: History 92322 2015-08-27 14:54:05Z gcosmo $
--------------------------------------------------
=========================================================
@@ -15,6 +15,10 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
27-08-15 I. Hrivnacova (analysisShared-V10-01-00)
- Updated histogram ids in FillHiso (now starting from 0);
updated for changed function names in HistoManager classes
06-11-14 I. Hrivnacova (analysisShared-V10-00-01)
- Moved scripts from upper directory in shared
@@ -27,7 +27,7 @@
/// \brief Definition of the DetectorConstruction class
//
//
// $Id: DetectorConstruction.hh 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: DetectorConstruction.hh 77206 2013-11-22 01:33:52Z adotti $
//
//
@@ -27,7 +27,7 @@
/// \brief Definition of the DetectorMessenger class
//
//
// $Id: DetectorMessenger.hh 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: DetectorMessenger.hh 77206 2013-11-22 01:33:52Z adotti $
//
//
@@ -27,7 +27,7 @@
/// \brief Definition of the EventAction class
//
//
// $Id: EventAction.hh 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: EventAction.hh 67226 2013-02-08 12:07:18Z ihrivnac $
//
//
@@ -27,7 +27,7 @@
/// \brief Definition of the PrimaryGeneratorAction class
//
//
// $Id: PrimaryGeneratorAction.hh 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: PrimaryGeneratorAction.hh 67226 2013-02-08 12:07:18Z ihrivnac $
//
//
@@ -27,7 +27,7 @@
/// \brief Definition of the RunAction class
//
//
// $Id: RunAction.hh 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: RunAction.hh 67226 2013-02-08 12:07:18Z ihrivnac $
//
//
@@ -27,7 +27,7 @@
/// \brief Definition of the SteppingAction class
//
//
// $Id: SteppingAction.hh 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: SteppingAction.hh 67226 2013-02-08 12:07:18Z ihrivnac $
//
//
@@ -27,7 +27,7 @@
/// \brief Implementation of the DetectorConstruction class
//
//
// $Id: DetectorConstruction.cc 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: DetectorConstruction.cc 77206 2013-11-22 01:33:52Z adotti $
//
//
@@ -27,7 +27,7 @@
/// \brief Implementation of the DetectorMessenger class
//
//
// $Id: DetectorMessenger.cc 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: DetectorMessenger.cc 77206 2013-11-22 01:33:52Z adotti $
//
//
@@ -27,7 +27,7 @@
/// \brief Implementation of the EventAction class
//
//
// $Id: EventAction.cc 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: EventAction.cc 92322 2015-08-27 14:54:05Z gcosmo $
//
//
@@ -80,10 +80,10 @@ void EventAction::EndOfEventAction(const G4Event*)
//fill histograms
//
fHistoManager->FillHisto(1, fEnergyAbs);
fHistoManager->FillHisto(2, fEnergyGap);
fHistoManager->FillHisto(3, fTrackLAbs);
fHistoManager->FillHisto(4, fTrackLGap);
fHistoManager->FillHisto(0, fEnergyAbs);
fHistoManager->FillHisto(1, fEnergyGap);
fHistoManager->FillHisto(2, fTrackLAbs);
fHistoManager->FillHisto(3, fTrackLGap);
//fill ntuple
//
@@ -27,7 +27,7 @@
/// \brief Implementation of the PrimaryGeneratorAction class
//
//
// $Id: PrimaryGeneratorAction.cc 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: PrimaryGeneratorAction.cc 67226 2013-02-08 12:07:18Z ihrivnac $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -27,7 +27,7 @@
/// \brief Implementation of the RunAction class
//
//
// $Id: RunAction.cc 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: RunAction.cc 92322 2015-08-27 14:54:05Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -68,7 +68,7 @@ void RunAction::BeginOfRunAction(const G4Run* aRun)
//histograms
//
fHistoManager->book();
fHistoManager->Book();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -131,7 +131,7 @@ void RunAction::EndOfRunAction(const G4Run* aRun)
//save histograms
//
fHistoManager->PrintStatistic();
fHistoManager->save();
fHistoManager->Save();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -27,7 +27,7 @@
/// \brief Implementation of the SteppingAction class
//
//
// $Id: SteppingAction.cc 85905 2014-11-06 08:51:55Z gcosmo $
// $Id: SteppingAction.cc 67226 2013-02-08 12:07:18Z ihrivnac $
//
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file analysis/AnaEx02/src/HistoManager.cc
/// \brief Implementation of the HistoManager class
//
// $Id: HistoManager.cc 74272 2013-10-02 14:48:50Z gcosmo $
// $Id: HistoManager.cc 92374 2015-08-31 08:52:09Z gcosmo $
// GEANT4 tag $Name: geant4-09-04 $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -45,7 +45,7 @@
HistoManager::HistoManager()
:fRootFile(0),
fNtuple1(0), fNtuple2(0),
fEabs(0), fEgap(0) ,fLabs(0), fLgap(0)
fEabs(0.), fEgap(0.) ,fLabs(0.), fLgap(0.)
{
// histograms
@@ -60,59 +60,61 @@ HistoManager::HistoManager()
HistoManager::~HistoManager()
{
if ( fRootFile ) delete fRootFile;
if (fRootFile) delete fRootFile;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void HistoManager::book()
void HistoManager::Book()
{
// Creating a tree container to handle histograms and ntuples.
// This tree is associated to an output file.
//
G4String fileName = "AnaEx02.root";
fRootFile = new TFile(fileName,"RECREATE");
if(!fRootFile) {
G4cout << " HistoManager::book :"
<< " problem creating the ROOT TFile "
<< G4endl;
return;
}
fHisto[1] = new TH1D("1", "Edep in absorber", 100, 0., 800*CLHEP::MeV);
if (!fHisto[1]) G4cout << "\n can't create histo 1" << G4endl;
fHisto[2] = new TH1D("2", "Edep in gap", 100, 0., 100*CLHEP::MeV);
if (!fHisto[2]) G4cout << "\n can't create histo 2" << G4endl;
fHisto[3] = new TH1D("3", "trackL in absorber", 100, 0., 1*CLHEP::m);
if (!fHisto[3]) G4cout << "\n can't create histo 3" << G4endl;
fHisto[4] = new TH1D("4", "trackL in gap", 100, 0., 50*CLHEP::cm);
if (!fHisto[4]) G4cout << "\n can't create histo 4" << G4endl;
// create 1st ntuple in subdirectory "tuples"
//
fNtuple1 = new TTree("101", "Edep");
fNtuple1->Branch("Eabs", &fEabs, "Eabs/D");
fNtuple1->Branch("Egap", &fEgap, "Egap/D");
// create 2nd ntuple in subdirectory "tuples"
//
fNtuple2 = new TTree("102", "TrackL");
fNtuple2->Branch("Labs", &fLabs, "Labs/D");
fNtuple2->Branch("Lgap", &fLgap, "Lgap/D");
G4cout << "\n----> Histogram file is opened in " << fileName << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void HistoManager::save()
{
if (fRootFile) {
fRootFile->Write(); // Writing the histograms to the file
fRootFile->Close(); // and closing the tree (and the file)
G4cout << "\n----> Histogram Tree is saved \n" << G4endl;
// Creating a tree container to handle histograms and ntuples.
// This tree is associated to an output file.
//
G4String fileName = "AnaEx02.root";
fRootFile = new TFile(fileName,"RECREATE");
if (! fRootFile) {
G4cout << " HistoManager::Book :"
<< " problem creating the ROOT TFile "
<< G4endl;
return;
}
// id = 0
fHisto[0] = new TH1D("EAbs", "Edep in absorber (MeV)", 100, 0., 800*CLHEP::MeV);
// id = 1
fHisto[1] = new TH1D("EGap", "Edep in gap (MeV)", 100, 0., 100*CLHEP::MeV);
// id = 2
fHisto[2] = new TH1D("LAbs", "trackL in absorber (mm)", 100, 0., 1*CLHEP::m);
// id = 3
fHisto[3] = new TH1D("LGap", "trackL in gap (mm)", 100, 0., 50*CLHEP::cm);
for ( G4int i=0; i<MaxHisto; ++i ) {
if (! fHisto[i]) G4cout << "\n can't create histo " << i << G4endl;
}
// create 1st ntuple
fNtuple1 = new TTree("Ntuple1", "Edep");
fNtuple1->Branch("Eabs", &fEabs, "Eabs/D");
fNtuple1->Branch("Egap", &fEgap, "Egap/D");
// create 2nd ntuple
fNtuple2 = new TTree("Ntuple2", "TrackL");
fNtuple2->Branch("Labs", &fLabs, "Labs/D");
fNtuple2->Branch("Lgap", &fLgap, "Lgap/D");
G4cout << "\n----> Output file is open in " << fileName << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void HistoManager::Save()
{
if (! fRootFile) return;
fRootFile->Write(); // Writing the histograms to the file
fRootFile->Close(); // and closing the tree (and the file)
G4cout << "\n----> Histograms and ntuples are saved\n" << G4endl;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -120,12 +122,12 @@ void HistoManager::save()
void HistoManager::FillHisto(G4int ih, G4double xbin, G4double weight)
{
if (ih >= MaxHisto) {
G4cout << "---> warning from HistoManager::FillHisto() : histo " << ih
G4cerr << "---> warning from HistoManager::FillHisto() : histo " << ih
<< " does not exist. (xbin=" << xbin << " weight=" << weight << ")"
<< G4endl;
return;
}
if (fHisto[ih]) { fHisto[ih]->Fill(xbin, weight); }
if (fHisto[ih]) { fHisto[ih]->Fill(xbin, weight); }
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -145,10 +147,10 @@ void HistoManager::Normalize(G4int ih, G4double fac)
void HistoManager::FillNtuple(G4double energyAbs, G4double energyGap,
G4double trackLAbs , G4double trackLGap )
{
fEabs = energyAbs;
fEgap = energyGap;
fLabs = trackLAbs;
fLgap = trackLGap;
fEabs = energyAbs;
fEgap = energyGap;
fLabs = trackLAbs;
fLgap = trackLGap;
if (fNtuple1) fNtuple1->Fill();
if (fNtuple2) fNtuple2->Fill();
@@ -158,22 +160,19 @@ void HistoManager::FillNtuple(G4double energyAbs, G4double energyGap,
void HistoManager::PrintStatistic()
{
if(fHisto[1]) {
G4cout << "\n ----> print histograms statistic \n" << G4endl;
G4cout
<< " EAbs : mean = " << G4BestUnit(fHisto[1]->GetMean(), "Energy")
<< " rms = " << G4BestUnit(fHisto[1]->GetRMS(), "Energy") << G4endl;
G4cout
<< " EGap : mean = " << G4BestUnit(fHisto[2]->GetMean(), "Energy")
<< " rms = " << G4BestUnit(fHisto[2]->GetRMS(), "Energy") << G4endl;
G4cout
<< " LAbs : mean = " << G4BestUnit(fHisto[3]->GetMean(), "Length")
<< " rms = " << G4BestUnit(fHisto[3]->GetRMS(), "Length") << G4endl;
G4cout
<< " LGap : mean = " << G4BestUnit(fHisto[4]->GetMean(), "Length")
<< " rms = " << G4BestUnit(fHisto[4]->GetRMS(), "Length") << G4endl;
G4cout << "\n ----> print histograms statistic \n" << G4endl;
for ( G4int i=0; i<MaxHisto; ++i ) {
TH1D* h1 = fHisto[i];
const G4String name = h1->GetName();
G4String unitCategory;
if (name[0] == 'E' ) unitCategory = "Energy";
if (name[0] == 'L' ) unitCategory = "Length";
G4cout << name
<< ": mean = " << G4BestUnit(h1->GetMean(), unitCategory)
<< " rms = " << G4BestUnit(h1->GetRMS(), unitCategory )
<< G4endl;
}
}