Title: Low Energy Electromagnetic Physics PART II
1Low Energy Electromagnetic Physics PART II
- Alex Howard
- Imperial College, UK
- a.s.howard_at_ic.ac.uk
- on behalf of the Low Energy Electromagnetic
Working Group - Geant4 User Workshop
- CERN, 11-15 November 2002
http//www.ge.infn.it/geant4/training/
2Plan of the tutorial
- Lecture 1
- Overview
- Software process
- OOAD
- Physics
- Electrons and photons
- Hadrons and ions
- Atomic relaxation
- Polarisation
- Lecture 2
- How to use LowE processes
- Examples
- Experimental applications
- Outlook
3Outline
- How to use Geant4 LowE electromagnetic processes
- Where to find examples
- A selection of real-life applications
- Space Physics X-Rays
- Space Physics Proof Mass Charging
- Medical Physics
- Dark Matter
- Outlook
- New Physics
- Performance Optimisation
- Conclusions
4Low Energy Em Physics Implementation
- The following code is required in
yourPhysicsList.cc - All code has been lifted from the relevant
advanced examples
- Compton scattering
- Rayleigh scattering
- Photoelectric effect
- Pair production
- Bremsstrahlung
- Ionisation
- Polarised Compton
- atomic relaxation
- fluorescence
- Auger effect
- following photoelectric effect and ionisation
5brachytherapy
- Low energy electromagnetic processes for precise
calculation of dose distribution - // gamma
- include "G4LowEnergyRayleigh.hh"
- include "G4LowEnergyPhotoElectric.hh"
- include "G4LowEnergyCompton.hh"
- include "G4LowEnergyGammaConversion.hh"
- // e-
- include "G4LowEnergyIonisation.hh"
- include "G4LowEnergyBremsstrahlung.hh"
- // e
- include "G4eIonisation.hh"
- include "G4eBremsstrahlung.hh"
- include "G4eplusAnnihilation.hh"
6Brachytherapy Implementation
void BrachyPhysicsListConstructEM()
theParticleIterator-gtreset() while(
(theParticleIterator)() )
G4ParticleDefinition particle
theParticleIterator-gtvalue()
G4ProcessManager pmanager particle-gtGetProcessM
anager() G4String particleName
particle-gtGetParticleName() //processes
lowePhot new G4LowEnergyPhotoElectric("LowEnPho
toElec") loweIon new G4LowEnergyIonisation
("LowEnergyIoni") loweBrem new
G4LowEnergyBremsstrahlung("LowEnBrem") if
(particleName "gamma") //gamma
pmanager-gtAddDiscreteProcess(new
G4LowEnergyRayleigh) pmanager-gtAddDiscreteP
rocess(lowePhot) pmanager-gtAddDiscreteProce
ss(new G4LowEnergyCompton)
pmanager-gtAddDiscreteProcess(new
G4LowEnergyGammaConversion)
else if (particleName "e-")
//electron pmanager-gtAddProcess(new
G4MultipleScattering, -1, 1,1)
pmanager-gtAddProcess(loweIon, -1, 2,2)
pmanager-gtAddProcess(loweBrem, -1,-1,3)
else if (particleName "e")
//positron pmanager-gtAddProcess(new
G4MultipleScattering, -1, 1,1)
pmanager-gtAddProcess(new G4eIonisation,
-1, 2,2) pmanager-gtAddProcess(new
G4eBremsstrahlung, -1,-1,3)
pmanager-gtAddProcess(new G4eplusAnnihilation,
0,-1,4)
7X-ray fluorescence
- Physics Low Energy processes, atomic relaxation
- include "G4LowEnergyCompton.hh"
- include "G4LowEnergyGammaConversion.hh"
- include "G4LowEnergyPhotoElectric.hh"
- include "G4LowEnergyRayleigh.hh"
-
- // e
- include "G4MultipleScattering.hh"
- include "G4eIonisation.hh"
- include "G4eBremsstrahlung.hh"
- include "G4eplusAnnihilation.hh"
-
- include "G4LowEnergyIonisation.hh"
- include "G4LowEnergyBremsstrahlung.hh"
- include "G4hLowEnergyIonisation.hh"
-
8Process Registration X-ray Fluor
- void XrayFluoPhysicsListConstructEM()
-
- theParticleIterator-gtreset()
- while( (theParticleIterator)() )
- G4ParticleDefinition particle
theParticleIterator-gtvalue() - G4ProcessManager pmanager
particle-gtGetProcessManager() - G4String particleName particle-gtGetParticleN
ame() - if (particleName "gamma")
- // gamma
- pmanager-gtAddDiscreteProcess(new
G4LowEnergyCompton) - LePeprocess new G4LowEnergyPhotoElectric()
- //LePeprocess-gtActivateAuger(false)
- //LePeprocess-gtSetCutForLowEnSecPhotons(1000
0 keV) - //LePeprocess-gtSetCutForLowEnSecElectrons(10
000 keV) - pmanager-gtAddDiscreteProcess(LePeprocess)
- pmanager-gtAddDiscreteProcess(new
G4LowEnergyRayleigh) -
-
else if (particleName "e-")
//electron pmanager-gtAddProcess(new
G4MultipleScattering,-1, 1,1) LeIoprocess
new G4LowEnergyIonisation()
//LeIoprocess-gtActivateAuger(false)
//LeIoprocess-gtSetCutForLowEnSecPhotons(10000
keV) //LeIoprocess-gtSetCutForLowEnSecElectr
ons(10000 keV) pmanager-gtAddProcess(LeIopro
cess, -1, 2, 2) LeBrprocess new
G4LowEnergyBremsstrahlung()
pmanager-gtAddProcess(LeBrprocess, -1, -1, 3)
else if (particleName "e")
//positron pmanager-gtAddProcess(new
G4MultipleScattering,-1, 1,1)
pmanager-gtAddProcess(new G4eIonisation, -1,
2,2) pmanager-gtAddProcess(new
G4eBremsstrahlung, -1,-1,3)
pmanager-gtAddProcess(new G4eplusAnnihilation,
0,-1,4)
- else if (particleName "proton")
- //proton
- pmanager-gtAddProcess(new G4MultipleScatterin
g,-1,1,1) - pmanager-gtAddProcess(new G4hLowEnergyIonisat
ion,-1, 2,2) -
- else if ( particleName "alpha" )
-
- pmanager-gtAddProcess(new G4MultipleScattering,-1,
1,1) - G4hLowEnergyIonisation iIon new
G4hLowEnergyIonisation() - pmanager-gtAddProcess(iIon,-1,2,2)
-
-
-
9Underground physics
- // Electromagnetic Processes // all charged
particles -
- // gamma
- include "G4LowEnergyRayleigh.hh"
- include "G4LowEnergyPhotoElectric.hh"
- include "G4LowEnergyCompton.hh"
- include "G4LowEnergyGammaConversion.hh"
-
- // e-
- include "G4LowEnergyIonisation.hh"
- include "G4LowEnergyBremsstrahlung.hh"
-
- // e
- include "G4eIonisation.hh"
- include "G4eBremsstrahlung.hh"
- include "G4eplusAnnihilation.hh"
-
-
- // alpha and GenericIon and deuterons, triton,
He3
10Process Creation - DMX
- void DMXPhysicsListConstructEM()
-
- // processes
- G4MultipleScattering aMultipleScattering new
G4MultipleScattering() -
- G4LowEnergyPhotoElectric lowePhot new
G4LowEnergyPhotoElectric() - G4LowEnergyIonisation loweIon new
G4LowEnergyIonisation() - G4LowEnergyBremsstrahlung loweBrem new
G4LowEnergyBremsstrahlung() - // fluorescence specific cuts for flourescence
- // from photons, electrons and bremsstrahlung
photons -
- G4double fluorcut 250eV
- lowePhot-gtSetCutForLowEnSecPhotons(fluorcut)
- loweIon -gtSetCutForLowEnSecPhotons(fluorcut)
- loweBrem-gtSetCutForLowEnSecPhotons(fluorcut)
-
-
-
11Hadron Ionisation Choosing a model
- G4hLowEnergyIonisation ahadronLowEIon new
G4hLowEnergyIonisation() - ahadronLowEIon-gtSetNuclearStoppingPowerModel("IC
RU_R49") - ahadronLowEIon-gtSetNuclearStoppingOn()
-
- // ahadronLowEIon-gtSetElectronicStoppingPower
Model - // (G4GenericIonGenericIonDefinition(),
"ICRU_R49p") - // ahadronLowEIon-gtSetElectronicStoppingPower
Model - // (G4ProtonProtonDefinition(),
"ICRU_R49p") - // Switch off the Barkas and Bloch corrections
- ahadronLowEIon-gtSetBarkasOff()
- // Switch off hadron-induced fluorescence (for
now) - ahadronLowEIon-gtSetFluorescence(false)
- // NOTE the same G4hLowEnergyIonisation
process is applied to all hadrons, which need not
be the case!
12Attaching Processes to Particles
- theParticleIterator-gtreset()
- while( (theParticleIterator)() )
- G4ParticleDefinition particle
theParticleIterator-gtvalue() -
- G4ProcessManager pmanager
particle-gtGetProcessManager() - G4String particleName
particle-gtGetParticleName() - G4String particleType
particle-gtGetParticleType() - G4double particleCharge
particle-gtGetPDGCharge() - // gamma
- if (particleName "gamma")
-
- pmanager-gtAddDiscreteProcess(new
G4LowEnergyRayleigh()) - pmanager-gtAddDiscreteProcess(lowePhot)
- pmanager-gtAddDiscreteProcess(new
G4LowEnergyCompton()) - pmanager-gtAddDiscreteProcess(new
G4LowEnergyGammaConversion()) -
13Attaching Processes to Particles
-
- // electron
- else if (particleName "e-")
-
- // process ordering AddProcess(name, at
rest, along step, post step) - // -1 not implemented, then ordering
- pmanager-gtAddProcess(aMultipleScattering,
-1, 1, 1) - pmanager-gtAddProcess(loweIon,
-1, 2, 2) - pmanager-gtAddProcess(loweBrem,
-1,-1, 3) -
- // positron
- else if (particleName "e")
-
- pmanager-gtAddProcess(aMultipleScattering,
-1, 1, 1) - pmanager-gtAddProcess(new G4eIonisation(),
-1, 2, 2) - pmanager-gtAddProcess(new
G4eBremsstrahlung(), -1,-1, 3) - pmanager-gtAddProcess(new
G4eplusAnnihilation(), 0,-1, 4) -
-
14Attaching Processes to Particles
- // muons
- else if( particleName "mu"
- particleName "mu-" )
-
- pmanager-gtAddProcess(aMultipleScattering,
-1, 1, 1) - pmanager-gtAddProcess(new
G4MuIonisation(), -1, 2, 2) - pmanager-gtAddProcess(new
G4MuBremsstrahlung(), -1,-1, 3) - pmanager-gtAddProcess(new
G4MuPairProduction(), -1,-1, 4) - if( particleName "mu-" )
- pmanager-gtAddProcess(new
G4MuonMinusCaptureAtRest(), 0,-1,-1) -
- // charged hadrons
- else if (particleName "proton"
- particleName "alpha"
- particleName "deuteron"
- particleName "triton"
- particleName "He3"
- particleName "GenericIon"
- (particleType "nucleus"
particleCharge ! 0))
15Attaching Processes to Particles
-
- // OBJECT may be dynamically created as
either a GenericIon or nucleus - pmanager-gtAddProcess(aMultipleScattering,
-1, 1, 1) - pmanager-gtAddProcess(ahadronLowEIon,
-1, 2, 2) -
- // all other charged particles except
geantino - else if ((!particle-gtIsShortLived())
- (particleCharge ! 0.0)
- (particleName !
"chargedgeantino")) -
- pmanager-gtAddProcess(aMultipleScattering,
-1, 1, 1) - pmanager-gtAddProcess(ahadronLowEIon,
-1, 2, 2) -
-
-
-
-
-
16Setting Energy Cuts
- //special for low energy physics
- G4double lowlimit250eV
- G4Gamma SetEnergyRange(lowlimit,100GeV)
- G4ElectronSetEnergyRange(lowlimit,100GeV)
- G4PositronSetEnergyRange(lowlimit,100GeV)
17Validation of Low Energy Physics Some (biased)
examples
- Two examples of Low Energy Physics Implementation
and Validation that I have experience in - UNDERGROUND (DARK MATTER) SIMULATION DMX
- Low energy gammas, electrons, hadrons and
secondary production - GRAVITATIONAL WAVE LISA (Proof Mass Charging)
- All electromagnetic processes that can lead to
residual charge, - In particular secondary production
18g
upwards
through
Xe shell
Pb compton
19241Am spectrum
experimental
20g spectrum
experimental
21Time Constant Discrimination
Geant4 Output
Experimental Data
- Red Curve Alphas
- Blue Curve Gammas
22Geant4 Simulationof Test-Mass Chargingin the
LISA Mission
- Very long base-line 1 million km
- Very high precision lt 1nm 1pm (!)
23Physics List
EM processes (LowE) Electrons, Gammas, etc Atomic
de-excitation Hadrons (no hFluorescence)
Secondaries Cuts (250 eV), 1mm - 5mm Kill e-
outside caging
24Results I
45 s exposure 10,000,000 events 1 charging
event 2,000 events 40,000 events/day/CPU
Charging rate
G4 result 58 e/s
(G3 result 11 e/s)
52 e/s
6 e/s
25Results II
Cuts
1 um 8.77 keV 41 e/s
(0.1 um) 250 eV 52 e/s
2 um 30.7 keV 40 e/s
5 um 53.2 keV 42 e/s
Energy of Primary, MeV
Decreasing the production threshold from 10 keV
(G3, G4EM) to 250 eV (G4LowE) leads to a 20
increase of the charging rate!
26Other Users SPACE and Cosmic Ray
27The Future
- In progress
- Polarised g conversion, photoelectric
- More precise angular distributions (Rayleigh,
photoelectric, Bremsstrahlung etc.) - Foreseen
- New models, based on different physics approaches
- Processes for positrons
- Performance Optimisation and Enhancement
- Development plan
- Driven by user requirements
- Schedule compatible with available resources
28To learn more
Conclusions
- Low Energy EM Physics implementation has been
demonstrated - Its use within actual examples demonstrate
- Validation with experimental data has been
carried out (ongoing) - There are still low energy EM physics areas that
are being developed - Performance optimisation, benchmarking and
testing are being initiated.
- Geant4 Physics Reference Manual
- Application Developer Guide
- http//www.ge.infn.it/geant4/lowE