Import Geant4 10.7.0 source tree
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
|
||||
cmake_minimum_required(VERSION 3.8...3.18)
|
||||
if(${CMAKE_VERSION} VERSION_LESS 3.12)
|
||||
cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION})
|
||||
endif()
|
||||
project(underground_physics)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
@@ -21,7 +24,7 @@ endif()
|
||||
include(${Geant4_USE_FILE})
|
||||
|
||||
#Check here for DMXENV_GPS_USE
|
||||
#Use GPS if the environment variable is set, and the user has *not* supplied the CMake
|
||||
#Use GPS if the environment variable is set, and the user has *not* supplied the CMake
|
||||
#command line argument. Otherwise, the argument of the command line has the priority.
|
||||
#
|
||||
if("$ENV{DMXENV_GPS_USE}" AND NOT DEFINED DMXENV_GPS_USE)
|
||||
@@ -40,7 +43,7 @@ endif()
|
||||
#----------------------------------------------------------------------------
|
||||
# Locate sources and headers for this project
|
||||
#
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include
|
||||
include_directories(${PROJECT_SOURCE_DIR}/include
|
||||
${Geant4_INCLUDE_DIR})
|
||||
file(GLOB sources ${PROJECT_SOURCE_DIR}/src/*.cc)
|
||||
file(GLOB headers ${PROJECT_SOURCE_DIR}/include/*.hh)
|
||||
|
||||
@@ -40,12 +40,7 @@
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
#include "G4RunManagerFactory.hh"
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "Randomize.hh"
|
||||
@@ -64,12 +59,9 @@ int main(int argc,char** argv) {
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
|
||||
// Construct the default run manager
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager* runManager = new G4MTRunManager;
|
||||
//runManager->SetNumberOfThreads(2);
|
||||
#else
|
||||
G4RunManager* runManager = new G4RunManager;
|
||||
#endif
|
||||
auto* runManager = G4RunManagerFactory::CreateRunManager();
|
||||
G4int nThreads = 4;
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
|
||||
// set mandatory initialization classes
|
||||
runManager->SetUserInitialization(new DMXDetectorConstruction);
|
||||
|
||||
@@ -7,21 +7,38 @@
|
||||
|
||||
Category History file
|
||||
---------------------
|
||||
17.11.2020 - S. Guatelli (DMX-V10-06-04)
|
||||
Migration to G4RunManagerFactory
|
||||
|
||||
03.11.2020 - D.Sawkey (DMX-V10-06-03)
|
||||
Build material property tables using std::vectors
|
||||
|
||||
02.11.2020 - B.Morgan (DMX-V10-06-02)
|
||||
Support same CMake version range as core Geant4
|
||||
|
||||
14.10.2020 - V. Ribon (DMX-V10-06-01)
|
||||
neutron.mac, ambe_spectrum.mac : removed unneeded
|
||||
command "/process/had/rdm/analogueMC 1".
|
||||
|
||||
05.08.2020 - V. Ribon (DMX-V10-06-00)
|
||||
neutron.mac, ambe_spectrum.mac, UserRequirements.txt : migrated
|
||||
UI commands from "/grdm/..." to "/process/had/rdm/..."
|
||||
|
||||
09.11.2019 - V. Ivanchenko (DMX-V10-05-03)
|
||||
DMXPhysicsList : clean-up both EM, hadronic and radioactive decay
|
||||
|
||||
30.08.2019 - S. Guatelli (DMX-V10-05-02)
|
||||
30.08.2019 - S. Guatelli (DMX-V10-05-02)
|
||||
G4VIS_USE deleted
|
||||
|
||||
10.05.2019 - V. Ivanchenko (DMX-V10-05-01)
|
||||
DMXPhysicsList : add Glauber-Gribov cross section for all elastic
|
||||
processes
|
||||
DMXPhysicsList : add Glauber-Gribov cross section for all elastic
|
||||
processes
|
||||
|
||||
31.01.2019 - I.Hrivnacova (DMX-V10-05-00)
|
||||
Merged GitHub PR #4: all Boolean operators now return G4bool.
|
||||
|
||||
09.08.2018 - A. Ribon (DMX-V10-04-01)
|
||||
DMXPhysicsList : replaced the explicit high-energy limit of
|
||||
DMXPhysicsList : replaced the explicit high-energy limit of
|
||||
hadronic physics with the one from G4HadronicParameters .
|
||||
|
||||
10.05.2018 - B. Morgan (DMX-V10-04-00)
|
||||
@@ -63,34 +80,34 @@
|
||||
|
||||
23.05.2014 - L. Pandola (DMX-V10-00-04)
|
||||
Actual MT migration. Use G4MTRunManager
|
||||
Added G4ShortLivedConstructor in the physics list, to
|
||||
Added G4ShortLivedConstructor in the physics list, to
|
||||
avoid G4Exception PART10116.
|
||||
|
||||
21.05.2014 - L. Pandola (DMX-V10-00-03)
|
||||
Edit constructor of DMXSteppingAction, make const
|
||||
Edit constructor of DMXSteppingAction, make const
|
||||
Getters in DMXEventAction.
|
||||
Instantiate DMXRunAction also in the master
|
||||
Fix a problem with the names of the ASCII files
|
||||
|
||||
20.05.2014 - L. Pandola (DMX-V10-00-02)
|
||||
Edit the constructor of DMXEventAction
|
||||
Edit the constructor of DMXEventAction
|
||||
Make Getters const in RunAction and PrimaryGenerator
|
||||
ASCII files are created per-thread. Not open at every
|
||||
ASCII files are created per-thread. Not open at every
|
||||
event, but kept as private class members.
|
||||
|
||||
13.05.2014 - L. Pandola (DMX-V10-00-01)
|
||||
Analysis files closed at the end of execution (not
|
||||
end of event).
|
||||
end of event).
|
||||
Added ConstructSDandField() method in the Detector
|
||||
Clean up the detector construction messenger
|
||||
Made Hits allocators as ThreadLocal
|
||||
Remove CLHEP::Random
|
||||
|
||||
08.05.2014 - L. Pandola (DMX-V10-00-00)
|
||||
Added ActionInitialization class
|
||||
Added ActionInitialization class
|
||||
|
||||
07.11.2013 - L. Pandola (DMX-V09-06-08)
|
||||
Remove dependency from the deprecated LEP and HEP
|
||||
Remove dependency from the deprecated LEP and HEP
|
||||
models from Geisha
|
||||
|
||||
30.07.2013 - A. Dotti (DMX-V09-06-07)
|
||||
@@ -98,19 +115,19 @@
|
||||
unused private data members
|
||||
|
||||
31.05.2013 - L. Pandola (DMX-V09-06-06)
|
||||
Migrate analysis from the AIDA-based local singleton
|
||||
class to the g4analysis tools (no AIDA dependency
|
||||
Migrate analysis from the AIDA-based local singleton
|
||||
class to the g4analysis tools (no AIDA dependency
|
||||
any longer). Clean-up of README and CMakeLists.txt.
|
||||
Some cosmetics in the code.
|
||||
|
||||
|
||||
18.04.2013 - L. Pandola (DMX-V09-06-05)
|
||||
In DMXMinEkineCuts.cc, migrate calculation of the range
|
||||
from G4EnergyLossTable (obsolete class) to
|
||||
G4LossTableManager. This should hopefully fix the problems
|
||||
In DMXMinEkineCuts.cc, migrate calculation of the range
|
||||
from G4EnergyLossTable (obsolete class) to
|
||||
G4LossTableManager. This should hopefully fix the problems
|
||||
observed in DMX-V09-06-04. Other minor cosmetics.
|
||||
|
||||
16.04.2013 - L. Pandola (DMX-V09-06-04)
|
||||
- Trying to understand the origin of the crashes which
|
||||
- Trying to understand the origin of the crashes which
|
||||
caused the rejection of DMX-V09-06-03
|
||||
|
||||
21.03.2013 - L. Pandola (DMX-V09-06-03)
|
||||
@@ -131,8 +148,8 @@
|
||||
- Fix the CMakeLists.txt file (AIDA optional dependency)
|
||||
|
||||
16.10.2012 - L.Pandola (DMX-V09-05-02)
|
||||
- Change the logic of the CMakeLists.txt file. The env variable
|
||||
and the cmake line command can be used (the cmake commands gets
|
||||
- Change the logic of the CMakeLists.txt file. The env variable
|
||||
and the cmake line command can be used (the cmake commands gets
|
||||
the priority)
|
||||
|
||||
12.10.2012 - L.Pandola (DMX-V09-05-01)
|
||||
@@ -156,23 +173,23 @@
|
||||
Change /vis/open OGLxxx to /vis/open OGL
|
||||
|
||||
16.02.2010 - L. Pandola (DMX-V09-03-00)
|
||||
Copy of the previous tag, DMX-V09-02-02, which was not submitted for
|
||||
Copy of the previous tag, DMX-V09-02-02, which was not submitted for
|
||||
testing.
|
||||
|
||||
26.10.2009 - L. Pandola (DMX-V09-02-02)
|
||||
Physics list migrated from LowEnergy processes to the new Livermore
|
||||
models. Physics results unchanged for gamma/e-. Possible differences
|
||||
Physics list migrated from LowEnergy processes to the new Livermore
|
||||
models. Physics results unchanged for gamma/e-. Possible differences
|
||||
with ions/protons, since we don't use anymore G4hLowEnergyIonisation
|
||||
|
||||
22.10.2009 - L. Pandola (DMX-V09-02-01)
|
||||
Correct Analysis manager to solve a problem with the HBOOK output files
|
||||
(ntuples not filled, histograms not saved). Still at the stage of
|
||||
(ntuples not filled, histograms not saved). Still at the stage of
|
||||
pre-migration.
|
||||
|
||||
22.10.2009 - L. Pandola (DMX-V09-02-00)
|
||||
Get rid of a warning message and allocation problems with ntuple2
|
||||
Meant to be the reference to verify the migration to new
|
||||
Livermore models.
|
||||
Meant to be the reference to verify the migration to new
|
||||
Livermore models.
|
||||
|
||||
16.06.2008 - G.A.P.Cirrone (DMX-V09-01-01)
|
||||
Removed AIDA command from GNUmakefile
|
||||
|
||||
@@ -75,31 +75,31 @@ PHYSICS:
|
||||
|
||||
The following areas of physics should be included:
|
||||
|
||||
UR 3.1: · Low Energy Electromagnetic - to 250eV for both e and photons
|
||||
UR 3.1: · Low Energy Electromagnetic - to 250eV for both e and photons
|
||||
Maximum energy range around 10 MeV for any particle
|
||||
UR 3.2: · Compton Scattering
|
||||
UR 3.3: · Photoelectric Effect
|
||||
UR 3.4: · Bremsstrahlung
|
||||
UR 3.5: · Rayleigh Scattering - for both optical photons and hard
|
||||
UR 3.2: · Compton Scattering
|
||||
UR 3.3: · Photoelectric Effect
|
||||
UR 3.4: · Bremsstrahlung
|
||||
UR 3.5: · Rayleigh Scattering - for both optical photons and hard
|
||||
X-rays/Gammas
|
||||
UR 3.6: · Electromagnetic ionisation
|
||||
UR 3.7: · Delta Rays
|
||||
UR 3.6: · Electromagnetic ionisation
|
||||
UR 3.7: · Delta Rays
|
||||
Produced discretely down to 250eV to allow secondaries and
|
||||
tertiaries to be properly handled
|
||||
UR 3.8: · Heavy Ion Transport - to 250eV for protons, alphas and nuclei
|
||||
UR 3.8: · Heavy Ion Transport - to 250eV for protons, alphas and nuclei
|
||||
Allows separate scintillation time and yield compared to gammas
|
||||
(electrons)
|
||||
UR 3.9: · Radioactive Decay - induced
|
||||
UR 3.9: · Radioactive Decay - induced
|
||||
All materials are sensitive to induced activity as a consequence
|
||||
of photo-nuclear or neutron capture
|
||||
UR 3.10: · Radioactive Decay - sources
|
||||
UR 3.10: · Radioactive Decay - sources
|
||||
Specific nuclei can be decayed within the geometry to reproduce
|
||||
experimental calibration the experiment
|
||||
UR 3.11: · Neutron tracking from medium energy (few MeV) to thermal capture
|
||||
UR 3.11: · Neutron tracking from medium energy (few MeV) to thermal capture
|
||||
Discretely transported through-out the volume to give full
|
||||
detector response for both neutron capture activation and
|
||||
elastic and inelastic interaction in the target volume
|
||||
UR 3.12: · Scintillation light production and ray-tracing to PMT
|
||||
UR 3.12: · Scintillation light production and ray-tracing to PMT
|
||||
Optical photon transport introduced to allow realistic
|
||||
detector response to be produced.
|
||||
|
||||
@@ -212,7 +212,7 @@ The user should have the ability to change several features including
|
||||
/run/verbose
|
||||
/tracking/verbose
|
||||
/hits/verbose
|
||||
/grdm/verbose
|
||||
/process/had/rdm/verbose
|
||||
/dmx/gun/verbose
|
||||
|
||||
|
||||
|
||||
@@ -29,9 +29,8 @@
|
||||
/dmx/KillGammasInConcrete 0
|
||||
#
|
||||
# radioactive decay module
|
||||
/grdm/analogueMC 1
|
||||
/grdm/verbose 0
|
||||
/grdm/allVolumes
|
||||
/process/had/rdm/verbose 0
|
||||
/process/had/rdm/allVolumes
|
||||
#
|
||||
#
|
||||
# using GPS for ambe_spectrum:
|
||||
|
||||
@@ -26,9 +26,8 @@
|
||||
/dmx/KillGammasInConcrete 0
|
||||
#
|
||||
# radioactive decay module
|
||||
/grdm/analogueMC 1
|
||||
/grdm/verbose 0
|
||||
/grdm/allVolumes
|
||||
/process/had/rdm/verbose 0
|
||||
/process/had/rdm/allVolumes
|
||||
#
|
||||
# gun: particle
|
||||
/dmx/gun/verbose 1
|
||||
|
||||
@@ -569,11 +569,10 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
("Vessel", liqPhase_phys, vessel_phys, OpVesselSurface);
|
||||
*/
|
||||
|
||||
const G4int NUM = 2;
|
||||
G4double vessel_PP[NUM] = { 6.5*eV, 7.50*eV };
|
||||
G4double vessel_REFL[NUM] = { 0.2, 0.2 };
|
||||
std::vector<G4double> vessel_PP = { 6.5*eV, 7.50*eV };
|
||||
std::vector<G4double> vessel_REFL = { 0.2, 0.2 };
|
||||
G4MaterialPropertiesTable* vessel_mt = new G4MaterialPropertiesTable();
|
||||
vessel_mt->AddProperty("REFLECTIVITY", vessel_PP, vessel_REFL, NUM);
|
||||
vessel_mt->AddProperty("REFLECTIVITY", vessel_PP, vessel_REFL);
|
||||
OpVesselSurface->SetMaterialPropertiesTable(vessel_mt);
|
||||
|
||||
// G4LogicalBorderSurface* VesselTopSurface =
|
||||
@@ -628,13 +627,12 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
new G4LogicalBorderSurface
|
||||
("Shield", LXe_phys, CuShield_phys, OpCuShieldSurface);
|
||||
|
||||
G4double CuShield_PP[NUM] = { 7.0*eV, 7.50*eV };
|
||||
G4double CuShield_REFL[NUM] = { 0.3, 0.2 };
|
||||
std::vector<G4double> CuShield_PP = { 7.0*eV, 7.50*eV };
|
||||
std::vector<G4double> CuShield_REFL = { 0.3, 0.2 };
|
||||
G4MaterialPropertiesTable *CuShield_mt = new G4MaterialPropertiesTable();
|
||||
CuShield_mt->AddProperty("REFLECTIVITY", CuShield_PP, CuShield_REFL, NUM);
|
||||
CuShield_mt->AddProperty("REFLECTIVITY", CuShield_PP, CuShield_REFL);
|
||||
OpCuShieldSurface->SetMaterialPropertiesTable(CuShield_mt);
|
||||
|
||||
|
||||
// rings ***************************************************************
|
||||
|
||||
G4double ringHeight = 4.*mm;
|
||||
@@ -648,10 +646,10 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
ring_log = new G4LogicalVolume(ring_tube, ring_mat, "ring_log");
|
||||
|
||||
// optical surface: ring materials table
|
||||
G4double ring_PP[NUM] = { 6.00*eV, 7.50*eV };
|
||||
G4double ring_REFL[NUM] = { 0.7, 0.65 };
|
||||
std::vector<G4double> ring_PP = { 6.00*eV, 7.50*eV };
|
||||
std::vector<G4double> ring_REFL = { 0.7, 0.65 };
|
||||
G4MaterialPropertiesTable *ring_mt = new G4MaterialPropertiesTable();
|
||||
ring_mt->AddProperty("REFLECTIVITY", ring_PP, ring_REFL, NUM);
|
||||
ring_mt->AddProperty("REFLECTIVITY", ring_PP, ring_REFL);
|
||||
|
||||
G4OpticalSurface* OpRingSurface = new G4OpticalSurface
|
||||
("RingSurface", unified, ground, dielectric_metal, sigalpha=10.*deg);
|
||||
@@ -751,13 +749,12 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
new G4LogicalBorderSurface
|
||||
("Mirror", GXe_phys, mirror_phys, OpMirrorSurface);
|
||||
|
||||
G4double mirror_PP[NUM] = { 6.00*eV, 7.50*eV };
|
||||
G4double mirror_REFL[NUM] = { 0.83, 0.78 };
|
||||
std::vector<G4double> mirror_PP = { 6.00*eV, 7.50*eV };
|
||||
std::vector<G4double> mirror_REFL = { 0.83, 0.78 };
|
||||
G4MaterialPropertiesTable *mirror_mt = new G4MaterialPropertiesTable();
|
||||
mirror_mt->AddProperty("REFLECTIVITY", mirror_PP, mirror_REFL, NUM);
|
||||
mirror_mt->AddProperty("REFLECTIVITY", mirror_PP, mirror_REFL);
|
||||
OpMirrorSurface->SetMaterialPropertiesTable(mirror_mt);
|
||||
|
||||
|
||||
// Grids *************************************************************
|
||||
|
||||
G4double gridHeight = 0.100*mm;
|
||||
@@ -820,10 +817,10 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
new G4LogicalBorderSurface
|
||||
("Alpha", LXe_phys, alpha_phys, OpAlphaSurface);
|
||||
|
||||
G4double alpha_PP[NUM] = { 6.00*eV, 7.50*eV };
|
||||
G4double alpha_REFL[NUM] = { 0.05, 0.05 };
|
||||
std::vector<G4double> alpha_PP = { 6.00*eV, 7.50*eV };
|
||||
std::vector<G4double> alpha_REFL = { 0.05, 0.05 };
|
||||
G4MaterialPropertiesTable *alpha_mt = new G4MaterialPropertiesTable();
|
||||
alpha_mt->AddProperty("REFLECTIVITY", alpha_PP, alpha_REFL, NUM);
|
||||
alpha_mt->AddProperty("REFLECTIVITY", alpha_PP, alpha_REFL);
|
||||
OpAlphaSurface->SetMaterialPropertiesTable(alpha_mt);
|
||||
|
||||
// americium ***********************************************************
|
||||
@@ -852,10 +849,10 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
new G4LogicalBorderSurface
|
||||
("Americium", LXe_phys, americium_phys, OpAmericiumSurface);
|
||||
|
||||
G4double americium_PP[NUM] = { 6.00*eV, 7.50*eV };
|
||||
G4double americium_REFL[NUM] = { 0.7, 0.65 };
|
||||
std::vector<G4double> americium_PP = { 6.00*eV, 7.50*eV };
|
||||
std::vector<G4double> americium_REFL = { 0.7, 0.65 };
|
||||
G4MaterialPropertiesTable *americium_mt = new G4MaterialPropertiesTable();
|
||||
americium_mt->AddProperty("REFLECTIVITY", americium_PP, americium_REFL, NUM);
|
||||
americium_mt->AddProperty("REFLECTIVITY", americium_PP, americium_REFL);
|
||||
OpAlphaSurface->SetMaterialPropertiesTable(americium_mt);
|
||||
|
||||
G4VisAttributes* americium_vat= new G4VisAttributes(cyan);
|
||||
@@ -915,27 +912,26 @@ G4VPhysicalVolume* DMXDetectorConstruction::Construct() {
|
||||
new G4LogicalBorderSurface
|
||||
("phcath_surf", pmt_phys, phcath_phys, phcath_opsurf);
|
||||
|
||||
G4double phcath_PP[NUM] = { 6.00*eV, 7.50*eV };
|
||||
// G4double phcath_REFL[NUM] = { 0.0, 0.0};
|
||||
std::vector<G4double> phcath_PP = { 6.00*eV, 7.50*eV };
|
||||
// std::vector<G4double> phcath_REFL = { 0.0, 0.0};
|
||||
// G4MaterialPropertiesTable* phcath_mt = new G4MaterialPropertiesTable();
|
||||
// phcath_mt->AddProperty("REFLECTIVITY", phcath_PP, phcath_REFL, NUM);
|
||||
// phcath_mt->AddProperty("REFLECTIVITY", phcath_PP, phcath_REFL);
|
||||
// phcath_opsurf->SetMaterialPropertiesTable(phcath_mt);
|
||||
|
||||
|
||||
//**Photocathode surface properties
|
||||
G4double photocath_EFF[NUM]={1.,1.}; //Enables 'detection' of photons
|
||||
G4double photocath_ReR[NUM]={1.92,1.92};
|
||||
G4double photocath_ImR[NUM]={1.69,1.69};
|
||||
std::vector<G4double> photocath_EFF={1.,1.}; //Enables 'detection' of photons
|
||||
std::vector<G4double> photocath_ReR={1.92,1.92};
|
||||
std::vector<G4double> photocath_ImR={1.69,1.69};
|
||||
G4MaterialPropertiesTable* photocath_mt = new G4MaterialPropertiesTable();
|
||||
photocath_mt->AddProperty("EFFICIENCY",phcath_PP,photocath_EFF,NUM);
|
||||
photocath_mt->AddProperty("REALRINDEX",phcath_PP,photocath_ReR,NUM);
|
||||
photocath_mt->AddProperty("IMAGINARYRINDEX",phcath_PP,photocath_ImR,NUM);
|
||||
photocath_mt->AddProperty("EFFICIENCY",phcath_PP,photocath_EFF);
|
||||
photocath_mt->AddProperty("REALRINDEX",phcath_PP,photocath_ReR);
|
||||
photocath_mt->AddProperty("IMAGINARYRINDEX",phcath_PP,photocath_ImR);
|
||||
G4OpticalSurface* photocath_opsurf=
|
||||
new G4OpticalSurface("photocath_opsurf",glisur,polished,
|
||||
dielectric_metal);
|
||||
photocath_opsurf->SetMaterialPropertiesTable(photocath_mt);
|
||||
|
||||
|
||||
G4VisAttributes* phcath_vat= new G4VisAttributes(lblue);
|
||||
phcath_vat->SetForceSolid(true);
|
||||
phcath_vat->SetVisibility(true);
|
||||
|
||||
@@ -61,17 +61,16 @@
|
||||
LXe->AddElement( elementXe, 1);
|
||||
GXe->AddElement( elementXe, 1);
|
||||
|
||||
const G4int NUMENTRIES = 3;
|
||||
// G4double LXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV };
|
||||
G4double LXe_PP[NUMENTRIES] = { 7.0*eV , 7.07*eV, 7.14*eV };
|
||||
G4double LXe_SCINT[NUMENTRIES] = { 0.1, 1.0, 0.1 };
|
||||
G4double LXe_RIND[NUMENTRIES] = { 1.59 , 1.57, 1.54 };
|
||||
G4double LXe_ABSL[NUMENTRIES] = { 35.*cm, 35.*cm, 35.*cm}; //atten length
|
||||
// std::vector<G4double> LXe_PP = { 7.07*eV, 7.07*eV };
|
||||
std::vector<G4double> LXe_PP = { 7.0*eV , 7.07*eV, 7.14*eV };
|
||||
std::vector<G4double> LXe_SCINT = { 0.1, 1.0, 0.1 };
|
||||
std::vector<G4double> LXe_RIND = { 1.59 , 1.57, 1.54 };
|
||||
std::vector<G4double> LXe_ABSL = { 35.*cm, 35.*cm, 35.*cm}; //atten length
|
||||
G4MaterialPropertiesTable *LXe_mt = new G4MaterialPropertiesTable();
|
||||
LXe_mt->AddProperty("FASTCOMPONENT", LXe_PP, LXe_SCINT, NUMENTRIES);
|
||||
LXe_mt->AddProperty("SLOWCOMPONENT", LXe_PP, LXe_SCINT, NUMENTRIES);
|
||||
LXe_mt->AddProperty("RINDEX", LXe_PP, LXe_RIND, NUMENTRIES);
|
||||
LXe_mt->AddProperty("ABSLENGTH", LXe_PP, LXe_ABSL, NUMENTRIES);
|
||||
LXe_mt->AddProperty("FASTCOMPONENT", LXe_PP, LXe_SCINT);
|
||||
LXe_mt->AddProperty("SLOWCOMPONENT", LXe_PP, LXe_SCINT);
|
||||
LXe_mt->AddProperty("RINDEX", LXe_PP, LXe_RIND);
|
||||
LXe_mt->AddProperty("ABSLENGTH", LXe_PP, LXe_ABSL);
|
||||
LXe_mt->AddConstProperty("SCINTILLATIONYIELD",12000./MeV); // include QE 20%
|
||||
// and 13eV creation energy for photons - may be 15eV?
|
||||
// Fano factor assumed 1; should be much less for Xe ~ 0.13
|
||||
@@ -83,16 +82,16 @@
|
||||
LXe_mt->AddConstProperty("YIELDRATIO",1.0);
|
||||
LXe->SetMaterialPropertiesTable(LXe_mt);
|
||||
|
||||
// G4double GXe_PP[NUMENTRIES] = { 7.07*eV, 7.07*eV };
|
||||
G4double GXe_PP[NUMENTRIES] = { 7.0*eV, 7.07*eV, 7.14*eV };
|
||||
G4double GXe_SCINT[NUMENTRIES] = { 0.1, 1.0, 0.1 };
|
||||
G4double GXe_RIND[NUMENTRIES] = { 1.00, 1.00, 1.00 };
|
||||
G4double GXe_ABSL[NUMENTRIES] = { 100*m, 100*m, 100*m}; //atten length
|
||||
// std::vector<G4double> GXe_PP = { 7.07*eV, 7.07*eV };
|
||||
std::vector<G4double> GXe_PP = { 7.0*eV, 7.07*eV, 7.14*eV };
|
||||
std::vector<G4double> GXe_SCINT = { 0.1, 1.0, 0.1 };
|
||||
std::vector<G4double> GXe_RIND = { 1.00, 1.00, 1.00 };
|
||||
std::vector<G4double> GXe_ABSL = { 100*m, 100*m, 100*m}; //atten length
|
||||
G4MaterialPropertiesTable *GXe_mt = new G4MaterialPropertiesTable();
|
||||
GXe_mt->AddProperty("FASTCOMPONENT", GXe_PP, GXe_SCINT, NUMENTRIES);
|
||||
GXe_mt->AddProperty("SLOWCOMPONENT", GXe_PP, GXe_SCINT, NUMENTRIES);
|
||||
GXe_mt->AddProperty("RINDEX", GXe_PP, GXe_RIND, NUMENTRIES);
|
||||
GXe_mt->AddProperty("ABSLENGTH", GXe_PP, GXe_ABSL, NUMENTRIES);
|
||||
GXe_mt->AddProperty("FASTCOMPONENT", GXe_PP, GXe_SCINT);
|
||||
GXe_mt->AddProperty("SLOWCOMPONENT", GXe_PP, GXe_SCINT);
|
||||
GXe_mt->AddProperty("RINDEX", GXe_PP, GXe_RIND);
|
||||
GXe_mt->AddProperty("ABSLENGTH", GXe_PP, GXe_ABSL);
|
||||
GXe_mt->AddConstProperty("SCINTILLATIONYIELD",12000./MeV); // include QE 20%
|
||||
GXe_mt->AddConstProperty("RESOLUTIONSCALE",1.0);
|
||||
GXe_mt->AddConstProperty("FASTTIMECONSTANT",20.*ns);
|
||||
@@ -111,13 +110,13 @@
|
||||
quartz->AddElement(Si, 1);
|
||||
quartz->AddElement(O , 2);
|
||||
|
||||
G4double quartz_PP[NUMENTRIES] = { 5.0*eV, 6.69*eV, 7.50*eV }; // lambda range 4 ri
|
||||
G4double quartz_RIND[NUMENTRIES] = { 1.51, 1.57, 1.61 }; // ref index
|
||||
// G4double quartz_RIND[NUMENTRIES] = { 1.45, 1.51, 1.54 }; // ref index
|
||||
G4double quartz_ABSL[NUMENTRIES] = { 3.0*cm, 3.0*cm, 3.0*cm };// atten length
|
||||
std::vector<G4double> quartz_PP = { 5.0*eV, 6.69*eV, 7.50*eV }; // lambda range 4 ri
|
||||
std::vector<G4double> quartz_RIND = { 1.51, 1.57, 1.61 }; // ref index
|
||||
// std::vector<G4double> quartz_RIND = { 1.45, 1.51, 1.54 }; // ref index
|
||||
std::vector<G4double> quartz_ABSL = { 3.0*cm, 3.0*cm, 3.0*cm };// atten length
|
||||
G4MaterialPropertiesTable *quartz_mt = new G4MaterialPropertiesTable();
|
||||
quartz_mt->AddProperty("RINDEX", quartz_PP, quartz_RIND, NUMENTRIES);
|
||||
quartz_mt->AddProperty("ABSLENGTH", quartz_PP, quartz_ABSL, NUMENTRIES);
|
||||
quartz_mt->AddProperty("RINDEX", quartz_PP, quartz_RIND);
|
||||
quartz_mt->AddProperty("ABSLENGTH", quartz_PP, quartz_ABSL);
|
||||
quartz->SetMaterialPropertiesTable(quartz_mt);
|
||||
|
||||
|
||||
@@ -134,13 +133,13 @@
|
||||
(name="CathodeMetalAluminium", density=2.700*g/cm3, ncomponents=1);
|
||||
cathmetalAl->AddElement(Al, 1);
|
||||
|
||||
G4double cathmetal_PP[NUMENTRIES] = { 5.0*eV, 6.69*eV, 7.50*eV };
|
||||
G4double cathmetal_RIND[NUMENTRIES] = { 1.51, 1.57, 1.61 }; // ref index
|
||||
G4double cathmetal_ABSL[NUMENTRIES] = { 1.e-20*m, 1.e-20*m, 1.e-20*m };// atten length
|
||||
// G4double cathmetal_ABSL[NUMENTRIES] = { 3.0*cm, 3.0*cm, 3.0*cm };// atten length
|
||||
std::vector<G4double> cathmetal_PP = { 5.0*eV, 6.69*eV, 7.50*eV };
|
||||
std::vector<G4double> cathmetal_RIND = { 1.51, 1.57, 1.61 }; // ref index
|
||||
std::vector<G4double> cathmetal_ABSL = { 1.e-20*m, 1.e-20*m, 1.e-20*m };// atten length
|
||||
// std::vector<G4double> cathmetal_ABSL = { 3.0*cm, 3.0*cm, 3.0*cm };// atten length
|
||||
G4MaterialPropertiesTable *cathmetal_mt = new G4MaterialPropertiesTable();
|
||||
cathmetal_mt->AddProperty("RINDEX", cathmetal_PP, cathmetal_RIND,NUMENTRIES);
|
||||
cathmetal_mt->AddProperty("ABSLENGTH", cathmetal_PP, cathmetal_ABSL, NUMENTRIES);
|
||||
cathmetal_mt->AddProperty("RINDEX", cathmetal_PP, cathmetal_RIND);
|
||||
cathmetal_mt->AddProperty("ABSLENGTH", cathmetal_PP, cathmetal_ABSL);
|
||||
cathmetalAl->SetMaterialPropertiesTable(cathmetal_mt);
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user