Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -21,11 +21,28 @@
// ********************************************************************
//
//
// $Id: G4eLowEnergyLoss.hh,v 1.1.4.2 2001/06/28 20:19:25 gunter Exp $
// GEANT4 tag $Name: $
// $Id: G4eLowEnergyLoss.hh,v 1.7 2001/11/23 11:45:20 vnivanch Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
// -------------------------------------------------------------------
// Class description:
// Low Energy electromagnetic process, electron energy loss
// Further documentation available from http://www.ge.infn.it/geant4/lowE
// -------------------------------------------------------------------
//
// 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.
// G4eLowEnergyLoss is the base class for the processes giving contribution
// to the (continuous) energy loss of e+/e- .
//
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
@@ -37,6 +54,8 @@
// 16.10.98 public method SetStepFunction() + messenger class
// 20.01.99 new data members , L.Urban
// 10.02.00 modifications, new e.m. structure , L.Urban
// 18.10.01 Revision to improve code quality and consistency with design
// 23.11.01 V.Ivanchenko Move static member-functions from header to source
// ------------------------------------------------------------
#ifndef G4eLowEnergyLoss_h
@@ -58,20 +77,6 @@
#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.
// G4eLowEnergyLoss is the base class for the processes giving contribution
// to the (continuous) energy loss of e+/e- .
// Class description - end
class G4EnergyLossMessenger;
class G4eLowEnergyLoss : public G4VeLowEnergyLoss
@@ -83,8 +88,6 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss
~G4eLowEnergyLoss();
public: // With description
G4bool IsApplicable(const G4ParticleDefinition&);
// true for e+/e- , false otherwise
@@ -110,22 +113,38 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss
// ( ionisation and bremsstrahlung) .
virtual G4VParticleChange* PostStepDoIt(const G4Track& track,
const G4Step& Step) = 0;
const G4Step& step) = 0;
// Virtual function to be overridden in the derived classes
// ( ionisation and bremsstrahlung) .
static void SetNbOfProcesses(G4int nb);
// Sets number of processes giving contribution to the energy loss
static void PlusNbOfProcesses();
// Increases number of processes giving contribution to the energy loss
static void MinusNbOfProcesses();
// Decreases number of processes giving contribution to the energy loss
static G4int GetNbOfProcesses();
// Gets number of processes giving contribution to the energy loss
// ( default value = 2)
static void SetLowerBoundEloss(G4double val);
static void SetUpperBoundEloss(G4double val);
static void SetNbinEloss(G4int nb);
static G4double GetLowerBoundEloss();
static G4double GetUpperBoundEloss();
static G4int GetNbinEloss();
private:
G4double GetConstraints(const G4DynamicParticle* aParticle,
G4Material* aMaterial);
// hide assignment operator
G4eLowEnergyLoss (G4eLowEnergyLoss &);
G4eLowEnergyLoss & operator=(const G4eLowEnergyLoss &right);
protected:
virtual G4std::vector<G4DynamicParticle*>* DeexciteAtom(const G4Material* material,
G4double incidentEnergy,
G4double eLoss) { return 0; }
G4PhysicsTable* theLossTable;
G4double MinKineticEnergy ; // particle with kinetic energy
@@ -134,51 +153,6 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss
G4double Charge,lastCharge ;
private:
G4PhysicsTable* theDEDXTable;
G4int CounterOfProcess;
G4PhysicsTable** RecorderOfProcess;
G4double fdEdx; // computed in GetConstraints
G4double fRangeNow; // computed in GetConstraints
G4double linLossLimit ; // used in AlongStepDoIt
//New ParticleChange
G4ParticleChangeForLoss fParticleChange ;
//
// static part of the class
//
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 SetLowerBoundEloss(G4double val) {LowerBoundEloss=val;};
static void SetUpperBoundEloss(G4double val) {UpperBoundEloss=val;};
static void SetNbinEloss(G4int nb) {NbinEloss=nb;};
static G4double GetLowerBoundEloss() {return LowerBoundEloss;};
static G4double GetUpperBoundEloss() {return UpperBoundEloss;};
static G4int GetNbinEloss() {return NbinEloss;};
protected:
//basic DEDX and Range tables
static G4PhysicsTable* theDEDXElectronTable ;
static G4PhysicsTable* theDEDXPositronTable ;
@@ -205,7 +179,34 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss
static G4PhysicsTable** RecorderOfElectronProcess;
static G4PhysicsTable** RecorderOfPositronProcess;
private:
G4double GetConstraints(const G4DynamicParticle* aParticle,
G4Material* aMaterial);
// hide assignment operator
G4eLowEnergyLoss (G4eLowEnergyLoss &);
G4eLowEnergyLoss & operator=(const G4eLowEnergyLoss &right);
G4PhysicsTable* theDEDXTable;
G4int CounterOfProcess;
G4PhysicsTable** RecorderOfProcess;
G4double fdEdx; // computed in GetConstraints
G4double fRangeNow; // computed in GetConstraints
G4double linLossLimit ; // used in AlongStepDoIt
//New ParticleChange
G4ParticleChangeForLoss fParticleChange ;
//
// static part of the class
//
static G4int NbinEloss; // number of bins in table,
// calculated in BuildPhysicTable