Tsld005

  • In G4ParticleWithCuts::SetCuts() method,

      1. CalcEnergyCuts()
    • As for each material
      • build a range table as a function of kinetic energy
      • convert the given range to kinetic energy
      2. BuildPhyicsTable()
    • As for each process in the process manager
        make its physics table by G4VProcess::BuildPhysicsTable()
        • PhysicsTable is a collection of cross sections (G4PhysicsVector) for all materials

Tsld004

  • In Geant4 each particle type has only one cut value in terms of range

    • (In Geant3 cut value is defined in kinetic energy)
  • Kinetic energy corresponding to the range cut is calculated for each material

  • These functions are implemented in G4ParticleWithCuts class

    • void SetCuts(G4double) set the cut value in range
    • G4double GetLengthCuts() get the cut value in range
    • G4double* GetEnergyCuts() get a array of energy cut values

Tsld002

  • G4Track

    • has position, time and other information for tracking
      • (G4Step, G4VTouchable etc.)
    • has G4DynamicParticle
  • G4DynamicParticle

    • has momentum, energy, polarization etc.
    • has G4ParticleDefinition
  • G4ParticleDefintion

    • has name, mass, charge, decay table etc.
    • has a process manager
    • has cut values

Tsld003

  • G4ProcessManager has

    • a list of all applicable processes
    • 6 process vectors which are lists of processes invoked in GPIL/DoIt loops with ordering
  • Ordering parameters

    • G4int AddProcess(G4VProcess * aProcess,
      G4int ordAtRestDoIt,
      G4int ordAlongSteptDoIt,
      G4int ordPostStepDoIt );
    • a process with smaller ordering parameter will be invoked earlier in corresponding DoIt loop.
    • a process with negative ordering parameter will never be invoked.

Tsld018

    virtual void UserSteppingAction()


    • invoked by G4SteppingManager
      • after all procedures of one step
    • to do
      • change G4TrackStatus to fStopAndKill, fKillTrackAndSecondaries, fSuspend, or fPostponeToNextEvent
      • draw “transient” step
      • modify G4UserLimits for the next step

Tsld012

    virtual G4VPhysicalVolume* construct() = 0


    • invoked by G4RunManager
    • to do
      • define materials
      • define geometry
      • define sensitive detectors
      • define visualization attributes
    • return the pointer to the “world” physical volume