1 | <HTML> |
---|
2 | <TITLE> |
---|
3 | </TITLE> |
---|
4 | <!-- Changed by: Katsuya Amako, 21-Sep-1998 --> |
---|
5 | <!-- Proof read by: Joe Chuma, 29-Jun-1999 --> |
---|
6 | <!-- Changed by: Hisaya Kurashige, 28-Oct-2001 --> |
---|
7 | <!-- Changed by: Dennis Wright, 27-Nov-2001 --> |
---|
8 | <!-- Changed by: Dennis Wright, 18-Jan-2006 --> |
---|
9 | |
---|
10 | <BODY> |
---|
11 | <TABLE WIDTH="100%"><TR> |
---|
12 | <TD> |
---|
13 | |
---|
14 | |
---|
15 | <A HREF="index.html"> |
---|
16 | <IMG SRC="../../../../resources/html/IconsGIF/Contents.gif" ALT="Contents"></A> |
---|
17 | <A HREF="physicsProcess.html"> |
---|
18 | <IMG SRC="../../../../resources/html/IconsGIF/Previous.gif" ALT="Previous"></A> |
---|
19 | <A HREF="thresholdVScut.html"> |
---|
20 | <IMG SRC="../../../../resources/html/IconsGIF/Next.gif" ALT="Next"></A> |
---|
21 | </TD> |
---|
22 | <TD ALIGN="Right"> |
---|
23 | <FONT SIZE="-1" COLOR="#238E23"> |
---|
24 | <B>Geant4 User's Guide</B> |
---|
25 | <BR> |
---|
26 | <B>For Application Developers</B> |
---|
27 | <BR> |
---|
28 | <B>Tracking and Physics</B> |
---|
29 | </FONT> |
---|
30 | </TD> |
---|
31 | </TR></TABLE> |
---|
32 | <BR><BR> |
---|
33 | |
---|
34 | <P ALIGN="Center"> |
---|
35 | <FONT SIZE="+3" COLOR="#238E23"> |
---|
36 | <B>5.3 Particles</B> |
---|
37 | </FONT> |
---|
38 | <BR><BR> |
---|
39 | |
---|
40 | <HR ALIGN="Center" SIZE="7%"> |
---|
41 | <p> |
---|
42 | |
---|
43 | <a name="5.3.1"> |
---|
44 | <H2>5.3.1 Basic concepts</H2></a> |
---|
45 | |
---|
46 | There are three levels of classes to describe particles in Geant4. |
---|
47 | <p> |
---|
48 | <table> |
---|
49 | <tr> |
---|
50 | <td><i>G4ParticleDefinition</i> |
---|
51 | <td>defines a particle |
---|
52 | <tr> |
---|
53 | <td><i>G4DynamicParticle</i> |
---|
54 | <td>describes a particle interacting with materials |
---|
55 | <tr> |
---|
56 | <td><i>G4Track</i> |
---|
57 | <td>describes a particle traveling in space and time |
---|
58 | </table> |
---|
59 | <p> |
---|
60 | <i>G4ParticleDefinition</i> aggregates information to characterize |
---|
61 | a particle's properties, such as name, mass, spin, life time, and decay modes. |
---|
62 | <i>G4DynamicParticle</i> aggregates information to describe the dynamics of |
---|
63 | particles, such as energy, momentum, polarization, and proper time, |
---|
64 | as well as ``particle definition'' information. |
---|
65 | <i>G4Track</i> includes all information necessary for tracking |
---|
66 | in a detector simulation, such as time, position, and step, |
---|
67 | as well as ``dynamic particle'' information. |
---|
68 | <P> |
---|
69 | <i>G4Track</i> has all the information necessary for tracking in Geant4. |
---|
70 | It includes position, time, and step, as well as kinematics. |
---|
71 | Details of <i>G4Track</i> will be described in |
---|
72 | <a href="tracking.html">Section 5.1</a>. |
---|
73 | <P> |
---|
74 | Besides above three classes, <i>G4ParticleWithCuts</i> class plays |
---|
75 | an important role. It provides the functionality to convert |
---|
76 | the cut value in range into energy thresholds for all materials. |
---|
77 | <HR> |
---|
78 | <a name="5.3.2"> |
---|
79 | <H2>5.3.2 Definition of a particle</H2></a> |
---|
80 | |
---|
81 | There are a large number of elementary particles and nuclei. Geant4 provides the |
---|
82 | <i>G4ParticleDefinition</i> class to represent particles, and various particles, |
---|
83 | such as the electron, proton, and gamma have their own classes derived from |
---|
84 | <i>G4ParticleDefinition</i>. |
---|
85 | <p> |
---|
86 | We do not need to make a class in Geant4 for every kind of particle in the world. |
---|
87 | There are more than 100 types of particles defined in Geant4 by default. |
---|
88 | Which particles should be included, and how to |
---|
89 | implement them, is determined according to the following criteria. |
---|
90 | (Of course, the user can define any particles he wants. Please see the |
---|
91 | <b>User's Guide: For ToolKit Developers</b>) |
---|
92 | <P> |
---|
93 | <BR> |
---|
94 | |
---|
95 | <H4>5.3.2.1 Particle List in Geant4</H4> |
---|
96 | This list includes all particles in Geant4 and you can see |
---|
97 | properties of particles such as |
---|
98 | <UL> |
---|
99 | <LI> PDG encoding |
---|
100 | <LI> mass and width |
---|
101 | <LI> spin, isospin and parity |
---|
102 | <LI> life time and decay modes |
---|
103 | <LI> quark contents |
---|
104 | </UL> |
---|
105 | Here is a list of particles in Geant4. This list is generated automatically |
---|
106 | by using Geant4 functionality, |
---|
107 | so listed values are same as those in your Geant4 application. |
---|
108 | (as far as you do not change source codes) |
---|
109 | <P> |
---|
110 | <H5> Categories </H5> |
---|
111 | <UL> |
---|
112 | <LI><A HREF="../Appendix/particleList.src/quarks/index.html">gluon / quarks / di-quarks </A></TD> |
---|
113 | <LI><A HREF="../Appendix/particleList.src/leptons/index.html">leptons</A></TD> |
---|
114 | <LI><A HREF="../Appendix/particleList.src/mesons/index.html">mesons</A></TD> |
---|
115 | <LI><A HREF="../Appendix/particleList.src/baryons/index.html">baryons</A></TD> |
---|
116 | <LI><A HREF="../Appendix/particleList.src/ions/index.html">ions</A></TD> |
---|
117 | <LI><A HREF="../Appendix/particleList.src/others/index.html">others</A></TD> |
---|
118 | </UL> |
---|
119 | |
---|
120 | <H4>5.3.2.2 Classification of particles</H4> |
---|
121 | |
---|
122 | <ol type=a> |
---|
123 | <li>elementary particles which should be tracked in Geant4<BR> |
---|
124 | All particles that can fly a finite length and interact with |
---|
125 | materials in detectors are included in this category. |
---|
126 | In addition, some particles with a very short lifetime are included. |
---|
127 | <ol type=1> |
---|
128 | <li>stable particles<BR> |
---|
129 | Stable means that the particle can not decay, |
---|
130 | or has a very small possibility to decay in detectors, |
---|
131 | e.g., gamma, electron, proton, and neutron. |
---|
132 | <li>long life (>10<sup>-14</sup>sec) particles<BR> |
---|
133 | Particles which may travel a finite length, e.g., muon, charged pions. |
---|
134 | <li>short life particles that need to decay in Geant4<BR> |
---|
135 | For example, <font face="symbol">p</font><sup>0</sup>,<font face="symbol">h</font> |
---|
136 | <li>K<sup>0</sup> system<BR> |
---|
137 | K<sup>0</sup> "decays" immediately into K<sup>0</sup><sub>S</sub> or |
---|
138 | K<sup>0</sup><sub>L</sub>, |
---|
139 | and then K<sup>0</sup><sub>S</sub>/K<sup>0</sup><sub>L</sub> decays |
---|
140 | according to its life time and decay modes. |
---|
141 | <li>optical photons<BR> |
---|
142 | Gammas and optical photons are distinguished in the simulation view, |
---|
143 | though both are the same particle (photons with different energies). |
---|
144 | For example, optical photons are used for Cerenkov light and scintillation light. |
---|
145 | <li>geantinos/charged geantinos<BR> |
---|
146 | Geantinos and charged geantinos are virtual particles for simulation |
---|
147 | which do not interact with materials and undertake transportation processes only. |
---|
148 | </ol> |
---|
149 | <li>nuclei<BR> |
---|
150 | Any kinds of nucleus can be used in Geant4, such as alpha(He-4), uranium-238 and |
---|
151 | excited states of carbon-14. Nuclei in Geant4 are divided into two groups from |
---|
152 | the viewpoint of implementation. |
---|
153 | <ol type=1> |
---|
154 | <li>light nuclei<BR> |
---|
155 | Light nuclei frequently used in simulation, e.g., |
---|
156 | alpha, deuteron, He3, triton. |
---|
157 | <li>heavy nuclei<BR> |
---|
158 | Nuclei other than those defined in the previous category. |
---|
159 | </ol> |
---|
160 | Note that G4ParticleDefinition represents nucleus state and G4DynamicParticle |
---|
161 | represents atomic state with some nucleus. Both alpha particle with charge of +2 |
---|
162 | and helium atom with no charge aggregates the same "particle definition" of G4Alpha, |
---|
163 | but different G4DynamicParticle objects should be assigned to them. |
---|
164 | (Details can be found below) |
---|
165 | <li>short-lived particles<BR> |
---|
166 | Particles with very short life time decay immediately and are never tracked |
---|
167 | in the detector geometry. These particles are usually used only inside |
---|
168 | physics processes to implement some models of interactions. |
---|
169 | <i>G4VShortLivedParticle</i> is provided as the base class for these particles. |
---|
170 | All classes related to particles in this category |
---|
171 | can be found in <tt>shortlived</tt> sub-directory under the |
---|
172 | <tt>particles</tt> directory. |
---|
173 | <ol type=1> |
---|
174 | <li>quarks/di-quarks<BR> |
---|
175 | For example, all 6 quarks. |
---|
176 | <li>gluons<BR> |
---|
177 | <li>baryon excited states with very short life<BR> |
---|
178 | For example, spin 3/2 baryons and anti-baryons |
---|
179 | <li>meson excited states with very short life<BR> |
---|
180 | For example, spin 1 vector bosons |
---|
181 | </ol> |
---|
182 | </ol> |
---|
183 | <P> |
---|
184 | |
---|
185 | <H4>5.3.2.3 Implementation of particles</H4> |
---|
186 | |
---|
187 | <table> |
---|
188 | |
---|
189 | <tr> |
---|
190 | <td>Dynamic creation by user's physics list: |
---|
191 | <td>Categories a, b-1 |
---|
192 | <tr> |
---|
193 | <td colspan=2>These particles are frequently used for tracking in Geant4. |
---|
194 | An individual class is defined for each particle in these categories. |
---|
195 | The object in each class should be created in the physics list and should be unique. |
---|
196 | The user can get pointers to these objects by using static methods in their own classes. |
---|
197 | <p> |
---|
198 | WARNING: Beginning with Geant4 version 8.0, all particle definitions are revised to "non-static" objects. |
---|
199 | <tr><td><td> |
---|
200 | <tr><td><td> |
---|
201 | <tr> |
---|
202 | <td>On-the-fly creation: |
---|
203 | <td>Category b-2 |
---|
204 | <tr> |
---|
205 | <td colspan=2>Ions will travel in a detector geometry and should be tracked, |
---|
206 | however, the number of ions which may be used for hadronic processes is so huge |
---|
207 | that ions are dynamic rather than static. Each ion corresponds to one object of the |
---|
208 | <i>G4Ions</i> class, and it will be created on the fly in the <tt>G4ParticleTable::GetIon()</tt> |
---|
209 | method. |
---|
210 | <tr><td><td> |
---|
211 | <tr><td><td> |
---|
212 | <tr> |
---|
213 | <td>: <td>Category c |
---|
214 | <tr> |
---|
215 | <td colspan=2>Particle types in this category are are not created by default, |
---|
216 | but will only be created by request from processes or directly by users. |
---|
217 | Each shortlived particle corresponds to one object of a class derived from |
---|
218 | <i>G4VshortLivedParticle</i>, and it will be created dynamically during |
---|
219 | the ``initialization phase''. |
---|
220 | |
---|
221 | </table> |
---|
222 | |
---|
223 | <P> |
---|
224 | |
---|
225 | <H4>5.3.2.4 <i>G4ParticleDefinition</i></H4> |
---|
226 | |
---|
227 | The <i>G4ParticleDefinition</i> class has ``read-only'' properties to characterize individual |
---|
228 | particles, such as name, mass, charge, spin, and so on. These properties are set during |
---|
229 | initialization of each particle. Methods to get these properties are listed in Table 5.3.1. |
---|
230 | <p> |
---|
231 | <center><table border=2 cellpadding=10> |
---|
232 | <tr> |
---|
233 | <td><tt>G4String GetParticleName()</tt> |
---|
234 | <td>particle name |
---|
235 | <tr> |
---|
236 | <td><tt>G4double GetPDGMass()</tt> |
---|
237 | <td>mass |
---|
238 | <tr> |
---|
239 | <td><tt>G4double GetPDGWidth()</tt> |
---|
240 | <td>decay width |
---|
241 | <tr> |
---|
242 | <td><tt>G4double GetPDGCharge()</tt> |
---|
243 | <td>electric charge |
---|
244 | <tr> |
---|
245 | <td><tt>G4double GetPDGSpin()</tt> |
---|
246 | <td>spin |
---|
247 | <tr> |
---|
248 | <td><tt>G4int GetPDGiParity()</tt> |
---|
249 | <td>parity (0:not defined) |
---|
250 | <tr> |
---|
251 | <td><tt>G4int GetPDGiConjugation()</tt> |
---|
252 | <td>charge conjugation (0:not defined) |
---|
253 | <tr> |
---|
254 | <td><tt>G4double GetPDGIsospin()</tt> |
---|
255 | <td>iso-spin |
---|
256 | <tr> |
---|
257 | <td><tt>G4double GetPDGIsospin3()</tt> |
---|
258 | <td>3<sup>rd</sup>-component of iso-spin |
---|
259 | <tr> |
---|
260 | <td><tt>G4int GetPDGiGParity()</tt> |
---|
261 | <td>G-parity (0:not defined) |
---|
262 | <tr> |
---|
263 | <td><tt>G4String GetParticleType()</tt> |
---|
264 | <td>particle type |
---|
265 | <tr> |
---|
266 | <td><tt>G4String GetParticleSubType()</tt> |
---|
267 | <td>particle sub-type |
---|
268 | <tr> |
---|
269 | <td><tt>G4int GetLeptonNumber()</tt> |
---|
270 | <td>lepton number |
---|
271 | <tr> |
---|
272 | <td><tt>G4int GetBaryonNumber()</tt> |
---|
273 | <td>baryon number |
---|
274 | <tr> |
---|
275 | <td><tt>G4int GetPDGEncoding()</tt> |
---|
276 | <td>particle encoding number by PDG |
---|
277 | <tr> |
---|
278 | <td><tt>G4int GetAntiPDGEncoding()</tt> |
---|
279 | <td>encoding for anti-particle of this particle |
---|
280 | <tr> |
---|
281 | <td align=center colspan=2> |
---|
282 | Table 5.3.1<BR> |
---|
283 | Methods to get particle properties. |
---|
284 | </td> |
---|
285 | </tr> |
---|
286 | </table></center> |
---|
287 | <P> |
---|
288 | Table 5.3.2 shows the methods of <i>G4ParticleDefinition</i> for getting information about decay modes |
---|
289 | and the life time of the particle. |
---|
290 | <p> |
---|
291 | <center><table border=2 cellpadding=10> |
---|
292 | <tr> |
---|
293 | <td><tt>G4bool GetPDGStable()</tt> |
---|
294 | <td>stable flag |
---|
295 | <tr> |
---|
296 | <td><tt>G4double GetPDGLifeTime()</tt> |
---|
297 | <td>life time |
---|
298 | <tr> |
---|
299 | <td><tt>G4DecayTable* GetDecayTable()</tt> |
---|
300 | <td>decay table |
---|
301 | <tr> |
---|
302 | <td align=center colspan=2> |
---|
303 | Table 5.3.2<BR> |
---|
304 | Methods to get particle decay modes and life time. |
---|
305 | </td> |
---|
306 | </tr> |
---|
307 | </table></center> |
---|
308 | <p> |
---|
309 | Users can modify these properties, though the other properties listed above can not be change without rebuilding the libraries. |
---|
310 | <P> |
---|
311 | <i>G4ParticleDefinition</i> provides methods for setting and/or getting cut off values, as |
---|
312 | shown in Table 5.3.3. |
---|
313 | <p> |
---|
314 | However, these methods only provide the functionality to set and get values. |
---|
315 | Calculation of energy cut-off values from a cut-off value in range |
---|
316 | is implemented in the <i>G4ParticleWithCuts</i> class, as described below. |
---|
317 | <P> |
---|
318 | In addition, each particle has its own <i>G4ProcessManger</i> object that manages a list of |
---|
319 | processes applicable to the particle. |
---|
320 | <P> |
---|
321 | |
---|
322 | <HR> |
---|
323 | <a name="5.3.3"> |
---|
324 | <H2>5.3.3 Dynamic particle</H2></a> |
---|
325 | |
---|
326 | The <i>G4DynamicParticle</i> class has kinematics information for the particle |
---|
327 | and is used for describing the dynamics of physics processes. |
---|
328 | The properties in <i>G4DynamicParticle</i> are listed in Table 5.3.4. |
---|
329 | <p> |
---|
330 | <center><table border=2 cellpadding=10> |
---|
331 | <tr> |
---|
332 | <td><tt>G4double theDynamicalMass</tt> |
---|
333 | <td>dynamical mass |
---|
334 | <tr> |
---|
335 | <td><tt>G4ThreeVector theMomentumDirection</tt> |
---|
336 | <td>normalized momentum vector |
---|
337 | <tr> |
---|
338 | <td><tt>G4ParticleDefinition* theParticleDefinition</tt> |
---|
339 | <td>definition of particle |
---|
340 | <tr> |
---|
341 | <td><tt>G4ThreeVector thePolarization</tt> |
---|
342 | <td>polarization vector |
---|
343 | <tr> |
---|
344 | <td><tt>G4double theKineticEnergy</tt> |
---|
345 | <td>kinetic energy |
---|
346 | <tr> |
---|
347 | <td><tt>G4double theProperTime</tt> |
---|
348 | <td>proper time |
---|
349 | <tr> |
---|
350 | <td><tt>G4ElectronOccupancy* theElectronOccupancy</tt> |
---|
351 | <td>electron orbits for ions |
---|
352 | <tr> |
---|
353 | <td align=center colspan=2> |
---|
354 | Table 5.3.4<BR> |
---|
355 | Methods to set/get cut off values. |
---|
356 | </td> |
---|
357 | </tr> |
---|
358 | </table></center> |
---|
359 | <p> |
---|
360 | Here, the dynamical mass is defined as the mass for the dynamic particle. |
---|
361 | For most cases, it is same as the mass defined in <i>G4ParticleDefinition</i> class |
---|
362 | ( i.e. mass value given by <tt>GetPDGMass()</tt> method). However, there are |
---|
363 | two exceptions. |
---|
364 | <ul> |
---|
365 | <li> resonace particle |
---|
366 | <li> ions |
---|
367 | </ul> |
---|
368 | Resonace particles have large mass width and the total energy of decay products |
---|
369 | at the center of mass system can be different event by event. |
---|
370 | <p> |
---|
371 | As for ions, <i>G4ParticleDefintion</i> defines a nucleus and <i>G4DynamicParticle</i> |
---|
372 | defines an atom. <i>G4ElectronOccupancy</i> describes state of orbital electrons. |
---|
373 | So, the dynaimc mass can be different from the PDG mass by the mass of electrons |
---|
374 | (and their binding energy). |
---|
375 | <p> |
---|
376 | Decay products of heavy flavor particles are given in many event generators. |
---|
377 | In such cases, <i>G4VPrimaryGenerator</i> sets this information |
---|
378 | in <tt>*thePreAssignedDecayProducts</tt>. In addition, decay time of |
---|
379 | the particle can be set arbitrarily time by using <tt>PreAssignedDecayProperTime</tt>. |
---|
380 | <P> |
---|
381 | |
---|
382 | <BR><BR> |
---|
383 | <HR> |
---|
384 | <A HREF="../../../../Authors/html/subjectsToAuthors.html"> |
---|
385 | <I>About the authors</I></A> |
---|
386 | |
---|
387 | </BODY> |
---|
388 | </HTML> |
---|