Import Geant4 1.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:34:16 +02:00
parent ca1c8cb059
commit 103bda00c8
2654 changed files with 29719 additions and 20203 deletions
@@ -1,69 +0,0 @@
// This code implementation is the intellectual property of
// 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.
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4Epdl89File
//
// Author: Alessandra Forti (Alessandra.Forti@cern.ch)
//
// Creation date: 2 February 1999
//
// Modifications:
//
// -------------------------------------------------------------------
#ifndef G4Epdl89File_hh
#define G4Epdl89File_hh
// Other Class Headers
#include "globals.hh"
#include "G4VDataFile.hh"
#include "G4Data.hh"
// C++ Headers
#include <fstream.h>
// Class Declarations
class G4Epdl89File: public G4VDataFile{
public:
// Constructors
G4Epdl89File(const G4String&, G4int*);
// Destructor
~G4Epdl89File();
virtual G4bool FindTheProcess();
virtual G4bool FindTheElement(G4int);
virtual G4bool FindOneElemProc(G4int&);
protected:
// Member Functions
void GetDataValues(G4Data& valList);
G4double GetOneData(const char*);
private:
G4int* _flags; // data flags
};
#endif // G4Epdl89File
@@ -1,68 +0,0 @@
// This code implementation is the intellectual property of
// 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.
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4Epdl97File.hh
//
// Author: Alessandra Forti (Alessandra.Forti@cern.ch)
//
// Creation date: 2 February 1999
//
// Modifications:
//
// -------------------------------------------------------------------
#ifndef G4Epdl97File_hh
#define G4Epdl97File_hh
// Other Class Headers
#include "globals.hh"
#include "G4VDataFile.hh"
#include "G4Data.hh"
// C++ Headers
#include <fstream.h>
// Class Declarations
class G4Epdl97File: public G4VDataFile{
public:
// Constructors
G4Epdl97File(const G4String&, G4int*);
// Destructor
~G4Epdl97File();
virtual G4bool FindTheProcess();
virtual G4bool FindTheElement(G4int);
virtual G4bool FindOneElemProc(G4int&);
G4int* GetTheProcFlags();
protected:
// Member Functions
void GetDataValues(G4Data& valList);
G4double GetOneData(const char*);
private:
G4int* _flags; // data flags
};
#endif // G4Epdl97File
@@ -1,89 +0,0 @@
// This code implementation is the intellectual property of
// 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.
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4EpdlTables
//
// Author: Alessandra Forti (Alessandra.Forti@cern.ch)
//
// Creation date: 2 February 1999
//
// Modifications:
//
// -------------------------------------------------------------------
#ifndef G4EpdlTables_hh
#define G4EpdlTables_hh
// Base Class Header
#include "G4VTables.hh"
// Other Class Headers
#include "globals.hh"
#include "G4PhysicsTable.hh"
#include "G4Data.hh"
#include "G4FirstLevel.hh"
#include "G4SecondLevel.hh"
// C++ Headers
// Class Declarations
class G4VDataFile;
class G4EpdlTables: public G4VTables{
public:
// Constructors
G4EpdlTables(G4VDataFile& DFile);
// Destructor
~G4EpdlTables();
// Member Functions
// search the data table in the file
void FillDataTable();
G4SecondLevel* FillTheTable(G4int nemEl = 0);
// inline member functions
inline G4PhysicsTable* GetFstDataTable(){return theDataTable1;};
inline G4PhysicsTable* GetSndDataTable(){return theDataTable2;};
inline G4PhysicsTable* GetTrdDataTable(){return theDataTable3;};
//G4SecondLevel* GetGlobalList();
protected:
private:
G4PhysicsTable* theDataTable1;
G4PhysicsTable* theDataTable2;
G4PhysicsTable* theDataTable3;
// G4SecondLevel* allElementList;
G4VDataFile& datfile;
};
#endif // G4EpdlTables
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyBremsstrahlung.hh,v 1.7.8.1 1999/12/07 20:50:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyBremsstrahlung.hh,v 1.9 2000/01/26 09:32:06 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -15,15 +15,9 @@
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyBremsstrahlung physics process ------
// by Michel Maire, 24 July 1996
// by A.Forti 1999/03/27 19:18:13
// ************************************************************
// 1-10-96 : new type G4OrderedTable; ComputePartialSumSigma()
// 20/03/97: new energy loss+ionisation+brems scheme, L.Urban
// 01-09-98, new methods SetBining() and PrintInfo()
// ------------------------------------------------------------
#ifndef G4LowEnergyBremsstrahlung_h
#define G4LowEnergyBremsstrahlung_h 1
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyBremsstrahlung.icc,v 1.9.8.1 1999/12/07 20:50:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyBremsstrahlung.icc,v 1.12 2000/02/18 12:34:17 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ---------------------------------------------------------------
@@ -14,13 +14,8 @@
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyBremsstrahlung physics process ---------
// by Michel Maire, 27 July 1996
// ***************************************************************
// 13-12-96 : Sign corrected in the ScreenFunctions, L.Urban
// 20/03/97 : new energy loss+ionisation+brems scheme, L.Urban
// by A.Forti 1999/03/27
// ***************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -29,7 +24,8 @@ inline G4bool G4LowEnergyBremsstrahlung::IsApplicable(
const G4ParticleDefinition& particle)
{
return( (&particle == G4Electron::Electron())
||(&particle == G4Positron::Positron()) );
/////////////||(&particle == G4Positron::Positron())
);
}
inline G4double G4LowEnergyBremsstrahlung::GetMeanFreePath(const G4Track& track,
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyCompton.hh,v 1.3.8.1 1999/12/07 20:50:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyCompton.hh,v 1.5 2000/01/26 09:43:16 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -15,18 +15,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyCompton physics process ------
// by Michel Maire, April 1996
// by A.Forti 1999/03/02
// ************************************************************
// 01-02-96, First implementation A.Forti
// 21-06-96, SetCuts implementation, M.Maire
// 06-01-97, crossection table + meanfreepath table, M.Maire
// 17-02-97, New Physics scheme
// 25-02-97, GetMeanFreePath() now is public function
// 12-03-97, new physics scheme again
// ------------------------------------------------------------
#ifndef G4LowEnergyCompton_h
#define G4LowEnergyCompton_h
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyCompton.icc,v 1.8.8.1 1999/12/07 20:50:19 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyCompton.icc,v 1.10 2000/01/26 09:43:16 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ---------------------------------------------------------------
@@ -14,10 +14,8 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyCompton physics process ---------
// by Michel Maire, April 1996
// by A.Forti 1999/03/02
// ***************************************************************
inline G4bool
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyGammaConversion.hh,v 1.2.8.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyGammaConversion.hh,v 1.4 2000/01/26 09:43:16 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -15,19 +15,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyGammaConversion physics process ------
// by Michel Maire, 24 May 1996
// by A.Forti 1999/03/02
// ************************************************************
// 11-06-96, Added GetRandomAtom() method and new data member
// for cumulative total cross section, by M.Maire
// 21-06-96, SetCuts inplementation, M.Maire
// 16-09-96, Dynamical array PartialSumSigma, M.Maire
// 14-01-97, crossection table + meanfreepath table.
// PartialSumSigma removed, M.Maire
// 14-03-97, new physics scheme for geant4alpha, M.Maire
// ------------------------------------------------------------
#ifndef G4LowEnergyGammaConversion_h
#define G4LowEnergyGammaConversion_h 1
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyGammaConversion.icc,v 1.6.8.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyGammaConversion.icc,v 1.8 2000/01/26 09:43:16 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ---------------------------------------------------------------
@@ -14,18 +14,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyGammaConversion physics process ---------
// by Michel Maire, 24 May 1996
// by A.Forti 1999/03/02
// ***************************************************************
// 11-06-96, in GetMeanFreePath() the partial sum is stored, by M.Maire
// 16-09-96, dynamical array PartialSumSigma, by M.Maire
// 13-12-96, Sign corrected in the ScreenFunctions, by L.Urban
// 14-01-97, crossection table + meanfreepath table.
// PartialSumSigma removed, by M.Maire
// 14-01-97, new physics scheme for geant4alpha, M.Maire
// ---------------------------------------------------------------
inline G4bool G4LowEnergyGammaConversion::IsApplicable(const G4ParticleDefinition& particle)
{
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyIonisation.hh,v 1.11.6.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyIonisation.hh,v 1.12 1999/12/15 14:51:30 gunter Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyIonisation.icc,v 1.7.8.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyIonisation.icc,v 1.9 2000/02/18 12:34:17 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ---------------------------------------------------------------
@@ -28,7 +28,8 @@ inline G4bool G4LowEnergyIonisation::IsApplicable(
const G4ParticleDefinition& particle)
{
return( (&particle == G4Electron::Electron())
||(&particle == G4Positron::Positron()) );
/////////////////||(&particle == G4Positron::Positron())
);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyPhotoElectric.hh,v 1.10.6.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyPhotoElectric.hh,v 1.12 2000/01/26 09:43:16 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -15,19 +15,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyPhotoElectric physics process ------
// by Michel Maire, April 1996
// by A.Forti 1999/03/02
// ************************************************************
// 12-06-96, Added SelectRandomAtom() method and new data member
// for cumulative total cross section, by M.Maire
// 21-06-96, SetCuts implementation, M.Maire
// 17-09-96, Dynamic array PartialSumSigma
// split ComputeBindingEnergy(), M.Maire
// 08-01-97, crossection table + meanfreepath table, M.Maire
// 13-03-97, adapted for the new physics scheme, M.Maire
// ------------------------------------------------------------
#ifndef G4LowEnergyPhotoElectric_h
#define G4LowEnergyPhotoElectric_h 1
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyPhotoElectric.icc,v 1.11.6.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyPhotoElectric.icc,v 1.13 2000/01/26 09:43:17 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ---------------------------------------------------------------
@@ -14,18 +14,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyPhotoElectric physics process ---------
// by Michel Maire, April 1996
// by A.Forti 1999/03/02
// ***************************************************************
// 12-06-96, update by M.Maire
// 17-09-96, PartialSumSigma(i)
// split ComputeBinbingEnergy(), M.Maire
// 08-01-97, crossection table + meanfreepath table , M.Maire
// 13-03-97, adapted for the new physics scheme, M.Maire
// 20-11-97, change for lowest energy limit default action
// ---------------------------------------------------------------
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyRayleigh.hh,v 1.3.8.1 1999/12/07 20:50:20 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyRayleigh.hh,v 1.5 2000/01/26 09:43:17 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -15,18 +15,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyRayleigh physics process ------
// by Michel Maire, April 1996
// by A.Forti 1999/03/02
// ************************************************************
// 10-06-96, updated by M.Maire
// 21-06-96, SetCuts implementation, M.Maire
// 06-01-97, crossection table + meanfreepath table, M.Maire
// 17-02-97, New Physics scheme
// 25-02-97, GetMeanFreePath() now is public function
// 12-03-97, new physics scheme again
// ------------------------------------------------------------
#ifndef G4LowEnergyRayleigh_h
#define G4LowEnergyRayleigh_h
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyRayleigh.icc,v 1.7.8.1 1999/12/07 20:50:21 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyRayleigh.icc,v 1.9 2000/01/26 09:43:17 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ---------------------------------------------------------------
@@ -14,16 +14,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyRayleigh physics process ---------
// by Michel Maire, April 1996
// by A.Forti 1999/03/02
// ***************************************************************
// 10-06-96, updated by M.Maire
// 06-01-97, crossection table + meanfreepath table, M.Maire
// 12-03-97, new Physics scheme
// 21-11-97, change for lowest energy limit default action
// ---------------------------------------------------------------
inline G4bool G4LowEnergyRayleigh::IsApplicable(const G4ParticleDefinition& particle){
return ( &particle == G4Gamma::Gamma() );
@@ -5,8 +5,8 @@
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LowEnergyUtilities.hh,v 1.1.8.1 1999/12/07 20:50:21 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
// $Id: G4LowEnergyUtilities.hh,v 1.4 2000/01/26 09:43:17 lefebure Exp $
// GEANT4 tag $Name: geant4-01-01 $
//
//
// ------------------------------------------------------------
@@ -15,19 +15,9 @@
//
// For information related to this code contact:
// CERN, CN Division, ASD group
// History: first implementation, based on object model of
// 2nd December 1995, G.Cosmo
// ------------ G4LowEnergyPhotoElectric physics process ------
// by Michel Maire, April 1996
// by A.Forti 1999/06/28
// ************************************************************
// 12-06-96, Added SelectRandomAtom() method and new data member
// for cumulative total cross section, by M.Maire
// 21-06-96, SetCuts implementation, M.Maire
// 17-09-96, Dynamic array PartialSumSigma
// split ComputeBindingEnergy(), M.Maire
// 08-01-97, crossection table + meanfreepath table, M.Maire
// 13-03-97, adapted for the new physics scheme, M.Maire
// ------------------------------------------------------------
#ifndef G4LowEnergyUtilities_h
#define G4LowEnergyUtilities_h 1
@@ -92,7 +82,7 @@ inline G4int G4LowEnergyUtilities::FindBinLocation(const G4double arg, const G4D
} while (lowerBound <= upperBound);
return upperBound;
};
}
inline G4double G4LowEnergyUtilities::DataLogInterpolation(const G4double Argument,
@@ -116,7 +106,7 @@ inline G4double G4LowEnergyUtilities::DataLogInterpolation(const G4double Argume
theVal = pow(10,theVal);
return theVal;
};
}
inline G4int G4LowEnergyUtilities::FindBinLocation(const G4double arg,
const G4PhysicsVector* vec){
@@ -1,95 +0,0 @@
// This code implementation is the intellectual property of
// 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.
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4VDataFile
//
// Author: Alessandra Forti (Alessandra.Forti@cern.ch)
//
// Creation date: 2 February 1999
//
// Modifications:
//
// -------------------------------------------------------------------
#ifndef G4VDataFile_hh
#define G4VDataFile_hh
// Other Class Headers
#include "globals.hh"
#include "G4Data.hh"
// C++ Headers
#include <fstream.h>
class G4VDataFile{
public:
// Constructors
G4VDataFile(const G4String& file);
// Destructor
~G4VDataFile();
// Member Functions
void OpenFile();
void CloseFile();
void Eof();
G4bool IsOpen();
void SeekPos(streampos);
streampos TellPos();
void GetLine();
G4int LineLength();
char* GetBuf();
virtual G4bool FindTheProcess() = 0;
virtual G4bool FindTheElement(G4int) = 0;
virtual G4bool FindOneElemProc(G4int& subsh) = 0;
virtual void GetDataValues(G4Data& valList) = 0;
protected:
// Member Functions
void SetBufferSize(G4int);
private:
const G4String& _filename; // data file name
ifstream _istr;
G4int _bufSize;
char* buf;
};
#endif // G4VDataFile
@@ -1,61 +0,0 @@
// This code implementation is the intellectual property of
// 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.
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4VTables
//
// Author: Alessandra Forti (Alessandra.Forti@cern.ch)
//
// Creation date: 2 February 1999
//
// Modifications:
//
// -------------------------------------------------------------------
#ifndef G4VTables_hh
#define G4VTables_hh
#include "globals.hh"
#include "G4SecondLevel.hh"
class G4VTables{
public:
// Constructors
G4VTables();
// Destructor
~G4VTables();
// Member Functions
// search the data table in the file
virtual void FillDataTable() = 0;
virtual G4SecondLevel* FillTheTable(G4int nemEl = 0) = 0;
protected:
private:
};
#endif // G4VTables
@@ -78,15 +78,7 @@ protected:
const G4ParticleDefinition& aParticleType,
G4double KineticEnergy,
G4double AtomicNumber);
//--------------------------------------------------------start
virtual G4double ComputeBarkasTerm(
const G4Material* material,
const G4double KinEnergy,
const G4double PartMass);
//Function to compute the Barkas term
//---------------------------------------------------------end
public: // With description
void SetStoppingPowerTableName(const G4String& dedxTable);
@@ -99,22 +91,28 @@ public: // With description
// This method switch off calculation of the nuclear stopping power.
void SetAntiProtonStoppingOn();
// This method switch on calculation of the loss table for antiproton
// using antiproron formulation (down to 100 keV).
// This method switch on calculation of the Barkas Effect for antiproton
void SetAntiProtonStoppingOff();
// This method switch off calculation of the loss table for antiproton
// using antiproron formulation (down to 100 keV).
// This method switch on calculation of the Barkas Effect for antiproton
G4double GetParametrisedLoss(const G4Material* material,
const G4double KinEnergy,
const G4double DeltaRayCutNow,
const G4double PartMass,
const G4double PartCharge);
virtual G4double GetParametrisedLoss(G4Material* aMaterial,
const G4double KinEnergy,
const G4double DeltaRayCutNow);
// This method returns parametrised energy loss.
// NEW**** modified totake account of the Barkas correction
G4double GetPreciseDEDX(G4Material* aMaterial,
const G4double KinEnergy,
const G4ParticleDefinition* aParticleType);
// This method returns electron ionisation energy loss for any energy.
G4double GetNuclearDEDX(G4Material* aMaterial,
const G4double KinEnergy,
const G4ParticleDefinition* aParticleType);
// This method returns nuclear energy loss.
G4double GetBetheBlochLoss(const G4Material* material, const G4double KinEnergy,
G4double GetBetheBlochLoss(const G4Material* material,
const G4double KinEnergy,
const G4double DeltaRayCutNow);
// This method returns energy loss calculated via Bethe-Bloch formula.
@@ -205,6 +203,17 @@ public: // With description
// The Stopping and Range of Ions in Matter,
// Vol.1, Pergamon Press, 1985
G4double ComputeBarkasTerm(const G4Material* material, const G4double KinEnergy);
// Function to compute the Barkas term
G4double GetConstraints(const G4DynamicParticle *aParticle,
G4Material *aMaterial);
// Function to determine StepLimit
G4VParticleChange* AlongStepDoIt(const G4Track& trackData ,
const G4Step& stepData );
// Function to determine total energy deposition on the step
private:
// hide assignment operator
@@ -234,8 +243,9 @@ protected:
const G4double Factor;
const G4double bg2lim;
const G4double taulim; // energy to start to switch off shell corrections
G4double RateMass;
G4double MassRatio;
G4double RateMass; // m_e/M
G4double MassRatio; // m_p/M
G4ParticleDefinition* theParticle;
// particles , cuts in kinetic energy ........
const G4Electron* theElectron;
@@ -37,14 +37,14 @@ public: // Without description
~G4ionLowEnergyIonisation();
G4double GetIonParametrisedLoss(const G4Material* material, const G4double KinEnergy,
const G4double DeltaRayCutNow);
G4double GetIonBetheBlochLoss(const G4Material* material, const G4double KinEnergy,
const G4double DeltaRayCutNow);
// G4double GetIonParametrisedLoss(const G4Material* material, const G4double KinEnergy,
// const G4double DeltaRayCutNow);
// G4double GetIonBetheBlochLoss(const G4Material* material, const G4double KinEnergy,
// const G4double DeltaRayCutNow);
G4double GetLowEnergyForParametrisation(const G4Material* material);
void PrintInfoDefinition();
public: // With description
@@ -60,26 +60,20 @@ private:
// private data members ...............................
G4double GetConstraints(const G4DynamicParticle *aParticle,
G4Material *aMaterial);
// G4double GetConstraints(const G4DynamicParticle *aParticle,
// G4Material *aMaterial);
G4double GetIonLossWithFluct(const G4DynamicParticle *aParticle,
G4Material *aMaterial,
G4double MeanLoss) ;
G4VParticleChange* AlongStepDoIt(const G4Track& track ,const G4Step& Step);
G4ParticleDefinition* theIon;
// G4VParticleChange* AlongStepDoIt(const G4Track& track ,const G4Step& Step);
protected:
// protected data members ...............................
};
//#include "G4ionLowEnergyIonisation.icc"
#endif