1 | <HTML> |
---|
2 | <HEAD> |
---|
3 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> |
---|
4 | <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (X11; I; AIX 4.1) [Netscape]"> |
---|
5 | </HEAD> |
---|
6 | |
---|
7 | <BODY> |
---|
8 | <!-- Created by: Hisaya Kurashige, 2-Dec-2004 --> |
---|
9 | |
---|
10 | <BR> |
---|
11 | |
---|
12 | <TABLE WIDTH="100%" > |
---|
13 | <TR> |
---|
14 | <TD> |
---|
15 | |
---|
16 | </A> |
---|
17 | <A HREF="index.html"> |
---|
18 | <IMG SRC="../../../../resources/html/IconsGIF/Contents.gif" ALT="Contents" HEIGHT=16 WIDTH=59></A> |
---|
19 | <A HREF="cutsPerRegion.html"> |
---|
20 | <IMG SRC="../../../../resources/html/IconsGIF/Previous.gif" ALT="Previous" HEIGHT=16 WIDTH=59></A> |
---|
21 | <A HREF="userLimits.html"> |
---|
22 | <IMG SRC="../../../../resources/html/IconsGIF/NextGR.gif" ALT="Next" HEIGHT=16 WIDTH=59></A> |
---|
23 | </TD> |
---|
24 | <P> |
---|
25 | |
---|
26 | <TD ALIGN=RIGHT><FONT COLOR="#238E23"><FONT SIZE=-1> |
---|
27 | <B>Geant4 User's Guide</B></FONT></FONT> |
---|
28 | <BR><FONT COLOR="#238E23"><FONT SIZE=-1> |
---|
29 | <B>For Application Developers</B></FONT></FONT> |
---|
30 | <BR><FONT COLOR="#238E23"><FONT SIZE=-1> |
---|
31 | <B>Tracking and Physics</B></FONT></FONT></TD> |
---|
32 | </TR> |
---|
33 | </TABLE> |
---|
34 | <P><BR> |
---|
35 | |
---|
36 | <CENTER><FONT COLOR="#238E23"><FONT SIZE=+3> |
---|
37 | <B>5.6 Physics Table</B></FONT></FONT> |
---|
38 | </CENTER> |
---|
39 | <P><BR> |
---|
40 | |
---|
41 | <HR ALIGN="Center" SIZE="7%"> |
---|
42 | <P> |
---|
43 | |
---|
44 | <a name="5.6.1"> |
---|
45 | <H2>5.6.1 General Concepts</H2></a> |
---|
46 | In Geant4, physics processes use many tables of cross sections, energy losses |
---|
47 | and other physics values. Before the execution of an event loop, the |
---|
48 | <tt>BuildPhysicsTable()</tt> method of <i>G4VProcess</i> is invoked for all |
---|
49 | processes and cross section tables are prepared. "Standard" electromagnetic |
---|
50 | processes calculate cross section and/or energy loss values for each material |
---|
51 | and for each production cut value assigned to each material. A change in |
---|
52 | production cut values therefore require these cross sections to be |
---|
53 | re-calculated. |
---|
54 | |
---|
55 | Cross sections for hadronic processes do not depend on the production cut. |
---|
56 | <p> |
---|
57 | The <i>G4PhysicsTable</i> class is used to handle cross section tables. |
---|
58 | <i>G4PhysicsTable</i> is a collection of instances of <i>G4PhysicsVector</i> |
---|
59 | (and derived classes), each of which has cross section values for a particle |
---|
60 | within a given energy range traveling in a material. |
---|
61 | <P> |
---|
62 | |
---|
63 | <HR> |
---|
64 | <a name="5.6.2"> |
---|
65 | <H2>5.6.2 Material-Cuts Couple</H2></a> |
---|
66 | Users can assign different production cuts to different regions |
---|
67 | (see <a href="cutsPerRegion.html">Section 5.5</a> ). This means that if |
---|
68 | the same material is used in regions with different cut values, the |
---|
69 | processes need to prepare several different cross sections for that material. |
---|
70 | <p> |
---|
71 | The <i>G4ProductionCutsTable</i> has <i>G4MaterialCutsCouple</i> objects, |
---|
72 | each of which consists of a material paired with a cut value. |
---|
73 | These <i>G4MaterialCutsCouple</i>s are numbered with an index which is |
---|
74 | the same as the index of a <i>G4PhysicsVector</i> for the corresponding |
---|
75 | <i>G4MaterialCutsCouple</i>in the <i>G4PhysicsTable</i>. The list of |
---|
76 | <i>MaterialCutsCouple</i>s used in the current geometry setup is updated |
---|
77 | before starting the event loop in each run. |
---|
78 | <P> |
---|
79 | |
---|
80 | <HR> |
---|
81 | <a name="5.6.3"> |
---|
82 | <H2>5.6.3 File I/O for the Physics Table</H2></a> |
---|
83 | Calculated physics tables for "Standard" electromagnetic processes can be |
---|
84 | stored in files. The user may thus eliminate the time required for the |
---|
85 | calculation of physics tables by retrieving them from the files. |
---|
86 | <p> |
---|
87 | Using the built-in user command "<b>storePhysicsTable</b>" |
---|
88 | (see <a href="../Control/UIcommands/_run_particle_.html">Section 7.1</a> ), |
---|
89 | stores physics tables in files. Information on materials and cuts defined |
---|
90 | in the current geometry setup are stored together with physics tables |
---|
91 | because calculated values in the physics tables depend on |
---|
92 | <i>MaterialCutsCouple</i>. Note that physics tables are calculated before |
---|
93 | the event loop, not in the initialization phase. So, at least one event must |
---|
94 | be executed before using the "<b>storePhysicsTable</b>" command. |
---|
95 | <p> |
---|
96 | Calculated physics tables can be retrieved from files by using the |
---|
97 | "<b>retrievePhysicsTable</b>" command. Materials and cuts from files are |
---|
98 | compared with those defined in the current geometry setup, and only physics |
---|
99 | vectors corresponding to the <i>MaterialCutsCouple</i>s used in the current |
---|
100 | setup are restored. Note that nothing happens just after the |
---|
101 | "<b>retrievePhysicsTable</b>" command is issued. Restoration of physics |
---|
102 | tables will be executed in parallel with the calculation of physics tables. |
---|
103 | <P> |
---|
104 | <HR> |
---|
105 | <a name="5.6.4"> |
---|
106 | <H2>5.6.4 Building the Physics Table</H2></a> |
---|
107 | In the <tt>G4RunManagerKernel::RunInitialization()</tt> method, after the |
---|
108 | list of <i>MaterialCutsCouple</i>s is updated, the |
---|
109 | <tt>G4VUserPhysicsList::BuildPhysicsTable()</tt> method is invoked to build |
---|
110 | physics tables for all processes. |
---|
111 | <p> |
---|
112 | Initially, the <tt>G4VProcess::PreparePhysicsTable()</tt> method is invoked. |
---|
113 | Each process creates <i>G4PhysicsTable</i> objects as necessary. It then |
---|
114 | checks whether the <i>MaterialCutsCouple</i>s have been modified after a |
---|
115 | run to determine if the corresponding physics vectors can be used |
---|
116 | in the next run or need to be re-calculated. |
---|
117 | <p> |
---|
118 | Next, the <tt>G4VProcess::RetrievePhysicsTable()</tt> method is invoked |
---|
119 | if the <tt>G4VUserPhysicsList::fRetrievePhysicsTable</tt> flag is asserted. |
---|
120 | After checking materials and cuts in files, physics vectors corresponding |
---|
121 | to the <i>MaterialCutsCouple</i>s used in the current setup are restored. |
---|
122 | <p> |
---|
123 | Finally, the <tt>G4VProcess::BuildPhysicsTable()</tt> method is invoked and |
---|
124 | only physics vectors which need to be re-calculated are built. |
---|
125 | <p> |
---|
126 | |
---|
127 | <BR><BR> |
---|
128 | <HR><A HREF="../../../../Authors/html/subjectsToAuthors.html"> |
---|
129 | <I>About the authors</A></I> |
---|
130 | </BODY> |
---|
131 | </HTML> |
---|