Import Geant4 9.2.0 source tree
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user