Import Geant4 9.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:58:43 +02:00
parent 96c8bcd0af
commit b79225fb37
7544 changed files with 245407 additions and 91099 deletions
+8 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.9 2007/09/30 22:33:42 gum Exp $
$Id: History,v 1.11 2008/11/21 01:24:55 gum Exp $
-------------------------------------------------------------------
=========================================================
@@ -15,6 +15,13 @@ track of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
20 November 2008 Peter Gumplinger (LXe-V09-01-01)
- update code in LXeOpticalPhysics.cc
16 July 2008 Peter Gumplinger (LXe-V09-01-00)
- add Birks Constant for the LXe scintillator, Polystyrene scintillator
modified: LXeDetectorConstruction.cc, LXeOpticalPhysics.cc
30 Sept 2007 Peter Gumplinger (LXe-V09-00-00)
- adjust to the G4Cerenkov process now being a G4VDiscreteProcess
+147 -87
View File
@@ -1,19 +1,21 @@
**********************************************
Geant4 version $Name: geant4-09-01 $
(12-December-2003)
Copyright : Geant4 Collaboration
**********************************************
*************************************************************
Geant4 version Name: geant4-09-01-ref-06 (4-July-2008)
Copyright : Geant4 Collaboration
Reference : NIM A 506 (2003), 250-303
WWW : http://cern.ch/geant4
*************************************************************
Visualization Manager instantiating...
Visualization Manager initialising...
Registering graphics systems...
You have successfully chosen to use the following graphics systems.
You have successfully registered the following graphics systems.
Current available graphics systems are:
ASCIITree (ATree)
DAWNFILE (DAWNFILE)
GAGTree (GAGTree)
G4HepRepFile (HepRepFile)
G4HepRep (HepRepXML)
G4HepRepFile (HepRepFile)
RayTracer (RayTracer)
VRML1FILE (VRML1FILE)
VRML2FILE (VRML2FILE)
@@ -22,104 +24,162 @@ Current available graphics systems are:
OpenGLImmediateXm (OGLIXm)
OpenGLStoredXm (OGLSXm)
phot: Total cross sections from Sandia parametrisation.
MuonMinusCaptureAtRest is created
Registering model factories...
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.
You have successfully registered the following model factories.
Registered model factories:
generic
drawByCharge
drawByParticleID
drawByOriginVolume
drawByAttribute
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.
Registered filter factories:
chargeFilter
particleFilter
originVolumeFilter
attributeFilter
msc: Model variant of multiple scattering for e-
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary algorithm is active with facrange= 0.199
G4Cerenkov::G4Cerenkov constructor
NOTE: this is now a G4VProcess!
Required change in UserPhysicsList:
change: pmanager->AddContinuousProcess(theCerenkovProcess);
to: pmanager->AddProcess(theCerenkovProcess);
pmanager->SetProcessOrdering(theCerenkovProcess,idxPostStep);
eIoni: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
phot: for gamma SubType= 12
===== EM models for the G4Region DefaultRegionForTheWorld ======
PhotoElectric : Emin= 0 eV Emax= 100 TeV
eBrem: tables are built for e-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
compt: for gamma SubType= 13
Lambda tables from 100 eV to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
Klein-Nishina : Emin= 0 eV Emax= 100 TeV
eIoni: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Step function: finalRange(mm)= 1, dRoverRange= 1, integral: 1
Delta cross sections from Moller+Bhabha, good description from 1 KeV to 100 GeV.
conv: for gamma SubType= 14
Lambda tables from 1.022 MeV to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bethe-Heitler : Emin= 0 eV Emax= 100 TeV
eBrem: tables are built for e+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Total cross sections from a parametrisation based on the EEDL data library.
Good description from 1 KeV to 100 GeV, log scale extrapolation above 100 GeV.
msc: for e-
Lambda tables from 100 eV to 100 TeV in 84 bins, spline: 1
RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMscUni : Emin= 0 eV Emax= 100 TeV
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.
eIoni: for e- SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
msc: Model variant of multiple scattering for mu+
Lambda tables from 100 eV to 100 TeV in 120 bins.
Boundary algorithm is active with facrange= 0.199
eBrem: for e- SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBrem : Emin= 0 eV Emax= 1 GeV
eBremRel : Emin= 1 GeV Emax= 100 TeV
MuIoni: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0
Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
eIoni: for e+ SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
MollerBhabha : Emin= 0 eV Emax= 100 TeV
MuBrems: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
eBrem: for e+ SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
eBrem : Emin= 0 eV Emax= 1 GeV
eBremRel : Emin= 1 GeV Emax= 100 TeV
MuPairProd: tables are built for mu+
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Parametrised model
### All dEdx and Range tables are built #####
annihil: for e+ SubType= 5
Lambda tables from 100 eV to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
eplus2gg : Emin= 0 eV Emax= 100 TeV
MuIoni: tables are built for mu-
dE/dx and range tables from 100 eV to 100 TeV in 120 bins.
Lambda tables from threshold to 100 TeV in 120 bins.
Step function: finalRange(mm)= 1, dRoverRange= 0.2, integral: 0
Bether-Bloch model for E > 0.2 MeV parametrisation of Bragg peak below.
Energy weighted position of hits in LXe : (5.18102,30.2388,-98.8831)
msc: for mu+
Lambda tables from 100 eV to 100 TeV in 84 bins, spline: 1
RangeFactor= 0.02, step limit type: 1, lateralDisplacement: 1, skin= 3, geomFactor= 2.5
===== EM models for the G4Region DefaultRegionForTheWorld ======
UrbanMscUni : Emin= 0 eV Emax= 100 TeV
muIoni: for mu+ SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
muBrems: for mu+ SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV
muPairProd: for mu+ SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV
muIoni: for mu- SubType= 2
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
finalRange(mm)= 1, dRoverRange= 0.2, integral: 1, fluct: 1, linLossLimit= 0.01
===== EM models for the G4Region DefaultRegionForTheWorld ======
Bragg : Emin= 0 eV Emax= 200 keV
BetheBloch : Emin= 200 keV Emax= 1 GeV
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
muBrems: for mu- SubType= 3
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
MuBrem : Emin= 0 eV Emax= 100 TeV
muPairProd: for mu- SubType= 4
dE/dx and range tables from 100 eV to 100 TeV in 84 bins
Lambda tables from threshold to 100 TeV in 84 bins, spline: 1
===== EM models for the G4Region DefaultRegionForTheWorld ======
muPairProd : Emin= 0 eV Emax= 100 TeV
============================================================================================
HADRONIC PROCESSES SUMMARY (verbose level 1)
Hadronic Processes for <mu->
muMinusCaptureAtRest
============================================================================================
### G4EmSaturation::FindBirksCoefficient Birks coefficient for LXe 0.126 mm/MeV
Energy weighted position of hits in LXe : (0.0853858,0.0206655,-103.358)
Total energy deposition in scintillator : 511 (keV)
Reconstructed position of hits in LXe : (3.87256,8.56373,-27.017)
Number of photons that hit PMTs in this event : 2160
Number of PMTs above threshold(1) : 32
Number of photons produced by scintillation in this event : 6040
Number of photons produced by cerenkov in this event : 1
Number of photons absorbed (OpAbsorption) in this event : 3881
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
Number of photons that hit PMTs in this event : 0
Number of PMTs above threshold(1) : 0
Number of photons produced by scintillation in this event : 5764
Number of photons produced by cerenkov in this event : 0
Number of photons absorbed (OpAbsorption) in this event : 3802
Number of photons absorbed at boundaries (OpBoundary) in this event : 1962
Unacounted for photons in this event : 0
Energy weighted position of hits in LXe : (-28.7618,-1.33268,-9.54847)
Energy weighted position of hits in LXe : (24.1653,-30.2471,-67.2517)
Total energy deposition in scintillator : 511 (keV)
Reconstructed position of hits in LXe : (-5.96696,-2.2751,-2.77019)
Number of photons that hit PMTs in this event : 2176
Number of PMTs above threshold(1) : 32
Number of photons produced by scintillation in this event : 6167
Number of photons produced by cerenkov in this event : 1
Number of photons absorbed (OpAbsorption) in this event : 3992
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
Number of photons that hit PMTs in this event : 0
Number of PMTs above threshold(1) : 0
Number of photons produced by scintillation in this event : 5445
Number of photons produced by cerenkov in this event : 0
Number of photons absorbed (OpAbsorption) in this event : 3460
Number of photons absorbed at boundaries (OpBoundary) in this event : 1985
Unacounted for photons in this event : 0
Energy weighted position of hits in LXe : (1.6474,-12.2959,-71.5899)
Energy weighted position of hits in LXe : (4.35176,5.63524,-24.2161)
Total energy deposition in scintillator : 511 (keV)
Reconstructed position of hits in LXe : (1.21798,-3.59905,-26.1855)
Number of photons that hit PMTs in this event : 2230
Number of PMTs above threshold(1) : 32
Number of photons produced by scintillation in this event : 6217
Number of photons that hit PMTs in this event : 0
Number of PMTs above threshold(1) : 0
Number of photons produced by scintillation in this event : 5674
Number of photons produced by cerenkov in this event : 1
Number of photons absorbed (OpAbsorption) in this event : 3988
Number of photons absorbed at boundaries (OpBoundary) in this event : 0
Number of photons absorbed (OpAbsorption) in this event : 3683
Number of photons absorbed at boundaries (OpBoundary) in this event : 1992
Unacounted for photons in this event : 0
Graphics systems deleted.
Visualization Manager deleting...
@@ -139,6 +139,10 @@ void LXeDetectorConstruction::DefineMaterials(){
LXe_mt->AddConstProperty("SLOWTIMECONSTANT",45.*ns);
LXe_mt->AddConstProperty("YIELDRATIO",1.0);
LXe->SetMaterialPropertiesTable(LXe_mt);
// Set the Birks Constant for the LXe scintillator
LXe->GetIonisation()->SetBirksConstant(0.126*mm/MeV);
G4double Glass_RIND[LXe_NUMENTRIES]={1.49,1.49,1.49};
G4double Glass_AbsLength[LXe_NUMENTRIES]={420.*cm,420.*cm,420.*cm};
@@ -170,6 +174,10 @@ void LXeDetectorConstruction::DefineMaterials(){
MPTPStyrene->AddConstProperty("FASTTIMECONSTANT", 10.*ns);
Pstyrene->SetMaterialPropertiesTable(MPTPStyrene);
// Set the Birks Constant for the Polystyrene scintillator
Pstyrene->GetIonisation()->SetBirksConstant(0.126*mm/MeV);
G4double RefractiveIndexFiber[WLS_NUMENTRIES]={ 1.60, 1.60, 1.60, 1.60};
G4double AbsFiber[WLS_NUMENTRIES]={9.00*m,9.00*m,0.1*mm,0.1*mm};
G4double EmissionFib[WLS_NUMENTRIES]={1.0, 1.0, 0.0, 0.0};
@@ -342,6 +350,7 @@ void LXeDetectorConstruction::UpdateGeometry(){
G4SolidStore::GetInstance()->Clean();
G4LogicalSkinSurface::CleanSurfaceTable();
G4LogicalBorderSurface::CleanSurfaceTable();
G4SurfaceProperty::CleanSurfacePropertyTable();
//define new one
G4RunManager::GetRunManager()->DefineWorldVolume(ConstructDetector());
@@ -35,6 +35,9 @@
#include "G4OpBoundaryProcess.hh"
#include "G4OpWLS.hh"
#include "G4LossTableManager.hh"
#include "G4EmSaturation.hh"
LXeOpticalPhysics::LXeOpticalPhysics(const G4String& name)
: G4VPhysicsConstructor(name)
{
@@ -60,29 +63,39 @@ void LXeOpticalPhysics::ConstructParticle()
void LXeOpticalPhysics::ConstructProcess()
{
theScintProcess = new G4Scintillation();
theCerenkovProcess=new G4Cerenkov();
theAbsorptionProcess=new G4OpAbsorption();
theRayleighScattering=new G4OpRayleigh();
theBoundaryProcess=new G4OpBoundaryProcess();
theWLSProcess=new G4OpWLS();
theBoundaryProcess=new G4OpBoundaryProcess();
theBoundaryProcess->SetModel(unified);
theWLSProcess=new G4OpWLS();
theWLSProcess->UseTimeProfile("delta");
//theWLSProcess->UseTimeProfile("exponential");
// theWLSProcess->UseTimeProfile("exponential");
G4ProcessManager * pManager = 0;
pManager = G4OpticalPhoton::OpticalPhoton()->GetProcessManager();
pManager->AddDiscreteProcess(theAbsorptionProcess);
pManager->AddDiscreteProcess(theRayleighScattering);
theBoundaryProcess->SetModel(unified);
pManager->AddDiscreteProcess(theBoundaryProcess);
pManager->AddDiscreteProcess(theWLSProcess);
theScintProcess = new G4Scintillation();
theScintProcess->SetScintillationYieldFactor(1.);
theScintProcess->SetScintillationExcitationRatio(0.0);
theScintProcess->SetTrackSecondariesFirst(true);
// Use Birks Correction in the Scintillation process
G4EmSaturation* emSaturation = G4LossTableManager::Instance()->EmSaturation();
theScintProcess->AddSaturation(emSaturation);
theCerenkovProcess=new G4Cerenkov();
theCerenkovProcess->SetMaxNumPhotonsPerStep(100);
theCerenkovProcess->SetMaxBetaChangePerStep(10.0);
theCerenkovProcess->SetTrackSecondariesFirst(true);
theParticleIterator->reset();
while( (*theParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();