1 | <!-- ******************************************************** --> |
---|
2 | <!-- --> |
---|
3 | <!-- [History] --> |
---|
4 | <!-- Created by: Makoto Asai, 30-Mar-2006 --> |
---|
5 | <!-- Converted to DocBook: Katsuya Amako, Aug-2006 --> |
---|
6 | <!-- --> |
---|
7 | <!-- ******************************************************** --> |
---|
8 | |
---|
9 | |
---|
10 | <!-- ******************* Section (Level#1) ****************** --> |
---|
11 | <sect1 id="sect.Ulim"> |
---|
12 | <title> |
---|
13 | User Limits |
---|
14 | </title> |
---|
15 | |
---|
16 | |
---|
17 | <!-- ******************* Section (Level#2) ****************** --> |
---|
18 | <sect2 id="sect.Ulim.Gene"> |
---|
19 | <title> |
---|
20 | General Concepts |
---|
21 | </title> |
---|
22 | |
---|
23 | <para> |
---|
24 | The user can define artificial limits affecting to the Geant4 |
---|
25 | tracking. |
---|
26 | |
---|
27 | <informalexample> |
---|
28 | <programlisting> |
---|
29 | G4UserLimits(G4double uStepMax = DBL_MAX, |
---|
30 | G4double uTrakMax = DBL_MAX, |
---|
31 | G4double uTimeMax = DBL_MAX, |
---|
32 | G4double uEkinMin = 0., |
---|
33 | G4double uRangMin = 0. ); |
---|
34 | </programlisting> |
---|
35 | </informalexample> |
---|
36 | |
---|
37 | <informaltable> |
---|
38 | <tgroup cols="2"> |
---|
39 | <tbody> |
---|
40 | <row> |
---|
41 | <entry> |
---|
42 | <literal>uStepMax</literal> |
---|
43 | </entry> |
---|
44 | <entry> |
---|
45 | Maximum step length |
---|
46 | </entry> |
---|
47 | </row> |
---|
48 | <row> |
---|
49 | <entry> |
---|
50 | <literal>uTrakMax</literal> |
---|
51 | </entry> |
---|
52 | <entry> |
---|
53 | Maximum total track length |
---|
54 | </entry> |
---|
55 | </row> |
---|
56 | <row> |
---|
57 | <entry> |
---|
58 | <literal>uTimeMax</literal> |
---|
59 | </entry> |
---|
60 | <entry> |
---|
61 | Maximum global time for a track |
---|
62 | </entry> |
---|
63 | </row> |
---|
64 | <row> |
---|
65 | <entry> |
---|
66 | <literal>uEkinMin</literal> |
---|
67 | </entry> |
---|
68 | <entry> |
---|
69 | Minimum remaining kinetic energy for a track |
---|
70 | </entry> |
---|
71 | </row> |
---|
72 | <row> |
---|
73 | <entry> |
---|
74 | <literal>uRangMin</literal> |
---|
75 | </entry> |
---|
76 | <entry> |
---|
77 | Minimum remaining range for a track |
---|
78 | </entry> |
---|
79 | </row> |
---|
80 | </tbody> |
---|
81 | </tgroup> |
---|
82 | </informaltable> |
---|
83 | |
---|
84 | Note that <literal>uStepMax</literal> is affecting to each step, while all |
---|
85 | other limits are affecting to a track. |
---|
86 | </para> |
---|
87 | |
---|
88 | <para> |
---|
89 | The user can set <literal>G4UserLimits</literal> to logical volume and/or |
---|
90 | to a region. User limits assigned to logical volume do not |
---|
91 | propagate to daughter volumes, while User limits assigned to region |
---|
92 | propagate to daughter volumes unless daughters belong to another |
---|
93 | region. If both logical volume and associated region have user |
---|
94 | limits, those of logical volume win. |
---|
95 | </para> |
---|
96 | |
---|
97 | </sect2> |
---|
98 | |
---|
99 | |
---|
100 | <!-- ******************* Section (Level#2) ****************** --> |
---|
101 | <sect2 id="sect.Ulim.Proc"> |
---|
102 | <title> |
---|
103 | Processes co-working with G4UserLimits |
---|
104 | </title> |
---|
105 | |
---|
106 | <para> |
---|
107 | In addition to instantiating <literal>G4UserLimits</literal> and setting it |
---|
108 | to logical volume or region, the user has to assign the following |
---|
109 | process(es) to particle types he/she wants to affect. If none of |
---|
110 | these processes is assigned, that kind of particle is not affected |
---|
111 | by <literal>G4UserLimits</literal>. |
---|
112 | |
---|
113 | <variablelist> |
---|
114 | <varlistentry> |
---|
115 | <term> |
---|
116 | Limitation to step (<literal>uStepMax</literal>) |
---|
117 | </term> |
---|
118 | <listitem><para> |
---|
119 | <literal>G4StepLimiter</literal> process must be defined to affected |
---|
120 | particle types. This process limits a step, but it does not kill a |
---|
121 | track. |
---|
122 | </para></listitem> |
---|
123 | </varlistentry> |
---|
124 | <varlistentry> |
---|
125 | <term> |
---|
126 | Limitations to track (<literal>uTrakMax, uTimeMax, uEkinMin, |
---|
127 | uRangMin</literal>) |
---|
128 | </term> |
---|
129 | <listitem><para> |
---|
130 | <literal>G4UserSpecialCuts</literal> process must be defined to affected |
---|
131 | particle types. This process limits a step and kills the track when |
---|
132 | the track comes to one of these limits. Step limitation occurs only |
---|
133 | for the final step. |
---|
134 | </para></listitem> |
---|
135 | </varlistentry> |
---|
136 | </variablelist> |
---|
137 | </para> |
---|
138 | |
---|
139 | <para> |
---|
140 | Example of <literal>G4UserLimits</literal> can be found in |
---|
141 | examples/novice/N02 : see <literal>DetectorConstruction</literal> and |
---|
142 | <literal>PhysicsList</literal>. |
---|
143 | </para> |
---|
144 | |
---|
145 | |
---|
146 | </sect2> |
---|
147 | </sect1> |
---|