If I use the following code in the PhysicsList: G4double cutValue = defaultCutValue * 0.001; SetCutValue(cutValue, "gamma"); SetCutValue(cutValue, "e-"); SetCutValue(cutValue, "e+"); SetCutValue(cutValue, "proton"); SetCutValue(cutValue, "anti_proton"); SetCutValueForOthers(cutValue); I am getting the following table of range and energy cuts: ============= The cut Energy ============================== gamma e- Cut in range Iron 1 mum 1 mum Aluminum 1 mum 1 mum Coolant 1 mum 1 mum FusedQuartz 1 mum 1 mum Silicon 1 mum 1 mum Galactic 1 mum 1 mum Cut in energy Iron 990 eV 3.56 keV Aluminum 990 eV 990 eV Coolant 990 eV 990 eV FusedQuartz 990 eV 990 eV Silicon 990 eV 990 eV Galactic 990 eV 990 eV =================================================== (the energy cuts are pegged at 990eV). Then I change the code by adding one line with SetEnergyRange() call *** for electrons only! ***: G4Electron::SetEnergyRange(250*eV, 10*GeV); G4double cutValue = defaultCutValue * 0.001; SetCutValue(cutValue, "gamma"); SetCutValue(cutValue, "e-"); SetCutValue(cutValue, "e+"); SetCutValue(cutValue, "proton"); SetCutValue(cutValue, "anti_proton"); SetCutValueForOthers(cutValue); I am getting the following table: ============= The cut Energy ============================== gamma e- Cut in range Iron 1 mum 1 mum Aluminum 1 mum 1 mum Coolant 1 mum 1 mum FusedQuartz 1 mum 1 mum Silicon 1 mum 1 mum Galactic 1 mum 1 mum Cut in energy Iron 250 eV 3.58 keV Aluminum 250 eV 810 eV Coolant 250 eV 250 eV FusedQuartz 250 eV 617 eV Silicon 250 eV 651 eV Galactic 250 eV 250 eV =================================================== My question is, why did the cuts for gamma changed? I didn't touch it, I changed only the range for the electrons, not for gammas...
This "EnergyRange" is defined as energy range of physics table for all processes. So, EnergyRange is common for all particle types and defined as "static" and this value. If you change EnergyRange for a particle type, this value is applied to all particle types and all processes.