Status of particle_hp Pedro Arce Emilio Mendoza Daniel Cano-Ott (CIEMAT, Madrid)
July 2014 Status of particle_hp 2 What is particle_hp? neutron_hp package uses evaluated nuclear data bases for neutron interactions: Total cross sections Inelastic channel cross sections Double differential spectra of outgoing particles Gamma emission because of nuclear level transitions particle_hp: do the same for (inelastic) interactions of other particles (p, d, t, He3, ) Inelastic interactions of p/d/t/He3/ particles E < 200 MeV
July 2014 Status of particle_hp 3 Why particle_hp? Theory models or semi-empirical models sometimes cannot reproduce experimental data at low ( MeV), specially for low Z elements (J.M. Quesada agrees): IAEA medical DB (exper.) Geant4.9.5.p01 (QGSP_BIC_HP) p Energy (MeV) ( barns ) p + 18 O n + 18 F
July 2014 Status of particle_hp 4 What nuclear DBs are there? ENDF-VII: Uses experimental data + thorough evaluations Only a few isotopes (p:48, d:5, t:3, He3:2) Only p X reactions (MT=5) double differential spectra of resulting particles (n,p,d,…), without channel information (n,nn,np,nna,...) Up to 150 MeV for p (d: 50 MeV, t: 20 MeV, He3: 20 MeV) ENDF-6 format TENDL: Uses some experimental data + TALYS calculations All isotopes (2400) Only p X reactions (MT=5) All channels done in 2009, but not repeated Up to 200 MeV ENDF-6 format
July 2014 Status of particle_hp 5 What nuclear DBs are there? IAEA medical database: Only experimental data Only a few reaction channels of a few isotopes Only channel cross sections Simple text format IBANDL database: Only experimental data Not all isotopes Many experimental measurements channel by channel Low energy (up to a few MeV) Own format
July 2014 Status of particle_hp 6 Code changes PHYSICS LIST: G4NeutronHPInelastic* theParticleModel=new G4NeutronHPInelastic(); G4ParticleHPInelastic* theParticleModel=new G4ParticleHPInelastic(G4Proton::Proton()); (default G4Neutron::Neutron() for backwards compatibility) G4NeutronHPInelasticData* theNeutronHPInelasticData=new G4NeutronHPInelasticData(); G4ParticleHPInelasticData* theProtonHPInelasticData= new G4ParticleHPInelasticData(G4Proton::Proton()); (default G4Neutron::Neutron() for backwards compatibility) theProtonHPInelasticData->SetMaxKinEnergy(200.); Looking at the particle type, G4ParticleHPInelastic & G4ParticleHPInelasticData set the name of the environmental variable: "G4NEUTRONHPDATA“, "G4PROTONHPDATA“, "G4DEUTERONHPDATA“, "G4TRITONHPDATA“, "G4HE3HPDATA“, "G4ALPHAHPDATA" particle_hp compiled with geant ref04
July 2014 Status of particle_hp 7 neutron_hp CODE CHANGES: No new classes: only modify neutron_hp package Rename G4NeutronHP* → G4ParticleHP* Thermal scattering only for neutrons Eliminate assumptions that projectile is neutron and enviromental variable is “G4NEUTRONHPDATA” And add G4He3InelasticProcess G4ParticleHPChannel G4ParticleHPChannelList G4ParticleNames G4ParticleHPEnAngCorrelation G4ParticleHPContAngularPar G4ParticleHPContEnergyAngular G4ParticleHPInelastic G4ParticleHPInelasticData G4ParticleHPorLEInelastic G4ParticleHP*InelasticFS G4ParticleHPInelasticBaseFS G4ParticleHPInelasticCompFS G4ParticleHPFinalState Code changes
July 2014 Status of particle_hp 8 PARTICLE YIELD CORRECTIONS: Number of particles of a type produced in an interaction is not sampled in neutron_hp (except for gammas): Integer value is taken 2.43 → 2 Most charged particle data base isotopes do not have channel by channel cross sections, only particle yields (F02) Also several dozens isotopes in most neutron data bases (46 in G4NDL 4.4) Apply Poisson statistics for all particles SOME ENVIROMENTAL VARIABLE RENAMING: InelasticCompFSLogging >>> G4PARTICLEHP_InelasticCompFSLogging G4NEUTRONHP_NEGLECT_DOPPLER >>> G4PARTICLEHP_NEGLECT_DOPPLER G4NEUTRONHP_DO_NOT_ADJUST_FINAL_STATE >>> G4PARTICLEHP_DO_NOT_ADJUST_FINAL_STATE G4NEUTRONHP_USE_ONLY_PHOTONEVAPORATION >>> G4PARTICLEHP_USE_ONLY_PHOTONEVAPORATION G4NEUTRONHP_SKIP_MISSING_ISOTOPES >>> G4PARTICLEHP_SKIP_MISSING_ISOTOPES AllowForHeavyElements >>> G4PARTICLEHP_AllowForHeavyElements CaptureDataIndexDebug >>> G4PARTICLEHP_CaptureDataIndexDebug InelasticCompFSLogging >>> G4PARTICLEHP_InelasticCompFSLogging ParticleHPNamesLogging >>> G4ParticleHPDebug_NAMESLogging ParticleHPNames >>> G4ParticleHPDebug_NAMES HTOKEN >>> G4ParticleHPDebug_HTOKEN Code changes
July 2014 Status of particle_hp 9 Tests: compare with MCNP Secondary energy spectra (neutrons and gammas) at fixed energy Send protons of fixed energy and force them to interact inelastically before losing energy Score neutrons/gammas as they reach a sphere: do not let them interact n from p 22 MeV on Al27 n from p 100 MeV on Pb208 from p 100 MeV on Pb208 from p 22 MeV on Al27
July 2014 Status of particle_hp 10 Tests: compare with MCNP Secondary energy spectra (neutrons and gammas) losing energy Send protons of fixed energy and let them interact until they lose all energy Score neutrons/gammas as they reach a sphere: do not let them interac t Can’t do that in MCNP: solution of building a minimal volume does not work because protons have to interact Use “ptrac” dump ( /tracking/verbose 1) and read it with GAMOS to create G4Track/G4Step from p 149 MeV on Pb208 n from p 149 MeV on Pb208 from p 50 MeV on Fe56 n from p 50 MeV on Fe56
July 2014 Status of particle_hp 11 Tests: compare with MCNP Secondary angle spectra (neutrons) Send protons of fixed energy and let them interact until they lose all energy All start along X axis Score neutrons/gammas as they reach a sphere: do not let them interact n from p 50 MeV on Al27n from p 100 MeV on Pb208
July 2014 Status of particle_hp 12 Conclusions Geant4 (and other MC) theoretical models do not work well for charged particle (p, d, t, He3, ) inelastic interactions at E < 200 MeV Alternative implemented: use evaluated data bases Several available (ENDF, TENDL, IAEA medical, IBANDL) particle_hp has been ported to geant ref04 particle_hp is begin tested (geant4.9.6.p02) Total cross sections and secondary production cross sections Secondary energy spectra Secondary angle spectra NEXT: check neutron_hp = particle_hp for neutrons (wait for a geant4.10 release including particle_hp) Agreed that particle_hp will replace neutron_hp when tests are finished