Developer guide# The Basics Installation for developers Virtual environment STEP 1 - Geant4 and Qt STEP 2 - ITK STEP 3 - opengate_core module (cpp bindings) STEP 4 - opengate module (python) STEP 5 - Before running Documentation for the documentation How to contribute (for developers) Propose a pull request: Tests and documentation Code formatting Get coding Architecture: Managers and Engines References among managers and engines Geant4 bindings How to add a Geant4 bindings ? Philosophy behind objects implemented as GateObject How a class in GATE 10 is (usually) set up? Naming convention __init__() method User info: handling parameters set by the user Initialization of Geant4 objects Implement a close() method if needed Implement a __getstate__() method if needed. Optional: Implement a __str__() method How to implement an actor Mandatory basic class structure Inheritance in actor classes Good to know Notes for developers Pybind11 hints Memory management between Python and Geant4 - Why is there a segmentation fault? ITK Geant4 seems to be frozen/sleeping - the GIL is to blame - here is why Helpers Engines SimulationEngine VolumeEngine PhysicsEngine ActorEngine SourceEngine ActionEngine OPENGATE Simulation OPENGATE elements: volumes, physic, sources, actors UserInfo (before initialization) OPENGATE Geometry OPENGATE Physics OPENGATE Source OPENGATE Actors How to develop a new Actor?