| 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>
|
|---|