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
@@ -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();