50 likes | 185 Vues
This document outlines the user requirements for implementing advanced biasing techniques in Geant4, inspired by methods from various Monte Carlo codes like EGS, Fluka, and MCNP. Users seek the ability to implement diverse biasing strategies including leading particle biasing, bremsstrahlung splitting, and user-defined options. Emphasis is placed on developing minimal interfaces, avoiding unnecessary modifications to existing physics processes, and providing comprehensive documentation for process manipulation. The goal is to enable users to customize biasing applications effectively in diverse scenarios.
E N D
March 2007 Geant4 User Requirements: Physics Based Biasing Jane Tinslay, SLAC
Physics Requirements • Would like to be able to implement everything/most of the techniques available in other Monte Carlo codes, including specialisations • EGS family, Fluka, MCNP family, Penelope • Leading particle biasing • EM leading particle biasing • Hadronic leading particle biasing • Multiplicity tuning • Bremsstrahlung splitting • Uniform bremsstrahlung splitting with/without Russian Roulette • Selective bremsstrahlung splitting with/without Russian Roulette • Directional bremsstrahlung splitting Jane Tinslay, SLAC
Implicit capture/survival biasing/non-analogue absorption • At a collision • Along a flight path • Cross sectional biasing • Path length biasing • Forced interaction • … • User defined biasing • Develop/experiment with new biasing techniques Jane Tinslay, SLAC
Technical Requirements • User Biasing Code • Code to a minimal interface • Not G4VProcess • Most of interface is irrelevant, distracting • Cut down on unnecessary function calls, eg, StartTracking • Don’t need to modify existing G4VProcess physics process code • Don’t need to modify G4VUserPhysicsList • Can use pre-packaged physics lists • Put biasing code in dedicated user hook • Also serves as a useful starting point • Use a simple tool to do process list manipulation Jane Tinslay, SLAC
Process list manipulation • Want to do multidimensional process list manipulation • Add/remove process • Create brand new process list • Override one or more DoIt/GPIL methods multiple times • Combine multiple DoIt/GPIL methods • Mask out specified processes • Clear documentation explaining how processing works, issues/features with particular processes • Biasing activation (Contextual processing) • Specify circumstance/set of circumstances in which biasing is to be applied • Eg, volume in world, energy, creator process… • Activation code independent from biasing code • Otherwise distracting • Code duplication Jane Tinslay, SLAC