Presentation is loading. Please wait.

Presentation is loading. Please wait.

Low Energy Electromagnetic Physics PART II

Similar presentations


Presentation on theme: "Low Energy Electromagnetic Physics PART II"— Presentation transcript:

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


Download ppt "Low Energy Electromagnetic Physics PART II"

Similar presentations


Ads by Google