Import Geant4 1.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:28:20 +02:00
parent aaa409b6ee
commit ca1c8cb059
2995 changed files with 106830 additions and 299600 deletions
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ComptonScattering.hh,v 1.1 1999/01/07 16:11:09 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ComptonScattering.hh,v 1.1.10.1 1999/12/07 20:50:47 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ComptonScattering.icc,v 1.1 1999/01/07 16:11:09 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ComptonScattering.icc,v 1.1.10.1 1999/12/07 20:50:47 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4EnergyLossMessenger.hh,v 1.1 1999/01/07 16:11:09 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4EnergyLossMessenger.hh,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4GammaConversion.hh,v 1.1 1999/01/07 16:11:09 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4GammaConversion.hh,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4GammaConversion.icc,v 1.1 1999/01/07 16:11:10 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4GammaConversion.icc,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IMultipleScattering.hh,v 1.1 1999/01/07 16:11:10 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IMultipleScattering.hh,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// --------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IMultipleScattering.icc,v 1.1 1999/01/07 16:11:10 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IMultipleScattering.icc,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// -------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeBremsstrahlung.hh,v 1.2 1999/05/04 14:29:35 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeBremsstrahlung.hh,v 1.2.8.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeBremsstrahlung.icc,v 1.2 1999/05/04 14:29:35 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeBremsstrahlung.icc,v 1.2.8.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeEnergyLoss.hh,v 1.1 1999/01/07 16:11:11 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeEnergyLoss.hh,v 1.1.10.1 1999/12/07 20:50:48 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeEnergyLoss.icc,v 1.1 1999/01/07 16:11:11 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeEnergyLoss.icc,v 1.1.10.1 1999/12/07 20:50:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeIonisation.hh,v 1.2 1999/05/04 14:29:34 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeIonisation.hh,v 1.2.8.1 1999/12/07 20:50:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeIonisation.icc,v 1.2 1999/05/04 14:29:34 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeIonisation.icc,v 1.2.8.1 1999/12/07 20:50:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeplusAnnihilation.hh,v 1.1 1999/01/07 16:11:12 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeplusAnnihilation.hh,v 1.1.10.1 1999/12/07 20:50:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IeplusAnnihilation.icc,v 1.1 1999/01/07 16:11:12 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IeplusAnnihilation.icc,v 1.1.10.1 1999/12/07 20:50:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IhEnergyLoss.hh,v 1.1 1999/01/07 16:11:12 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IhEnergyLoss.hh,v 1.2.8.1 1999/12/07 20:50:49 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -241,6 +241,10 @@ class G4IhEnergyLoss : public G4IVContinuousDiscreteProcess
// cut in range
static G4double CutInRange;
static G4double LowestKineticEnergy;
static G4double HighestKineticEnergy;
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
static G4double RTable,LOGRTable; // LOGRTable=log(HighestKineticEnergy
// /LowestKineticEnergy)/TotBin
// RTable = exp(LOGRTable)
@@ -280,11 +284,6 @@ class G4IhEnergyLoss : public G4IVContinuousDiscreteProcess
static G4int NumberOfProcesses ;
static G4double LowestKineticEnergy;
static G4double HighestKineticEnergy;
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
};
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IhEnergyLoss.icc,v 1.1 1999/01/07 16:11:12 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IhEnergyLoss.icc,v 1.1.10.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IhIonisation.hh,v 1.1 1999/01/07 16:11:13 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IhIonisation.hh,v 1.2.8.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -117,10 +117,6 @@ class G4IhIonisation : public G4IhEnergyLoss
G4PhysicsTable* theCoeffBTable;
G4PhysicsTable* theCoeffCTable;
G4double LowestKineticEnergy;
G4double HighestKineticEnergy;
G4int TotBin;
const G4Electron* theElectron;
const G4Proton* theProton;
const G4AntiProton* theAntiProton;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4IhIonisation.icc,v 1.1 1999/01/07 16:11:13 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4IhIonisation.icc,v 1.1.10.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4MultipleScattering.hh,v 1.2 1999/02/16 13:21:23 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4MultipleScattering.hh,v 1.6.6.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// --------------------------------------------------------------
@@ -21,6 +21,7 @@
// **************************************************************
// UNIVERSAL: for arbitrary single charged particle
// 09/12/98: charge can be != +- 1 !!!! L.Urban
// 30/09/99: nuclear size effect correction L.Urban
// --------------------------------------------------------------
// 22/10/98: cleanup , L.Urban
@@ -34,6 +35,7 @@
#include "G4Electron.hh"
#include "G4Positron.hh"
#include "G4MuonPlus.hh"
#include "G4PionPlus.hh"
#include "G4Proton.hh"
#include "G4PhysicsLogVector.hh"
#include "G4GPILSelection.hh"
@@ -80,14 +82,19 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess
{ scatteringparameter = value ; } ;
void SetTuning(G4double value) { tuning = value ; };
void SetCpar (G4double value) { cpar = value ; };
void SetTlimitmsc (G4double value) { Tlimit = value ; };
void SetLateralDisplacementFlag(G4bool flag) {fLatDisplFlag = flag;};
void SetNuclCorrPar(G4double val) { NuclCorrPar = val; } ;
void SetFactPar(G4double val) { FactPar = val ; } ;
protected:
G4double ComputeTransportCrossSection(
const G4ParticleDefinition& aParticleType,
G4double KineticEnergy,
G4double AtomicNumber) ;
G4double AtomicNumber,
G4double AtomicWeight) ;
G4double TrueToGeomTransformation(const G4DynamicParticle* aParticle,
G4Material* aMaterial,
@@ -127,11 +134,18 @@ class G4MultipleScattering : public G4VContinuousDiscreteProcess
G4double Tlimit ;
// model parameters
G4double scatteringparameter;
G4double tuning;
G4double cpar;
// with/without lateral displacement
G4bool fLatDisplFlag ;
// nuclear size effect correction
G4double NuclCorrPar ;
G4double FactPar ;
//New ParticleChange
G4ParticleChangeForMSC fParticleChange ;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4MultipleScattering.icc,v 1.2 1999/02/16 13:21:24 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4MultipleScattering.icc,v 1.5.6.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// -------------------------------------------------------------
@@ -21,6 +21,7 @@
// **************************************************************
// 25/11/97: mods for KinEnergy > HighestLimit
// 22/10/98: cleanup , L.Urban
// 15/10/99: bugfix, some accuracy problems fixed , L.Urban
//---------------------------------------------------------------
inline G4double G4MultipleScattering::GetContinuousStepLimit(
@@ -51,15 +52,16 @@ inline G4double G4MultipleScattering::GetContinuousStepLimit(
if((lastMaterial != aMaterial) || (lastKineticEnergy != KineticEnergy))
{
lastMaterial = aMaterial;
lastKineticEnergy = KineticEnergy ;
materialIndex = aMaterial->GetIndex() ;
if((KineticEnergy >= Tlimit)&&(stepFlag != 1))
if((lastMaterial != aMaterial)||(KineticEnergy >= Tlimit)||(stepFlag != 1))
fTransportMeanFreePath = (*theTransportMeanFreePathTable)
(materialIndex)->GetValue(KineticEnergy,isOut);
else if((KineticEnergy < Tlimit)&&(stepFlag != 1))
lastMaterial = aMaterial;
if(KineticEnergy < Tlimit)
{
stepFlag = 1 ;
range = G4EnergyLossTables::GetRange(aParticle->GetDefinition(),
@@ -77,12 +79,17 @@ inline G4double G4MultipleScattering::GetContinuousStepLimit(
else if(stepFlag == 0)
{
tau = tPathLength/fTransportMeanFreePath ;
zPathLength = fTransportMeanFreePath*(1.-exp(-tau)) ;
if(tau < perMillion)
zPathLength = tPathLength ;
else
zPathLength = fTransportMeanFreePath*(1.-exp(-tau)) ;
}
else
{
tau = tPathLength/range ;
if(tau<0.99)
if(tau<perMillion)
zPathLength = range*(1.-exp(-alpha1*tau))/alpha1 ;
else if(tau<0.99)
zPathLength = range*(1.-exp(alpha1*log(1.-tau)))/alpha1 ;
else
zPathLength = range/alpha1 ;
@@ -129,11 +136,17 @@ inline G4VParticleChange* G4MultipleScattering::AlongStepDoIt(
else if(stepFlag == 0)
{
tau = geomPathLength/fTransportMeanFreePath ;
truePathLength = -fTransportMeanFreePath*log(1.-tau) ;
if(tau<perMillion)
truePathLength = fTransportMeanFreePath*tau ;
else
truePathLength = -fTransportMeanFreePath*log(1.-tau) ;
}
else
{
truePathLength = range*(1.-exp(log(1.-alpha1*geomPathLength/range)/
if(geomPathLength/range < perMillion)
truePathLength = range*(1.-exp(-geomPathLength/range)) ;
else
truePathLength = range*(1.-exp(log(1.-alpha1*geomPathLength/range)/
alpha1)) ;
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PAIenergyLoss.hh,v 1.2 1999/04/16 09:06:01 grichine Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PAIenergyLoss.hh,v 1.3.2.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -41,7 +41,7 @@
#include "G4ios.hh"
#include <fstream.h>
#include <iomanip.h>
#include <rw/tpordvec.h>
#include "g4rw/tpordvec.h"
#include "globals.hh"
#include "Randomize.hh"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PAIenergyLoss.icc,v 1.3 1999/05/26 13:56:55 maire Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PAIenergyLoss.icc,v 1.3.8.1 1999/12/07 20:50:50 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PAIonisation.hh,v 1.2 1999/04/16 09:06:02 grichine Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PAIonisation.hh,v 1.2.8.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PAIonisation.icc,v 1.3 1999/05/26 13:56:56 maire Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PAIonisation.icc,v 1.3.8.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PAIxSection.hh,v 1.2 1999/04/16 09:06:02 grichine Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PAIxSection.hh,v 1.3.6.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// G4PAIxSection.hh -- header file
@@ -23,11 +23,17 @@
//
// History:
// 1st version 11.06.97, V. Grichine
// 2nd version 30.11.97, V. Grichine
// 2nd version 30.11.97, V. Grichine
// 27.10.99, V.Grichine: Bug fixed in constructors, 3rd constructor and
// GetStepEnergyLoss(step) were added, fDelta = 0.005
#ifndef G4PAIXSECTION_HH
#define G4PAIXSECTION_HH
#include "G4ios.hh"
#include "globals.hh"
#include "Randomize.hh"
#include"G4SandiaTable.hh"
class G4PAIxSection
@@ -41,7 +47,11 @@ public:
G4PAIxSection( G4int materialIndex, // for proton loss table
G4double maxEnergyTransfer,
G4double betaGammaSq ,
G4double** photoAbsCof, G4int intNumber ) ;
G4double** photoAbsCof, G4int intNumber ) ;
G4PAIxSection( G4int materialIndex, // test constructor
G4double maxEnergyTransfer,
G4double betaGammaSq ) ;
// G4PAIxSection(const G4PAIxSection& right) ;
@@ -84,6 +94,8 @@ public:
G4double SumOverBorder( G4int intervalNumber,
G4double energy ) ;
G4double GetStepEnergyLoss( G4double step ) ;
// Inline access functions
@@ -91,6 +103,10 @@ public:
G4int GetSplineSize() const { return fSplineNumber ; }
G4int GetIntervalNumber() const { return fIntervalNumber ; }
G4double GetEnergyInterval(G4int i){ return fEnergyInterval[i] ; }
G4double GetMeanEnergyLoss() const {return fIntegralPAIxSection[0] ; }
G4double GetNormalizationCof() const { return fNormalizationCof ; }
@@ -156,7 +172,8 @@ G4double fPAItable[500][112] ; // Output array
} ;
// ............................ INLINE METHODS ....................................
//////////////// Inline methods //////////////////////////////////
//
inline G4double G4PAIxSection::GetPAItable(G4int i, G4int j) const
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PhotoElectricEffect.hh,v 1.3 1999/01/20 12:26:36 maire Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PhotoElectricEffect.hh,v 1.3.8.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PhotoElectricEffect.icc,v 1.2 1999/01/08 16:32:23 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PhotoElectricEffect.icc,v 1.2.8.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4PolarizedComptonScattering.hh,v 1.1 1999/01/07 16:11:14 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4PolarizedComptonScattering.hh,v 1.1.10.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// ------------------------------------------------------------
// GEANT 4 class header file --- Copyright CERN 1995
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4SynchrotronRadiation.hh,v 1.1 1999/01/07 16:11:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4SynchrotronRadiation.hh,v 1.1.10.1 1999/12/07 20:50:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eBremsstrahlung.hh,v 1.1 1999/01/07 16:11:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eBremsstrahlung.hh,v 1.1.10.1 1999/12/07 20:50:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eBremsstrahlung.icc,v 1.1 1999/01/07 16:11:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eBremsstrahlung.icc,v 1.1.10.1 1999/12/07 20:50:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eBremsstrahlungPlus.hh,v 1.1 1999/01/07 16:11:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eBremsstrahlungPlus.hh,v 1.1.10.1 1999/12/07 20:50:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eBremsstrahlungPlus.icc,v 1.1 1999/01/07 16:11:15 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eBremsstrahlungPlus.icc,v 1.1.10.1 1999/12/07 20:50:52 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eEnergyLoss.hh,v 1.3 1999/02/24 13:43:25 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eEnergyLoss.hh,v 1.4.4.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -18,16 +18,6 @@
// 2nd December 1995, G.Cosmo
// ---------- G4eEnergyLoss physics process -----------
// by Laszlo Urban, 20 March 1997
// ************************************************************
// It is the first implementation of the new unified Energy Loss process.
// It calculates the continuous energy loss for e+/e-.
// Processes giving contribution to the continuous loss :
// ionisation (= cont.ion.loss + delta ray production)
// bremsstrahlung (= cont.loss due to sooft brems+discrete bremsstrahlung)
// can be added more easily ..........
// This class creates static dE/dx and range tables for e+ and e-,
// which tables can be used by other processes.
// ------------------------------------------------------------
//
// 27.05.98 OldGetRange removed + other corrs , L.Urban
// 10.09.98 cleanup
@@ -54,9 +44,22 @@
#include "G4PhysicsLinearVector.hh"
#include "G4EnergyLossTables.hh"
// Class description:
// This class is the implementation of the unified Energy Loss process.
// It calculates the continuous energy loss for e+/e-.
// The following processes give contributions to the continuous
// energy loss (by default) :
// --- ionisation (= cont.ion.loss + delta ray production)
// --- bremsstrahlung (= cont.loss due to soft brems+discrete bremsstrahlung)
// more can be added ..........
// This class creates static dE/dx and range tables for e+ and e-,
// which tables can be used by other processes , too.
// G4eEnergyLoss is the base class for the processes giving contribution
// to the (continuous) energy loss of e+/e- .
// Class description - end
class G4EnergyLossMessenger;
class G4eEnergyLoss : public G4VContinuousDiscreteProcess
{
@@ -66,27 +69,36 @@ class G4eEnergyLoss : public G4VContinuousDiscreteProcess
~G4eEnergyLoss();
public: // With description
G4bool IsApplicable(const G4ParticleDefinition&);
public:
// true for e+/e- , false otherwise
void BuildDEDXTable(const G4ParticleDefinition& aParticleType);
// It builds dE/dx and range tables for aParticleType and
// for every material contained in the materialtable.
G4double GetContinuousStepLimit(const G4Track& track,
G4double previousStepSize,
G4double currentMinimumStep,
G4double& currentSafety);
// Computes the steplimit due to the energy loss process.
G4VParticleChange* AlongStepDoIt(const G4Track& track,
const G4Step& Step) ;
// Performs the computation of the (continuous) energy loss
// after the step (with fluctuation).
virtual G4double GetMeanFreePath(const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition) = 0;
// Virtual function to be overridden in the derived classes
// ( ionisation and bremsstrahlung) .
virtual G4VParticleChange* PostStepDoIt(const G4Track& track,
const G4Step& Step) = 0;
// Virtual function to be overridden in the derived classes
// ( ionisation and bremsstrahlung) .
private:
@@ -134,9 +146,11 @@ class G4eEnergyLoss : public G4VContinuousDiscreteProcess
G4PhysicsTable* theLossTable;
G4double ParticleMass; // heavily used
G4double ParticleMass; // heavily used
G4double MinKineticEnergy ; //
G4double MinKineticEnergy ; // particle with kinetic energy
// smaller than MinKineticEnergy
// is stopped in AlongStepDoIt
G4double Charge,lastCharge ;
@@ -160,7 +174,7 @@ class G4eEnergyLoss : public G4VContinuousDiscreteProcess
G4double fdEdx; // computed in GetConstraints
G4double fRangeNow; // computed in GetConstraints
G4double linLossLimit ; //
G4double linLossLimit ; // used in AlongStepDoIt
G4int TotBin; // number of bins in table,
// calculated in BuildPhysicTable
@@ -184,6 +198,7 @@ class G4eEnergyLoss : public G4VContinuousDiscreteProcess
//New ParticleChange
G4ParticleChangeForLoss fParticleChange ;
//
// static part of the class
//
@@ -236,21 +251,38 @@ class G4eEnergyLoss : public G4VContinuousDiscreteProcess
static G4EnergyLossMessenger* eLossMessenger;
public:
public: // With description
static void SetNbOfProcesses(G4int nb) {NbOfProcesses=nb;};
// Sets number of processes giving contribution to the energy loss
static void PlusNbOfProcesses() {NbOfProcesses++ ;};
// Increases number of processes giving contribution to the energy loss
static void MinusNbOfProcesses() {NbOfProcesses-- ;};
// Decreases number of processes giving contribution to the energy loss
static G4int GetNbOfProcesses() {return NbOfProcesses;};
// Gets number of processes giving contribution to the energy loss
// ( default value = 2)
static void SetRndmStep (G4bool value) {rndmStepFlag = value;}
// use / do not use randomisation in energy loss steplimit
// ( default = no randomisation)
static void SetEnlossFluc (G4bool value) {EnlossFlucFlag = value;}
// compute energy loss with/without fluctuation
// ( default : with fluctuation)
static void SetStepFunction (G4double c1, G4double c2)
{dRoverRange = c1; finalRange = c2;
c1lim=dRoverRange ;
c2lim=2.*(1-dRoverRange)*finalRange;
c3lim=-(1.-dRoverRange)*finalRange*finalRange;
}
// sets values for data members used to compute the step limit:
// dRoverRange : max. relative range change in one step,
// finalRange : if range <= finalRange --> last step for the particle.
};
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eEnergyLoss.icc,v 1.4 1999/05/20 10:15:19 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eEnergyLoss.icc,v 1.4.8.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eEnergyLossPlus.hh,v 1.3 1999/04/28 15:07:52 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eEnergyLossPlus.hh,v 1.4.4.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -18,16 +18,6 @@
// 2nd December 1995, G.Cosmo
// ---------- G4eEnergyLossPlus physics process -----------
// by Laszlo Urban, 20 March 1997
// ************************************************************
// It is the first implementation of the new unified Energy Loss process.
// It calculates the continuous energy loss for e+/e-.
// Processes giving contribution to the continuous loss :
// ionisation (= cont.ion.loss + delta ray production)
// bremsstrahlung (= cont.loss due to sooft brems+discrete bremsstrahlung)
// can be added more easily ..........
// This class creates static dE/dx and range tables for e+ and e-,
// which tables can be used by other processes.
// ---------------------------------------------------------------
// 18/11/98 , L. Urban
// It is a modified version of G4eEnergyLoss:
// continuous energy loss with generation of subcutoff delta rays
@@ -55,6 +45,23 @@
class G4EnergyLossMessenger;
// Class description:
// This class is the implementation of the unified Energy Loss process
// with generation of subcutoff secondaries , see description of
// *****************************************
// the AlongStepDoIt method.
// It calculates the continuous energy loss for e+/e-.
// The following processes give contributions to the continuous
// energy loss (by default) :
// --- ionisation (= cont.ion.loss + delta ray production)
// --- bremsstrahlung (= cont.loss due to soft brems+discrete bremsstrahlung)
// more can be added ..........
// This class creates static dE/dx and range tables for e+ and e-,
// which tables can be used by other processes , too.
// G4eEnergyLoss is the base class for the processes giving contribution
// to the (continuous) energy loss of e+/e- .
// Class description - end
class G4eEnergyLossPlus : public G4VContinuousDiscreteProcess
@@ -65,27 +72,45 @@ class G4eEnergyLossPlus : public G4VContinuousDiscreteProcess
~G4eEnergyLossPlus();
public: // With description
G4bool IsApplicable(const G4ParticleDefinition&);
// true for e+/e- , false otherwise
public:
void BuildDEDXTable(const G4ParticleDefinition& aParticleType);
// It builds dE/dx and range tables for aParticleType and
// for every material contained in the materialtable.
G4double GetContinuousStepLimit(const G4Track& track,
G4double previousStepSize,
G4double currentMinimumStep,
G4double& currentSafety);
// Computes the steplimit due to the energy loss process.
G4VParticleChange* AlongStepDoIt(const G4Track& track,
const G4Step& Step) ;
// --- Performs the computation of the mean energy loss
// after the step .
// --- Compares the value of the safety to the value
// of the cut in range.
// --- If safety < cut in range , generates secondaries
// with kinetic energy in the interval [Tsafety,Tcut],
// where Tsafety corresponds to range safety,
// Tcut is the cut in energy.
// --- Updates the value of the mean energy loss and
// the direction of the primary
// --- Computes the energy loss fluctuation.
virtual G4double GetMeanFreePath(const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition) = 0;
// Virtual function to be overridden in the derived classes
// ( ionisation and bremsstrahlung) .
virtual G4VParticleChange* PostStepDoIt(const G4Track& track,
const G4Step& Step) = 0;
// Virtual function to be overridden in the derived classes
// ( ionisation and bremsstrahlung) .
private:
@@ -239,24 +264,45 @@ class G4eEnergyLossPlus : public G4VContinuousDiscreteProcess
static G4EnergyLossMessenger* eLossMessenger;
public:
public: // With description
static void SetNbOfProcesses(G4int nb) {NbOfProcesses=nb;};
// Sets number of processes giving contribution to the energy loss
static void PlusNbOfProcesses() {NbOfProcesses++ ;};
// Increases number of processes giving contribution to the energy loss
static void MinusNbOfProcesses() {NbOfProcesses-- ;};
// Decreases number of processes giving contribution to the energy loss
static G4int GetNbOfProcesses() {return NbOfProcesses;};
// Gets number of processes giving contribution to the energy loss
// ( default value = 2)
static void SetRndmStep (G4bool value) {rndmStepFlag = value;}
// use / do not use randomisation in energy loss steplimit
// ( default = no randomisation)
static void SetEnlossFluc (G4bool value) {EnlossFlucFlag = value;}
// compute energy loss with/without fluctuation
// ( default : with fluctuation)
static void SetStepFunction (G4double c1, G4double c2)
{dRoverRange = c1; finalRange = c2;
c1lim=dRoverRange ;
c2lim=2.*(1-dRoverRange)*finalRange;
c3lim=-(1.-dRoverRange)*finalRange*finalRange;
}
// sets values for data members used to compute the step limit:
// dRoverRange : max. relative range change in one step,
// finalRange : if range <= finalRange --> last step for the particle.
static void SetMinDeltaCutInRange(G4double value)
{MinDeltaCutInRange = value;}
// sets minimal cut value for the subcutoff secondaries
// (i.e. the kinetic energy of these secondaries can not be
// smaller than the energy corresponds to MinDeltaCutInRange).
};
#include "G4eEnergyLossPlus.icc"
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eEnergyLossPlus.icc,v 1.3 1999/05/20 10:15:20 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eEnergyLossPlus.icc,v 1.3.8.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eIonisation.hh,v 1.2 1999/02/16 13:34:48 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eIonisation.hh,v 1.2.8.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eIonisation.icc,v 1.2 1999/02/16 13:34:48 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eIonisation.icc,v 1.2.8.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eIonisationPlus.hh,v 1.1 1999/01/07 16:11:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eIonisationPlus.hh,v 1.1.10.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eIonisationPlus.icc,v 1.1 1999/01/07 16:11:17 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eIonisationPlus.icc,v 1.1.10.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eplusAnnihilation.hh,v 1.1 1999/01/07 16:11:18 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eplusAnnihilation.hh,v 1.1.10.1 1999/12/07 20:50:53 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4eplusAnnihilation.icc,v 1.1 1999/01/07 16:11:18 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4eplusAnnihilation.icc,v 1.1.10.1 1999/12/07 20:50:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hEnergyLoss.hh,v 1.2 1999/02/16 13:34:49 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hEnergyLoss.hh,v 1.5.6.1 1999/12/07 20:50:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -90,6 +90,12 @@ class G4hEnergyLoss : public G4VContinuousDiscreteProcess
protected:
virtual G4double GetConstraints(const G4DynamicParticle *aParticle,
G4Material *aMaterial);
virtual G4double GetLossWithFluct(const G4DynamicParticle *aParticle,
G4Material *aMaterial,
G4double MeanLoss) ;
private:
@@ -98,33 +104,17 @@ class G4hEnergyLoss : public G4VContinuousDiscreteProcess
G4hEnergyLoss(G4hEnergyLoss &);
G4hEnergyLoss & operator=(const G4hEnergyLoss &right);
G4double GetConstraints(const G4DynamicParticle *aParticle,
G4Material *aMaterial);
G4double GetLossWithFluct(const G4DynamicParticle *aParticle,
G4Material *aMaterial,
G4double MeanLoss) ;
// =====================================================================
public:
protected:
G4PhysicsTable* theLossTable ;
G4double MinKineticEnergy ;
private:
G4double fdEdx; // computed in GetContraints
G4double fRangeNow ; // computed in GetContraints
G4double linLossLimit ;
// variables for the integration routines
static G4double Mass,taulow,tauhigh,ltaulow,ltauhigh;
protected:
// data members to speed up the fluctuation calculation
G4Material *lastMaterial ;
G4int imat ;
@@ -248,6 +238,16 @@ class G4hEnergyLoss : public G4VContinuousDiscreteProcess
static G4double pbartableElectronCutInRange;
static G4double Charge ;
static G4double LowestKineticEnergy;
static G4double HighestKineticEnergy;
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
static G4double RTable,LOGRTable; // LOGRTable=log(HighestKineticEnergy
// /LowestKineticEnergy)/TotBin
// RTable = exp(LOGRTable)
private:
static G4PhysicsTable* theDEDXTable;
@@ -272,9 +272,20 @@ class G4hEnergyLoss : public G4VContinuousDiscreteProcess
static G4PhysicsTable* theRangeCoeffATable;
static G4PhysicsTable* theRangeCoeffBTable;
static G4PhysicsTable* theRangeCoeffCTable;
static G4int NumberOfProcesses ;
static G4double dRoverRange ; // maximum allowed deltarange/range
// in one step
protected:
G4PhysicsTable* theLossTable ;
G4double linLossLimit ;
G4double MinKineticEnergy ;
G4double fdEdx; // computed in GetContraints
G4double fRangeNow ; // computed in GetContraints
static G4double finalRange ; // last step before stop
static G4double c1lim,c2lim,c3lim ; // coeffs for computing steplimit
@@ -282,20 +293,11 @@ class G4hEnergyLoss : public G4VContinuousDiscreteProcess
static G4bool rndmStepFlag ;
static G4bool EnlossFlucFlag ;
static G4int NumberOfProcesses ;
static G4double LowestKineticEnergy;
static G4double HighestKineticEnergy;
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
static G4double RTable,LOGRTable; // LOGRTable=log(HighestKineticEnergy
// /LowestKineticEnergy)/TotBin
// RTable = exp(LOGRTable)
};
#include "G4hEnergyLoss.icc"
#endif
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hEnergyLoss.icc,v 1.2 1999/02/16 13:34:49 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hEnergyLoss.icc,v 1.2.8.1 1999/12/07 20:50:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hEnergyLossPlus.hh,v 1.2 1999/04/28 15:07:53 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hEnergyLossPlus.hh,v 1.3.8.1 1999/12/07 20:50:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ------------------------------------------------------------
@@ -253,6 +253,15 @@ class G4hEnergyLossPlus : public G4VContinuousDiscreteProcess
static G4double MinDeltaCutInRange; // minimum cut for delta rays
static G4double* MinDeltaEnergy ;
static G4double LowestKineticEnergy;
static G4double HighestKineticEnergy;
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
static G4double RTable,LOGRTable; // LOGRTable=log(HighestKineticEnergy
// /LowestKineticEnergy)/TotBin
// RTable = exp(LOGRTable)
static G4double Charge ;
private:
@@ -290,16 +299,6 @@ class G4hEnergyLossPlus : public G4VContinuousDiscreteProcess
static G4int NumberOfProcesses ;
static G4double LowestKineticEnergy;
static G4double HighestKineticEnergy;
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
static G4double RTable,LOGRTable; // LOGRTable=log(HighestKineticEnergy
// /LowestKineticEnergy)/TotBin
// RTable = exp(LOGRTable)
static G4double c0N,c1N,c2N,c3N ; // coeffs to compute nb of deltas
static G4int Ndeltamax ; // upper limit for nb of subcutoff
// delta rays in one step
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hEnergyLossPlus.icc,v 1.1 1999/03/05 09:03:25 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hEnergyLossPlus.icc,v 1.1.8.1 1999/12/07 20:50:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// $Id:
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hIonisation.hh,v 1.2 1999/02/16 13:34:50 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hIonisation.hh,v 1.4.8.1 1999/12/07 20:50:54 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -58,11 +58,11 @@ class G4hIonisation : public G4hEnergyLoss
void BuildPhysicsTable(const G4ParticleDefinition& aParticleType);
void BuildLossTable(const G4ParticleDefinition& aParticleType);
virtual void BuildLossTable(const G4ParticleDefinition& aParticleType);
void BuildLambdaTable(const G4ParticleDefinition& aParticleType);
void PrintInfoDefinition();
virtual void PrintInfoDefinition();
G4double GetMeanFreePath(
const G4Track& track,
@@ -90,14 +90,6 @@ class G4hIonisation : public G4hEnergyLoss
G4PhysicsTable* theMeanFreePathTable;
// LowestKineticEnergy = lower limit of particle kinetic energy
// HighestKineticEnergy = upper limit of particle kinetic energy
// TotBin = number of bins
// ---------in the energy ionisation loss table-------------------
G4double LowestKineticEnergy;
G4double HighestKineticEnergy;
G4int TotBin;
// particles , cuts in kinetic energy ........
const G4Electron* theElectron;
const G4Proton* theProton;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hIonisation.icc,v 1.2 1999/02/16 13:34:50 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hIonisation.icc,v 1.2.8.1 1999/12/07 20:50:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hIonisationPlus.hh,v 1.1 1999/03/05 09:03:26 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hIonisationPlus.hh,v 1.2.8.1 1999/12/07 20:50:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -90,14 +90,6 @@ class G4hIonisationPlus : public G4hEnergyLossPlus
G4PhysicsTable* theMeanFreePathTable;
// LowestKineticEnergy = lower limit of particle kinetic energy
// HighestKineticEnergy = upper limit of particle kinetic energy
// TotBin = number of bins
// ---------in the energy ionisation loss table-------------------
G4double LowestKineticEnergy;
G4double HighestKineticEnergy;
G4int TotBin;
// particles , cuts in kinetic energy ........
const G4Electron* theElectron;
const G4Proton* theProton;
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4hIonisationPlus.icc,v 1.1 1999/03/05 09:03:27 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4hIonisationPlus.icc,v 1.1.8.1 1999/12/07 20:50:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ionIonisation.hh,v 1.2 1999/04/15 16:03:54 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ionIonisation.hh,v 1.2.8.1 1999/12/07 20:50:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ------------------------------------------------------------
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// the GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4ionIonisation.icc,v 1.2 1999/04/15 16:03:55 urban Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ionIonisation.icc,v 1.2.8.1 1999/12/07 20:50:55 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
// ---------------------------------------------------------------