Version:
[ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]
1 -------------------------------------------------------------------
2
3 =========================================================
4 Geant4 - an Object-Oriented Toolkit for Simulation in HEP
5 =========================================================
6
7 Example DICOM2
8 --------------
9
10
11 ---> 1) Introduction
12
13 This example demonstrates how to inherit from the DICOM example.
14 For more information on the DICOM example, see the README in
15 the DICOM example. In addition to demonstrating inheritance from DICOM,
16 this example demonstrates method for memory savings, scoring into a sequential
17 container instead of an associative container, accumulating the scoring
18 with a statistics class instead of a simple floating point, and generic iteration
19 over the variety of scoring container storage variants provided by Geant4
20
21 ---> 2) Configuration and Building
22
23 The DICOM example should be built and installed. By default, the CMake configuration
24 for the DICOM example will install to the same directory as ${Geant4_DIR}.
25
26 When configurating this example, provide DICOM_DIR=<path-to-cmake-configuration>, e.g.
27
28 $ cmake -DGeant4_DIR=/usr/local/lib/Geant4-10.5.0 -DDICOM_DIR=/usr/local/lib/Geant4-10.5.0 <path-to-source>
29
30 This example will enable DCMTK and/or DICOM_HEAD based on the configuration set when
31 the DICOM example was installed. The files "Data.dat.old" and "Data.dat.new" follow
32 the same pattern of being copied to "Data.dat" in the binary directory that is detailed
33 out in Section 4 of the DICOM README.
34
35 ---> 3) Class Overview
36
37 - Dicom2Run:
38 - How to save memory with G4VTHitsVector instead of G4THitsMap
39 - How to implement G4VTHitsVector with objects instead of pointers (saving more memory)
40 - How to use G4StatAnalysis within G4VTHitsVector (or G4VTHitsMap) to obtain per-voxel
41 statistics
42 - G4StatAnalysis provides standard deviation, mean, variance, relative error,
43 FOM, r2int, r2eff, coefficient of variant, and efficiency in a class that
44 consumes significantly less memory than G4ConvergenceTester
45 - Implements scoring accumulation over the course of a run in
46 G4VTHitsVector<G4StatAnalysis, std::vector<G4StatAnalysis>> Dicom2RunVector
47 - The first template parameter is the type of the data (i.e. double, G4StatAnalysis, etc.)
48 and the second template parameter is the underlying storage type -- by
49 specifying std::vector<G4StatAnalysis>, we override the default storage
50 format of std::vector<G4StatAnalysis*> which results in memory savings
51 - Dicom2RunAction:
52 - Overloads EndOfRunAction(const G4Run*) to print out the same quantities
53 as DICOM but with the G4StatAnalysis class
54 - Demonstrates generic iteration of hits containers
55 - The new iteration scheme over hits containers works
56 regardless of whether the underlying storage type is a map, multimap, unordered_map,
57 unordered_multimap, vector, or deque and regardless of whether the data
58 type stored in the sequential container types (vector and deque) are an object or
59 or a pointer to an object
60 - Dicom2PrimaryGeneratorAction:
61 - Minor variation of DicomPrimaryGeneratorAction that randomizes the initial
62 direction of the particle
63 - Dicom2ActionInitialization:
64 - In addition Dicom2RunAction and Dicom2PrimaryGeneratorAction, this class
65 instantiates DicomEventAction