Import Geant4 4.0.0 source tree
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user