| Summary: | Step length computed in error with Low energy EM extensions | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | rtascher |
| Component: | processes/electromagnetic | Assignee: | veronique.lefebure |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | P2 | ||
| Version: | 0.1 | ||
| Hardware: | Sun | ||
| OS: | Solaris | ||
Problem has disappeared with new code version. |
(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