Tsld013

  • Any action which requires re-build of physics tables must be prohibited during “event-loop”.

  • Even if such actions are executed outside of “event-loop”, re-initialization must be executed before the next “event-loop” (i.e. next RUN)

  • Process, material and particle classes need to

    • watch “ApplicationStatus”
    • enable/disable their methods properly
    • inform “ApplicationStatus” change to G4StateManager

Tsld010

    1. At the beginning of the program

      G4ParticleDefinition classes are created as static objects
    • In G4UserParticleList::construct(), pointers to particle objects are used to ensure instantiation of these particle types
      G4ParticleList has the list of particle type

    2. G4VUserDetectorConstruction::construct()

      Materials are created at the stage of geometry construction

      G4MaterialList has the list of materials

Tsld012

    4. G4UserParticleList::setCuts()

      For each particle type, the SetCuts() method is invoked.

      PhysicsTables in each physics process are created.
      Be careful in order of particle types
        ex.) G4Gamma::SetCuts() must precede G4Electron::SetCuts()
  • need to execute G4UserParticleList::setCuts() again in order to re-build physics tables,

      if property of a material is changed,

      or a new process is added,
      or cut value is changed.

Tsld009

  • Cross Section of a physics process depends on

    • particle type and its energy
    • material
    • cuts in range for all involved particle type
        ex.) Cross section of delta ray of muon depends on cuts for muon itself and emitted electron

  • Need to keep proper sequence of procedures,

    or we get wrong results from physics processes

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