12.07.2015 Views

Geant4 User's Guide for Application Developers - Geant4 - CERN

Geant4 User's Guide for Application Developers - Geant4 - CERN

Geant4 User's Guide for Application Developers - Geant4 - CERN

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Toolkit Fundamentals1. Run and EventThese are categories related to the generation of events, interfaces to event generators, and any secondaryparticles produced. Their roles are principally to provide particles to be tracked to the Tracking Management.2. Tracking and TrackThese are categories related to propagating a particle by analyzing the factors limiting the step and applying therelevant physics processes. The important aspect of the design was that a generalized <strong>Geant4</strong> physics process(or interaction) could per<strong>for</strong>m actions, along a tracking step, either localized in space, or in time, or distributedin space and time (and all the possible combinations that could be built from these cases).3. Geometry and Magnetic FieldThese categories manage the geometrical definition of a detector (solid modeling) and the computation ofdistances to solids (also in a magnetic field). The <strong>Geant4</strong> geometry solid modeler is based on the ISO STEPstandard and it is fully compliant with it, in order to allow in future the exchange of geometrical in<strong>for</strong>mationwith CAD systems. A key feature of the <strong>Geant4</strong> geometry is that the volume definitions are independent of thesolid representation. By this abstract interface <strong>for</strong> the G4 solids, the tracking component works identically <strong>for</strong>various representations. The treatment of the propagation in the presence of fields has been provided withinspecified accuracy. An OO design allows us to exchange different numerical algorithms and/or different fields(not only B-field), without affecting any other component of the toolkit.4. Particle Definition and MatterThese two categories manage the the definition of materials and particles.5. PhysicsThis category manages all physics processes participating in the interactions of particles in matter. The abstractinterface of physics processes allows multiple implementations of physics models per interaction or per channel.Models can be selected by energy range, particle type, material, etc. Data encapsulation and polymorphismmake it possible to give transparent access to the cross sections (independently of the choice of reading from anascii file, or of interpolating from a tabulated set, or of computing analytically from a <strong>for</strong>mula). Electromagneticand hadronic physics were handled in a uni<strong>for</strong>m way in such a design, opening up the physics to the users.6. Hits and DigitizationThese two categories manage the creation of hits and their use <strong>for</strong> the digitization phase. The basic design andimplementation of the Hits and Digi had been realized, and also several prototypes, test cases and scenarioshad been developed be<strong>for</strong>e the alpha-release. Volumes (not necessarily the ones used by the tracking) areaggregated in sensitive detectors, while hits collections represent the logical read out of the detector. Differentways of creating and managing hits collections had been delivered and tested, notably <strong>for</strong> both single hits andcalorimetry hits types. In all cases, hits collections had been successfully stored into and retrieved from anObject Data Base Management System.7. VisualizationThis manages the visualization of solids, trajectories and hits, and interacts with underlying graphical libraries(the Visualization class category). The basic and most frequently used graphics functionality had been implementedalready by the alpha-release. The OO design of the visualization component allowed us to developseveral drivers independently, such as <strong>for</strong> OpenGL, Qt and OpenInventor (<strong>for</strong> X11 and Windows), DAWN,Postscript (via DAWN) and VRML.8. InterfacesThis category handles the production of the graphical user interface (GUI) and the interactions with externalsoftware (OODBMS, reconstruction etc.).3.2. Global Usage ClassesThe "global" category in <strong>Geant4</strong> collects all classes, types, structures and constants which are considered of generaluse within the <strong>Geant4</strong> toolkit. This category also defines the interface with third-party software libraries (CLHEP,STL, etc.) and system-related types, by defining, where appropriate, typedefs according to the <strong>Geant4</strong> codeconventions.34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!