\chapter{Physics Processes}

\section{Design Philosophy}
The processes category contains the implementations of particle transportation 
and physical interactions.  All physics process conform to the basic interface 
{\it G4VProcess}, but different approaches have been developed for the 
detailed design of each sub-category.

For the decay sub-category, the decays of all long-lived, unstable particles 
are handled by a single process.  This process gets the step length from the
mean life of the particle.  The generation of decay products requires a 
knowledge of the branching ratios and/or data distributions stored in the 
particle class.

The electromagnetic sub-category is divided further into the following 
packages:
\begin{itemize}
\item {\it standard}: handling basic properties for electron, positron,
      photon and hadron interactions,
\item {\it low energy}: providing alternative models extended down to lower
      energies than the standard package,
\item {\it muons}: handling muon interactions,
\item {\it x-rays}: providing specific code for x-ray physics,
\item {\it optical}: providing specific code for optical photons,
\item {\it utils}: collecting utility classes used by the above packages.
\end{itemize} 
It provides the features of openness and extensibilty resulting from the use 
of object-oriented technology;  alternative physics models, obeying the same
process abstract interface, are often available for a given type of 
interaction.

For hadronic physics, an additional set of implementation frameworks was
added to accommodate the large number of possible modeling approaches.
The top-level framework provides the basic interface to other {\sc Geant4}
categories.  It satisfies the most general use-case for hadronic shower
simulations, namely to provide inclusive cross sections and final state
generation.  The frameworks are then refined for increasingly specific
use-cases, building a hierarchy in which each level implements the 
interface specified by the level above it.  A given hadronic process may
be implemented at any one of these levels.  For example, the process 
may be implemented by one of several models, and each of the models may
in turn be implemented by several sub-models at the lower framework levels.

\section{Class Design}

\subsection{General}
The object-oriented design of the generic physics process G4VProcess and its
relation to the process manager is shown in 
Fig. \ref{figure:physics-1}.  Fig. \ref{figure:physics-2} shows how specific 
physics processes are related to G4VProcess.

\vspace{10pt}
\begin{figure}[!ht]
\begin{center}
\includegraphics[angle=0,scale=0.6]{OOAnalysisDesign/PhysicsProcesses/classDgmProcessMain.eps}
\caption{Management of Physics Processes}
\label{figure:physics-1}
\end{center}
\end{figure}

\vspace{10pt}
\begin{figure}[!ht]
\begin{center}
\includegraphics[angle=0,scale=0.6]{OOAnalysisDesign/PhysicsProcesses/classDgmProcessProcesses.eps}
\caption{General Physics Processes}
\label{figure:physics-2}
\end{center}
\end{figure}


% Class diagrams of the low energy electromagnetic processes and the hadronic 
% models are shown in Fig. (not yet available) 
% Figs. \ref{figure:emlep-1} 
% and Fig. \ref{figure:hadp-1},
% respectively.

% \begin{figure}
% \begin{center}
% \centerline{\includegraphics[angle=270,scale=0.5]{OOAnalysisDesign/PhysicsProcesses/ElectroMagnetic/classDgmLowEnergyProc.ps}}
% \vspace{10pt}
% \caption{Low Energy Electromagnetic Processes}
% \label{figure:emlep-1}
% \end{center}
% \end{figure}

% \begin{figure}
% \begin{center}
% \includegraphics[angle=270,scale=0.45]{OOAnalysisDesign/PhysicsProcesses/Hadronic/classDgmHadronicModels.ps}
% \caption{Hadronic Processes}
% \label{figure:hadp-1}
% \end{center}
% \end{figure}

\section{Status of this chapter}

27.06.05 section on design philosophy added by D.H. Wright \\
