Optical Properties

Optical properties are attached to a GMaterial instance. They enable Geant4 to simulate Cherenkov radiation, scintillation, Rayleigh scattering, and photon boundary interactions (reflection, refraction, absorption).

Several energy-dependent quantities can be defined:


photonEnergy — [required]

photonEnergy is the energy axis for all other optical properties. It must be set whenever any optical field is used:

mat.photonEnergy = "2.0*eV 3.0*eV 4.0*eV 5.0*eV"

Values are space-separated strings with Geant4 units (*eV, *keV, *MeV). Values must be in strictly increasing order — Geant4 interpolates between them and will produce undefined behaviour if the energy axis is unsorted.

To convert from photon wavelength to energy:

E (eV) = 1240 / λ (nm)

For example, 400 nm (blue) ≈ 3.1 eV; 700 nm (red) ≈ 1.77 eV.


Index of refraction

Set indexOfRefraction to enable Cherenkov radiation and optical photon refraction at boundaries.

mat.photonEnergy      = "2.0*eV 3.0*eV 4.0*eV 5.0*eV"
mat.indexOfRefraction = "1.458 1.466 1.476 1.490"

Maps to the Geant4 property RINDEX.

See the Cherenkov example for a complete setup using three gas radiators with different refractive indices.


Absorption length

absorptionLength controls how far optical photons travel before being absorbed. Values carry length units (*m, *cm, *mm):

mat.absorptionLength = "3*m 3*m 3*m 3*m"

Maps to the Geant4 property ABSLENGTH


Scintillation properties

Scintillators emit optical photons when charged particles deposit energy. Geant4 models two emission time components: fast (prompt) and slow (delayed).

Energy-dependent fields

Field Geant4 key Description
fastcomponent SCINTILLATIONCOMPONENT1 Relative emission spectrum of the fast component
slowcomponent SCINTILLATIONCOMPONENT2 Relative emission spectrum of the slow component
mat.photonEnergy  = "2.0*eV 2.5*eV 3.0*eV 3.5*eV 4.0*eV"
mat.fastcomponent = "1.0 0.9 0.8 0.7 0.6"
mat.slowcomponent = "0.5 0.4 0.3 0.2 0.1"

Values are relative (not absolute); Geant4 normalises them internally.

Scalar fields

Field Geant4 key Unit Description
scintillationyield SCINTILLATIONYIELD photons/MeV Mean light yield per deposited MeV
resolutionscale RESOLUTIONSCALE Width of the photon-count distribution: values < 1 give sub-Poisson (Fano factor); values > 1 model impurity-broadened crystals
fasttimeconstant SCINTILLATIONTIMECONSTANT1 ns Decay time constant of the fast component
slowtimeconstant SCINTILLATIONTIMECONSTANT2 ns Decay time constant of the slow component
yieldratio SCINTILLATIONYIELD1 Fraction of total yield emitted by the fast component (0–1)
birksConstant mm/MeV Birks quenching parameter (see note below)

Note

Scalar properties set to 0 are silently skipped — Geant4’s AddConstProperty is not called. Use a small non-zero value if you intentionally want to set a property to zero.

Note

birksConstant is applied via G4Material::GetIonisation()->SetBirksConstant(), not through the optical properties table. It quenches the scintillation yield for high-dE/dx particles (Birks’ law).


Complete NaI-like scintillator

scint = GMaterial("my_scintillator")
scint.density = 3.67
scint.addNAtoms("Na", 1)
scint.addNAtoms("I",  1)
scint.photonEnergy       = "2.0*eV 2.5*eV 3.0*eV 3.5*eV 4.0*eV"
scint.fastcomponent      = "1.0 0.9 0.8 0.7 0.6"
scint.slowcomponent      = "0.5 0.4 0.3 0.2 0.1"
scint.scintillationyield = 1000
scint.resolutionscale    = 1.0
scint.fasttimeconstant   = 6
scint.slowtimeconstant   = 88
scint.yieldratio         = 0.8
scint.birksConstant      = 0.00152
scint.publish(cfg)


Reflectivity and efficiency

These properties model the behaviour of optical photons at a dielectric–metal boundary (e.g. a mirror or a PMT photocathode). At such a boundary there is no refraction; the photon is either reflected or absorbed with efficiency.

Field Geant4 key Description
reflectivity REFLECTIVITY Fraction of photons reflected
efficiency EFFICIENCY Absorption probability for photons that are not reflected; models quantum efficiency for photosensors
mat.reflectivity = "0.85 0.87 0.90 0.88 0.85"
mat.efficiency   = "0.20 0.22 0.25 0.23 0.20"

These properties are most useful when the material is assigned to an optical surface (G4OpticalSurface) defined in the geometry. For bulk material, absorptionLength is more appropriate.


Rayleigh scattering

rayleigh defines the Rayleigh scattering attenuation length as a function of photon energy. Values carry length units:

mat.rayleigh = "50*cm 45*cm 40*cm 35*cm 30*cm"

Maps to the Geant4 property RAYLEIGH


Physics list requirement

Optical photon tracking requires an optical physics constructor. Add G4OpticalPhysics to the physics list in the YAML file:

phys_list: FTFP_BERT + G4OpticalPhysics

phys_list

The physics list can be selected using the option

gemc -phys_list <value>

where <value> can be a combination of the Geant4 physics constructors separated by the + sign. For example

gemc -phys_list="FTFP_BERT + G4NeutronCrossSectionXS"

To see a list of the available Geant4 constructors:

gemc -showPhysics


Simulation

Gemc simulation showing scintillation and Cherenkov radiation
Gemc simulation of the five-tube materials example with G4OpticalPhysics enabled. Proton tracks (straight lines) traverse all five tubes along the z-axis. The fourth tube (NaI-like scintillator) emits an isotropic fan of optical photons through scintillation when the proton deposits energy. The fifth tube (SiO₂ glass with index of refraction ≈ 1.46–1.49) produces the characteristic narrow Cherenkov cone, whose opening angle depends on the particle velocity relative to the phase velocity of light in the medium.


Working examples