1 / 28

Low Energy Electromagnetic Physics PART II

Low Energy Electromagnetic Physics PART II. Alex Howard Imperial College, UK a.s.howard@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/. Lecture 1 Overview Software process OOAD

Download Presentation

Low Energy Electromagnetic Physics PART II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Low Energy Electromagnetic Physics PART II Alex Howard Imperial College, UK a.s.howard@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/

  2. 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 Plan of the tutorial

  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. Compton scattering Rayleigh scattering Photoelectric effect Pair production Bremsstrahlung Ionisation Polarised Compton + atomic relaxation fluorescence Auger effect following photoelectric effect and ionisation The following code is required in yourPhysicsList.cc [All code has been lifted from the relevant advanced examples] Low Energy Em Physics Implementation:

  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 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); } else if (particleName == "e-") { //electron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(loweIon, -1, 2,2); pmanager->AddProcess(loweBrem, -1,-1,3); } else if (particleName == "e+") { //positron pmanager->AddProcess(new G4MultipleScattering, -1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); } } }

  7. sample detector beam Fe lines GaAs lines Scattered photons X-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"

  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" ) { pmanager->AddProcess(new G4MultipleScattering,-1,1,1); 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 G4MultipleScattering,-1, 1,1); pmanager->AddProcess(new G4eIonisation, -1, 2,2); pmanager->AddProcess(new G4eBremsstrahlung, -1,-1,3); pmanager->AddProcess(new G4eplusAnnihilation, 0,-1,4); }

  9. mirror LXe GXe source PMT Underground 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: #include "G4hLowEnergyIonisation.hh" #include "G4EnergyLossTables.hh" //muon: #include "G4MuIonisation.hh" #include "G4MuBremsstrahlung.hh" #include "G4MuPairProduction.hh" #include "G4MuonMinusCaptureAtRest.hh"

  10. 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); Process Creation - DMX

  11. Hadron Ionisation – Choosing a model G4hLowEnergyIonisation* ahadronLowEIon = new G4hLowEnergyIonisation(); ahadronLowEIon->SetNuclearStoppingPowerModel("ICRU_R49") ; ahadronLowEIon->SetNuclearStoppingOn() ; // ahadronLowEIon->SetElectronicStoppingPowerModel // (G4GenericIon::GenericIonDefinition(), "ICRU_R49p") ; // ahadronLowEIon->SetElectronicStoppingPowerModel // (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, 1); pmanager->AddProcess(loweIon, -1, 2, 2); pmanager->AddProcess(loweBrem, -1,-1, 3); } // positron else if (particleName == "e+") { pmanager->AddProcess(aMultipleScattering, -1, 1, 1); pmanager->AddProcess(new G4eIonisation(), -1, 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, 1); pmanager->AddProcess(new G4MuIonisation(), -1, 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, -1, 2, 2); } // all other charged particles except geantino else if ((!particle->IsShortLived()) && (particleCharge != 0.0) && (particleName != "chargedgeantino")) { pmanager->AddProcess(aMultipleScattering, -1, 1, 1); pmanager->AddProcess(ahadronLowEIon, -1, 2, 2); } } }

  16. //special for low energy physics G4double lowlimit=250*eV; G4Gamma ::SetEnergyRange(lowlimit,100*GeV); G4Electron::SetEnergyRange(lowlimit,100*GeV); G4Positron::SetEnergyRange(lowlimit,100*GeV); Setting Energy Cuts:

  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 Simulationof Test-Mass Chargingin 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. 2 days in parallel !!! 45 s exposure ~ 10,000,000 events 1 charging event ~ 2,000 events ~ 40,000 events/day/CPU Charging rate Results I G4 result: 58 +e/s (G3 result: 11 +e/s) 52 +e/s 6 +e/s

  25. 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 Results II 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. Cosmic rays, jovian electrons AGILE Solar X-rays, e, p GLAST GLAST Courtesy SOHO EIT Other Users – SPACE and Cosmic Ray

  27. The 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

  28. Conclusions To learn more…………: • 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

More Related