Problem 599

Summary: 100 eV ekin cut appears if one uses G4UserSpecialCuts
Product: Geant4 Reporter: Mikhail.Kirsanov
Component: processes/electromagneticAssignee: Michel.Maire
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 6.0   
Hardware: PC   
OS: Linux   

Description Mikhail.Kirsanov 2004-03-04 09:01:32 CET
If one adds to the processes list of a particle the process G4UserSpecialCuts,
for example to to cut on range or max. time, Geant4 cuts at 100 eV on the
kinetic energy. This happens because G4UserSpecialCuts, in order to compare ekin
with ekin cut value (zero by default), calculates range for both. But the range
table is produced only down to 100 eV, so the range for 100 eV is equal to the
range for 0 eV.
 I use now the following fix in
processes/electromagnetic/utils/include/G4VEnergyLossProcess.hh

in G4VEnergyLossProcess::GetRange

   ...
   if (e < maxKinEnergyForRange) {
     if(e < minKinEnergy*massRatio) {
       x = (e/(minKinEnergy*massRatio))*
           ((*theRangeTable)[currentMaterialIndex])->GetValue(e, b);
     }
     else {
       x = ((*theRangeTable)[currentMaterialIndex])->GetValue(e, b);
     }
   } else {
   ...

 I realise that for particles below 100 eV I probaly cannot have correct
physics, but I trace them in vacuum, so I don't need it. Afterwards they are
accelerated to KeV and physics begins.
Comment 1 Mikhail.Kirsanov 2004-04-07 04:40:59 CEST
This problem is corrected in 4.6.1 (at least down to 1 eV)
                                                              Mikhail