Problem 41

Summary: Step length computed in error with Low energy EM extensions
Product: Geant4 Reporter: rtascher
Component: processes/electromagneticAssignee: veronique.lefebure
Status: RESOLVED FIXED    
Severity: normal    
Priority: P2    
Version: 0.1   
Hardware: Sun   
OS: Solaris   

Description rtascher 1999-12-09 09:24:37 CET
(NOTE: This problem has been initially signaled to John Apostolakis)
The run simulates the passage of a 30keV electron through a water tank and the
verbose level is set to 1. An excerpt from the output follows.

********************************************************************************
* G4Track Information:   Particle = e-,   Track ID = 1,   Parent ID = 0
********************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng
NextVolume ProcName
    0     -200        0        0      0.03        0        0         0  Water
Tank initStep
    1     -200 7.26e-05 -1.24e-05      0.03 1.56e-05 7.37e-05  7.37e-05  Water
Tank LowEnergyIoni
    2     -200 1.82e-05 -6.23e-06    0.0299 5.41e-05 1.93e-05  9.29e-05  Water
Tank LowEnergyIoni
(...)
   91     -200 -5.69e-05  -0.0194      0.02 2.05e-05 4.12e-05   0.00636  Water
Tank LowEnergyIoni
   92     -200  0.00471  -0.0185      0.02 2.16e-05 6.32e-05   0.00642  Water
Tank LowEnergyIoni
(...)
321     -200   0.0762  -0.0248         0 0.000264 2.13e-06    0.0127  Water Tank
LowEnergyIoni

The output shows that the final position (step 321) of the electron is about 80
micrometers away from its entrance point BUT the total track length is only 12.7
microns. A more detailed analysis reveals that the step length seems to be
computed in error. For example, step #92 shows a difference in position of 4,9
microns while the reported step length is 63 nanometers.Shouldn't they be equal
?
Some energy deposits are as low as 15eV; is this valid ?

The C++ code used to declare the low energy processes is:

   } else if (particleName == "e-") {
    //electron
      // Construct processes for electron
      theeminusMultipleScattering = new G4MultipleScattering();
      theLowEnergyIonisation = new G4LowEnergyIonisation();
      theLowEnergyBremsstrahlung = new G4LowEnergyBremsstrahlung();

      // add processes
      pmanager->AddProcess(theeminusMultipleScattering);
      pmanager->AddProcess(theLowEnergyIonisation);
      pmanager->AddProcess(theLowEnergyBremsstrahlung);

      // set ordering for AlongStepDoIt
      pmanager->SetProcessOrdering(theeminusMultipleScattering, idxAlongStep,
1);
      pmanager->SetProcessOrdering(theLowEnergyIonisation, idxAlongStep,  2);
      // set ordering for PostStepDoIt
      pmanager->SetProcessOrdering(theeminusMultipleScattering, idxPostStep, 1);
      pmanager->SetProcessOrdering(theLowEnergyIonisation, idxPostStep, 2);
      pmanager->SetProcessOrdering(theLowEnergyBremsstrahlung, idxPostStep, 3);

The default cut value was set to 1 micron
Comment 1 veronique.lefebure 2000-03-15 04:02:59 CET
Problem has disappeared with new code version.