## Geant4 Particle Transportation » History » Version 3

Soon Jun, 05/21/2015 06:39 PM

 1 2 3 1 Soon Jun `h1. Geant4 Particle Transportation` 1 Soon Jun 1 Soon Jun `h2. Top-Down Transportation Chain:` 1 Soon Jun 1 Soon Jun `## test the existence of a magnetic field and whether the particle is charged ` 1 Soon Jun ` if(charged particle && non-zero-BField) G4PropagatorInField::ComputeStep in http://www-geant4.kek.jp/lxr/source/geometry/navigation/src/G4PropagatorInField.cc` 1 Soon Jun ` else G4Navigator::ComputeStep in http://www-geant4.kek.jp/lxr/source/geometry/navigation/src/G4Navigator.cc ` 1 Soon Jun `## do-while loop inside G4PropagatorInField::ComputeStep` 1 Soon Jun ` until sum(s_i) < step where` 1 Soon Jun ` s_i = G4ChordFinder::AdvanceChordLimited in http://www-geant4.kek.jp/lxr/source/geometry/magneticfield/src/G4ChordFinder.cc` 1 Soon Jun ` and find the crossing point if the resultant chord intersects with a geometrical boundary with` 1 Soon Jun ` IntersectChord in http://www-geant4.kek.jp/lxr/source/geometry/navigation/src/G4MultiLevelLocator.cc ` 1 Soon Jun `## test for a quick advance or an accurate advance inside G4ChordFinder::AdvanceChordLimited` 1 Soon Jun ` do while QuickAdvance if (delta < delta0) where delta is the shortest distance to chord ` 1 Soon Jun ` then if (step possible x elsilon) > epsilon0) invoke G4MagInt_Driver::AccurateAdvance in http://www-geant4.kek.jp/lxr/source/geometry/magneticfield/src/G4MagIntegratorDriver.cc` 1 Soon Jun `## G4MagInt_Driver::AccurateAdvance test for h < hmin (do-while loop for sum(x_i) < hstep where x_i from either` 1 Soon Jun ` G4MagInt_Driver::QuickAdvance or G4MagInt_Driver::OneGoodStep` 1 Soon Jun `## G4MagInt_Driver::QuickAdvance ` 1 Soon Jun ` OneGoodStep loops over the Stepper and evaluates the truncation error (for-loop test epsilon