<!-- ******************************************************** -->
<!--  Docbook Version:  For Toolkit Developers Guide          -->
<!-- ******************************************************** -->

<!-- ******************* Section (Level#1) ****************** -->
<sect1 id="sect.DsgnFuncParti">
<title>
Particles
</title>


<!-- ******************* Section (Level#2) ****************** -->
<sect2 id="sect.DsgnFuncParti.DsgPhlsp">
<title>
Design Philosophy
</title>

<para>
The particles category implements the facilities necessary to describe the 
physical properties of particles for the simulation of particle-matter 
interactions.  All particles are based on the 
<emphasis role="italic"></emphasis>G4ParticleDefinition class,
which describes basic properties such as mass, charge, etc., and also allows
the particle to carry a list of processes to which it is sensitive.  A 
first-level extension of this class defines the interface for particles that 
carry cuts information, for example range cut versus energy cut equivalence.
A set of virtual, intermediate classes for leptons, bosons, mesons, baryons,
etc., allows the implementation of concrete particle classes which define the 
actual particle properties and, in particular, implement the actual range 
versus energy cuts equivalence.  All concrete particle classes are 
instantiated as singletons to ensure that all physics processes refer to the
same particle properties.
</para>

</sect2>

<!-- ******************* Section (Level#2) ****************** -->
<sect2 id="sect.DsgnFuncParti.ClassDsg">
<title>
Class Design
</title>

<para>
The object-oriented design of the 'particles' related classes
is shown in the following class diagrams. The diagrams are
described in the Booch notation. 
<xref linkend="fig.DsgnFuncParti_1" /> shows a general overview of the particle
classes.  
<xref linkend="fig.DsgnFuncParti_2" /> shows classes related to the 
particle table.  <xref linkend="fig.DsgnFuncParti_3" /> shows the classes related 
to the particle decay table.
</para>

<figure id="fig.DsgnFuncParti_1">
<title>
Particle classes
</title>
<mediaobject>
  <imageobject role="fo">
    <imagedata fileref="./AllResources/OOAnalysisDesign/Particles/classDgmParticlesMain.jpg" 
               format="JPG" contentwidth="10.0cm" align="center" />
  </imageobject>
  <imageobject role="html">
    <imagedata fileref="./AllResources/OOAnalysisDesign/Particles/classDgmParticlesMain.jpg" 
               format="JPG" contentwidth="120%" align="center" />
  </imageobject>
</mediaobject>
</figure>


<figure id="fig.DsgnFuncParti_2">
<title>
Particle Table
</title>
<mediaobject>
  <imageobject role="fo">
    <imagedata fileref="./AllResources/OOAnalysisDesign/Particles/classDgmParticleTable.jpg" 
               format="JPG" contentwidth="10.0cm" align="center" />
  </imageobject>
  <imageobject role="html">
    <imagedata fileref="./AllResources/OOAnalysisDesign/Particles/classDgmParticleTable.jpg" 
               format="JPG" contentwidth="120%" align="center" />
  </imageobject>
</mediaobject>
</figure>


<figure id="fig.DsgnFuncParti_3">
<title>
Particle Decay Table
</title>
<mediaobject>
  <imageobject role="fo">
    <imagedata fileref="./AllResources/OOAnalysisDesign/Particles/classDgmParticleDecay.jpg" 
               format="JPG" contentwidth="10.0cm" align="center" />
  </imageobject>
  <imageobject role="html">
    <imagedata fileref="./AllResources/OOAnalysisDesign/Particles/classDgmParticleDecay.jpg" 
               format="JPG" contentwidth="120%" align="center" />
  </imageobject>
</mediaobject>
</figure>

<!-- ******* Bridgehead ******* -->
<bridgehead role="revisionHistory" renderas="sect4">
[Status of this chapter]
</bridgehead>
<para>
<simplelist type="var">
  <member>
    27.06.05 section on design philosophy added (from Geant4 general paper) by
    D.H. Wright
  </member>
  <member>
    Dec. 2006 Conversion from latex to Docbook verson by K. Amako
  </member>
</simplelist>
</para>


</sect2>
</sect1>



