Download presentation
Presentation is loading. Please wait.
1
Low Energy Electromagnetic Physics PART II
Alex Howard Imperial College, UK on behalf of the Low Energy Electromagnetic Working Group Geant4 User Workshop CERN, November 2002
2
Plan of the tutorial Lecture 1 Lecture 2 How to use LowE processes
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
3
Outline 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
4
Low 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
5
brachytherapy 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"
6
Brachytherapy Implementation
} else if (particleName == "e-") { //electron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(loweIon, , 2,2); pmanager->AddProcess(loweBrem, -1,-1,3); } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4eIonisation, , 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); } void BrachyPhysicsList::ConstructEM() { theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); //processes lowePhot = new G4LowEnergyPhotoElectric("LowEnPhotoElec"); loweIon = new G4LowEnergyIonisation("LowEnergyIoni"); loweBrem = new G4LowEnergyBremsstrahlung("LowEnBrem"); if (particleName == "gamma") { //gamma pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh); pmanager->AddDiscreteProcess(lowePhot); pmanager->AddDiscreteProcess(new G4LowEnergyCompton); pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion);
7
X-ray fluorescence Physics: Low Energy processes, atomic relaxation
sample detector beam 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" Scattered photons Fe lines GaAs lines
8
Process Registration X-ray Fluor
else if (particleName == "proton") { //proton pmanager->AddProcess(new G4MultipleScattering,-1,1,1); pmanager->AddProcess(new G4hLowEnergyIonisation,-1, 2,2); } else if ( particleName == "alpha" ) { G4hLowEnergyIonisation* iIon = new G4hLowEnergyIonisation() ; pmanager->AddProcess(iIon,-1,2,2); void XrayFluoPhysicsList::ConstructEM() { theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); if (particleName == "gamma") { // gamma pmanager->AddDiscreteProcess(new G4LowEnergyCompton); LePeprocess = new G4LowEnergyPhotoElectric(); //LePeprocess->ActivateAuger(false); //LePeprocess->SetCutForLowEnSecPhotons(10000 * keV); //LePeprocess->SetCutForLowEnSecElectrons(10000 * keV); pmanager->AddDiscreteProcess(LePeprocess); pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh); } else if (particleName == "e-") { //electron pmanager->AddProcess(new G4MultipleScattering,-1, 1,1); LeIoprocess = new G4LowEnergyIonisation(); //LeIoprocess->ActivateAuger(false); //LeIoprocess->SetCutForLowEnSecPhotons(10000 keV); //LeIoprocess->SetCutForLowEnSecElectrons(10000 keV); pmanager->AddProcess(LeIoprocess, -1, 2, 2); LeBrprocess = new G4LowEnergyBremsstrahlung(); pmanager->AddProcess(LeBrprocess, -1, -1, 3); } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4eIonisation, , 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); }
9
Underground physics mirror LXe GXe source PMT
// 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: #include "G4hLowEnergyIonisation.hh" #include "G4EnergyLossTables.hh" //muon: #include "G4MuIonisation.hh" #include "G4MuBremsstrahlung.hh" #include "G4MuPairProduction.hh" #include "G4MuonMinusCaptureAtRest.hh" LXe GXe PMT mirror source
10
Process Creation - DMX void DMXPhysicsList::ConstructEM() {
// 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 = 250*eV; lowePhot->SetCutForLowEnSecPhotons(fluorcut); loweIon ->SetCutForLowEnSecPhotons(fluorcut); loweBrem->SetCutForLowEnSecPhotons(fluorcut);
11
Hadron Ionisation – Choosing a model
G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ; ahadronLowEIon->SetNuclearStoppingOn() ; // ahadronLowEIon->SetElectronicStoppingPowerModel // (G4GenericIon::GenericIonDefinition(), "ICRU_R49p") ; // (G4Proton::ProtonDefinition(), "ICRU_R49p") ; // Switch off the Barkas and Bloch corrections ahadronLowEIon->SetBarkasOff(); // Switch off hadron-induced fluorescence (for now) ahadronLowEIon->SetFluorescence(false); // NOTE: the same G4hLowEnergyIonisation process is applied to all hadrons, which need not be the case!
12
Attaching Processes to Particles:
theParticleIterator->reset(); while( (*theParticleIterator)() ){ G4ParticleDefinition* particle = theParticleIterator->value(); G4ProcessManager* pmanager = particle->GetProcessManager(); G4String particleName = particle->GetParticleName(); G4String particleType = particle->GetParticleType(); G4double particleCharge = particle->GetPDGCharge(); // gamma if (particleName == "gamma") { pmanager->AddDiscreteProcess(new G4LowEnergyRayleigh()); pmanager->AddDiscreteProcess(lowePhot); pmanager->AddDiscreteProcess(new G4LowEnergyCompton()); pmanager->AddDiscreteProcess(new G4LowEnergyGammaConversion()); }
13
Attaching Processes to Particles:
{ // electron else if (particleName == "e-") // process ordering: AddProcess(name, at rest, along step, post step) // -1 = not implemented, then ordering pmanager->AddProcess(aMultipleScattering, , 1, 1); pmanager->AddProcess(loweIon, , 2, 2); pmanager->AddProcess(loweBrem, ,-1, 3); } // positron else if (particleName == "e+") pmanager->AddProcess(new G4eIonisation(), , 2, 2); pmanager->AddProcess(new G4eBremsstrahlung(), -1,-1, 3); pmanager->AddProcess(new G4eplusAnnihilation(), 0,-1, 4);
14
Attaching Processes to Particles:
// muons else if( particleName == "mu+" || particleName == "mu-" ) { pmanager->AddProcess(aMultipleScattering, , 1, 1); pmanager->AddProcess(new G4MuIonisation(), , 2, 2); pmanager->AddProcess(new G4MuBremsstrahlung(), -1,-1, 3); pmanager->AddProcess(new G4MuPairProduction(), -1,-1, 4); if( particleName == "mu-" ) pmanager->AddProcess(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))
15
Attaching Processes to Particles:
{ // OBJECT may be dynamically created as either a GenericIon or nucleus pmanager->AddProcess(aMultipleScattering, -1, 1, 1); pmanager->AddProcess(ahadronLowEIon, , 2, 2); } // all other charged particles except geantino else if ((!particle->IsShortLived()) && (particleCharge != 0.0) && (particleName != "chargedgeantino"))
16
Setting Energy Cuts: //special for low energy physics
G4double lowlimit=250*eV; G4Gamma ::SetEnergyRange(lowlimit,100*GeV); G4Electron::SetEnergyRange(lowlimit,100*GeV); G4Positron::SetEnergyRange(lowlimit,100*GeV);
17
Validation 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
18
g upwards through Xe shell Pb compton
19
241Am spectrum experimental
20
g spectrum experimental
21
Time Constant Discrimination
Geant4 Output Experimental Data Red Curve = Alphas Blue Curve = Gammas
22
Geant4 Simulation of Test-Mass Charging in the LISA Mission
Very long base-line: 1 million km Very high precision: < 1nm – 1pm (!)
23
Physics List EM processes (LowE) Electrons, Gammas, etc
Atomic de-excitation Hadrons (no hFluorescence) Secondaries Cuts: (250 eV), 1mm - 5mm Kill e- outside caging
24
G4 result: 58 +e/s Results I Charging rate 2 days in parallel !!!
45 s exposure ~ 10,000,000 events 1 charging event ~ 2,000 events ~ 40,000 events/day/CPU 2 days in parallel !!! Charging rate G4 result: 58 +e/s (G3 result: 11 +e/s) 52 +e/s 6 +e/s
25
Results II Cuts (~0.1 um) 250 eV 52 +e/s 1 um 8.77 keV 41 +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!
26
Other Users – SPACE and Cosmic Ray
GLAST AGILE Cosmic rays, jovian electrons Solar X-rays, e, p Courtesy SOHO EIT GLAST
27
The Future… Foreseen Development plan 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
28
Conclusions To learn more…………: http://www.ge.infn.it/geant4/lowE
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. To learn more…………: Geant4 Physics Reference Manual Application Developer Guide
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.