\section{Correcting the cross section for energy variation } \label{integral}  

As described in Sections \ref{en_loss} and \ref{ip} the step size limitation 
is provided by energy loss processes in order to insure the precise 
calculation of the probability of particle interaction. It is generally 
assumed in Monte Carlo programs that the particle cross sections are
approximately constant during a step, hence the reaction probability $p$ at 
the end of the step can be expressed as
\begin{equation}
\label{int_a}
p = 1 - \exp \left ( -n s \sigma(E_i) \right ),
\end{equation}
where $n$ is the density of atoms in the medium, $s$ is the step length,
$E_i$ is the energy of the incident particle at the beginning of the step, 
and $\sigma(E_i)$ is the reaction cross section at the beginning of the step.

However, it is possible to sample the reaction probability from the exact 
expression
\begin{equation}
\label{int_b}
p = 1 - \exp \left ( -\int_{E_i}^{E_f}{n \sigma(E) ds} \right ),
\end{equation}
where $E_f$ is the energy of the incident particle at the end of the step, 
by using the integral approach to particle transport.  This approach is
available for processes implemented via the $G4VEnergyLossProcess$ 
and $G4VEmProcess$ interfaces.

The Monte Carlo method of integration is used for sampling the reaction 
probability \cite{int.unimod}.  It is assumed that during the step 
the reaction cross section 
smaller, than some value $\sigma(E) < \sigma_m$. The mean free path 
for the given step is computed using $\sigma_m$. If the process is chosen
as the process happens at the step, the sampling of the final state is performed only
with the probability $p=\sigma(E_f)/\sigma_m$, alternatively no interaction
happen and tracking of the particle is continued.
To estimate the maximum value 
$\sigma_m$ for the given tracking step at Geant4 initialisation the energy
$E_m$ of absoluted maximum $\sigma_{max}$
of the cross section for given material is determined and stored. 
If at the tracking time
particle energy $E < E_m$, then $\sigma_m=\sigma(E)$. For higher initial energies
if $\xi E>E_m$ then $\sigma_m=min(\sigma(E),\sigma(\xi E))$.  In the opposit 
case $\sigma_m=\sigma_{max}$. Here $\xi$ is a 
parameter of the algorithm. Its optimal value is connected with the value
of the {\it dRoverRange} parameter (see sub-chapter \ref{en_loss}),
by default $\xi = 1 - \alpha_R = 0.8$.
Note, that described method is precise if the
cross section has only one maximum, which is a
typical case for electromagnetic processes. 


The integral variant of step limitation is the default for the 
$G4eIonisation$, $G4eBremsstrahlung$ and some otehr process 
but is not automatically activated for others. 
To do so the boolean UI command can be used:\\
\\
{\it /process/eLoss/integral true}
\\
\\
The integral variant of the energy loss sampling process is less dependent on 
values of the production cuts \cite{int.g403} and allows
to have less step limitation, however it should be applied 
on a case-by-case basis because may require extra CPU.  

\subsection{Status of this document}
 01.12.03  integral method subsection added by V. Ivanchenko \\
 17.08.04 moved to common to all charged particles by M. Maire \\
 25.11.06  revision by V. Ivanchenko \\

\begin{latexonly}

\begin{thebibliography}{99}
\bibitem{int.unimod}
V.N.Ivanchenko et al.,
Proc. of Int. Conf. MC91: Detector and event simulation in high
energy physics, Amsterdam 1991, pp. 79-85. (HEP INDEX 30 (1992) No. 3237).
\bibitem{int.g403}
V.N.Ivanchenko.
Geant4 Workshop (TRIUMF, Canada, 2003)
http://www.triumf.ca/\\
geant4-03/talks/04-Thursday-AM-1/02-V.Ivanchenko/eloss03.ppt

\end{thebibliography}

\end{latexonly}

\begin{htmlonly}

\subsection{Bibliography}

\begin{enumerate}
\item V.N.Ivanchenko et al.,
Proc. of Int. Conf. MC91: Detector and event simulation in high
energy physics, Amsterdam 1991, pp. 79-85. (HEP INDEX 30 (1992) No. 3237).
\item V.N.Ivanchenko.
Geant4 Workshop (TRIUMF, Canada, 2003)
http://www.triumf.ca/\\
geant4-03/talks/04-Thursday-AM-1/02-V.Ivanchenko/eloss03.ppt
\end{enumerate}

\end{htmlonly}
