Import Geant4 7.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 11:11:55 +02:00
parent e083ffb441
commit 516dbf1a58
5914 changed files with 202605 additions and 71141 deletions
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4MuBetheBlochModel.hh,v 1.9 2004/02/10 18:07:23 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-01 $
// $Id: G4MuBetheBlochModel.hh,v 1.10 2004/10/25 13:32:52 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -63,7 +63,7 @@ public:
G4MuBetheBlochModel(const G4ParticleDefinition* p = 0, const G4String& nam = "MuBetheBloch");
~G4MuBetheBlochModel();
virtual ~G4MuBetheBlochModel();
void Initialise(const G4ParticleDefinition*, const G4DataVector&);
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4MuBremsstrahlung.hh,v 1.21 2004/05/07 16:47:15 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4MuBremsstrahlung.hh,v 1.24 2004/11/10 08:49:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -47,6 +47,8 @@
// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko)
// 21-01-04 Migrade to G4ParticleChangeForLoss (V.Ivanchenko)
// 10-02-04 Add lowestKinEnergy (V.Ivanchenko)
// 17-08-04 Rename the process "Mu" -> "mu" (V.Ivanchenko)
// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko)
//
// Class Description:
//
@@ -64,20 +66,22 @@
#include "globals.hh"
#include "G4VEnergyLossProcess.hh"
#include "G4VEmModel.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
class G4ParticleDefinition;
class G4MuBremsstrahlung : public G4VEnergyLossProcess
{
public:
G4MuBremsstrahlung(const G4String& processName = "MuBrems");
G4MuBremsstrahlung(const G4String& processName = "muBrems");
~G4MuBremsstrahlung();
virtual ~G4MuBremsstrahlung();
G4bool IsApplicable(const G4ParticleDefinition& p)
{return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);};
G4bool IsApplicable(const G4ParticleDefinition& p);
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
const G4Material*, G4double cut);
@@ -86,7 +90,7 @@ public:
const G4Step&,
G4double&,
G4double&,
G4double&) {return 0;};
G4double&);
virtual void SecondariesPostStep(
G4VEmModel*,
@@ -100,15 +104,13 @@ public:
protected:
const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p);
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
const G4ParticleDefinition*);
virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle);
private:
void InitialiseProcess();
G4MuBremsstrahlung & operator=(const G4MuBremsstrahlung &right);
G4MuBremsstrahlung(const G4MuBremsstrahlung&);
@@ -116,12 +118,28 @@ private:
const G4ParticleDefinition* theBaseParticle;
G4double lowestKinEnergy;
G4bool isInitialised;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4bool G4MuBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)
{
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline std::vector<G4Track*>* G4MuBremsstrahlung::SecondariesAlongStep(
const G4Step&, G4double&, G4double&, G4double&)
{
return 0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4double G4MuBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,
const G4Material*,
G4double)
@@ -138,8 +156,6 @@ inline G4double G4MuBremsstrahlung::MaxSecondaryEnergy(const G4DynamicParticle*
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#include "G4VEmModel.hh"
inline void G4MuBremsstrahlung::SecondariesPostStep(
G4VEmModel* model,
const G4MaterialCutsCouple* couple,
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4MuBremsstrahlung52.hh,v 1.1 2003/08/08 11:28:39 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4MuBremsstrahlung52.hh,v 1.2 2004/11/10 08:49:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//--------------- G4MuBremsstrahlung52 physics process ------------------
// by Laszlo Urban, September 1997
@@ -32,6 +32,7 @@
// 29-10-01 all static functions no more inlined (mma)
// 16-01-03 Migrade to cut per region (V.Ivanchenko)
// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko)
// 08-11-04 Remove interface of Store/Retrieve tables (V.Ivantchenko)
//------------------------------------------------------------------------------
#ifndef G4MuBremsstrahlung52_h
@@ -85,16 +86,6 @@ class G4MuBremsstrahlung52 : public G4VMuEnergyLoss
G4double AtomicMass,
G4double GammaEnergy);
G4bool StorePhysicsTable(G4ParticleDefinition* ,
const G4String& directory, G4bool);
// store eLoss and MeanFreePath tables into an external file
// specified by 'directory' (must exist before invokation)
G4bool RetrievePhysicsTable(G4ParticleDefinition* ,
const G4String& directory, G4bool);
// retrieve eLoss and MeanFreePath tables from an external file
// specified by 'directory'
protected:
G4double ComputeMeanFreePath( const G4ParticleDefinition* ParticleType,
@@ -173,3 +164,4 @@ class G4MuBremsstrahlung52 : public G4VMuEnergyLoss
#include "G4MuBremsstrahlung52.icc"
#endif
@@ -22,7 +22,7 @@
//
//
// $Id: G4MuBremsstrahlung52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//--------------- G4MuBremsstrahlung52 physics process ------------------
// by Laszlo Urban, September 1997
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4MuBremsstrahlungModel.hh,v 1.9 2004/02/10 18:07:23 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-01 $
// $Id: G4MuBremsstrahlungModel.hh,v 1.10 2004/10/25 13:32:52 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -64,7 +64,7 @@ public:
G4MuBremsstrahlungModel(const G4ParticleDefinition* p = 0, const G4String& nam = "MuBrem");
~G4MuBremsstrahlungModel();
virtual ~G4MuBremsstrahlungModel();
void Initialise(const G4ParticleDefinition*, const G4DataVector&);
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4MuIonisation.hh,v 1.21 2004/05/07 16:47:15 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4MuIonisation.hh,v 1.25 2004/12/02 08:20:37 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
// -------------------------------------------------------------------
//
@@ -56,6 +56,8 @@
// 08-08-03 STD substitute standard (V.Ivanchenko)
// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko)
// 21-01-04 Migrade to G4ParticleChangeForLoss (V.Ivanchenko)
// 17-08-04 Rename the process "Mu" -> "mu" (V.Ivanchenko)
// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko)
//
// Class Description:
//
@@ -82,12 +84,11 @@ class G4MuIonisation : public G4VEnergyLossProcess
public:
G4MuIonisation(const G4String& name = "MuIoni");
G4MuIonisation(const G4String& name = "muIoni");
~G4MuIonisation();
virtual ~G4MuIonisation();
G4bool IsApplicable(const G4ParticleDefinition& p)
{return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);};
G4bool IsApplicable(const G4ParticleDefinition& p);
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
const G4Material*, G4double cut);
@@ -112,14 +113,13 @@ public:
protected:
const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p);
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
const G4ParticleDefinition*);
virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dynParticle);
private:
void InitialiseProcess();
// hide assignment operator
G4MuIonisation & operator=(const G4MuIonisation &right);
G4MuIonisation(const G4MuIonisation&);
@@ -138,12 +138,19 @@ private:
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4bool G4MuIonisation::IsApplicable(const G4ParticleDefinition& p)
{
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4double G4MuIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,
const G4Material*,
G4double cut)
{
G4double x = 0.5*cut/electron_mass_c2;
G4double g = x*ratio + sqrt((1. + x)*(1. + x*ratio*ratio));
G4double g = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio));
return mass*(g - 1.0);
}
@@ -21,11 +21,11 @@
// ********************************************************************
//
//
// $Id: G4MuIonisation52.hh,v 1.1 2003/08/08 11:28:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4MuIonisation52.hh,v 1.2 2004/11/10 08:49:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// --------------- G4MuIonisation52 physics process ------------------------------
// by Laszlo Urban, September 1997
// by Laszlo Urban, September 1997
// -----------------------------------------------------------------------------
//
// 10-02-00 modifications , new e.m. structure, L.Urban
@@ -35,6 +35,7 @@
// 29-10-01 all static functions no more inlined (mma)
// 16-01-03 Migrade to cut per region (V.Ivanchenko)
// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko)
// 08-11-04 Remove interface of Store/Retrieve tables (V.Ivantchenko)
//
// -----------------------------------------------------------------------------
@@ -81,16 +82,6 @@ class G4MuIonisation52 : public G4VMuEnergyLoss
// build mean free path tables for the delta rays production.
// the tables are built for every materials.
G4bool StorePhysicsTable(G4ParticleDefinition* ,
const G4String& directory, G4bool);
// store eLoss and MeanFreePath tables into an external file
// specified by 'directory' (must exist before invokation)
G4bool RetrievePhysicsTable(G4ParticleDefinition* ,
const G4String& directory, G4bool);
// retrieve eLoss and MeanFreePath tables from an external file
// specified by 'directory'
virtual void PrintInfoDefinition();
// Print few lines of informations about the process: validity range,
// origine ..etc..
@@ -22,7 +22,7 @@
//
//
// $Id: G4MuIonisation52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
// GEANT 4 class inlined methods file
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4MuPairProduction.hh,v 1.21 2004/05/07 16:47:16 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4MuPairProduction.hh,v 1.24 2004/11/10 08:49:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -48,6 +48,8 @@
// 12-11-03 G4EnergyLossSTD -> G4EnergyLossProcess (V.Ivanchenko)
// 21-01-04 Migrade to G4ParticleChangeForLoss (V.Ivanchenko)
// 28-04-04 Fix minor bug in energy balance (V.Ivanchenko)
// 17-08-04 Rename the process "Mu" -> "mu" (V.Ivanchenko)
// 08-11-04 Migration to new interface of Store/Retrieve tables (V.Ivantchenko)
//
// Class Description:
//
@@ -73,12 +75,11 @@ class G4MuPairProduction : public G4VEnergyLossProcess
{
public:
G4MuPairProduction(const G4String& processName = "MuPairProd");
G4MuPairProduction(const G4String& processName = "muPairProd");
~G4MuPairProduction();
virtual ~G4MuPairProduction();
G4bool IsApplicable(const G4ParticleDefinition& p)
{return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);};
G4bool IsApplicable(const G4ParticleDefinition& p);
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
const G4Material*, G4double cut);
@@ -95,7 +96,7 @@ public:
const G4DynamicParticle*,
G4double&,
G4double&);
void SetSubCutoff(G4bool val);
void PrintInfoDefinition();
@@ -103,13 +104,13 @@ public:
protected:
const G4ParticleDefinition* DefineBaseParticle(const G4ParticleDefinition* p);
virtual G4double MaxSecondaryEnergy(const G4DynamicParticle* dp);
private:
void InitialiseProcess();
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
const G4ParticleDefinition*);
private:
G4MuPairProduction & operator=(const G4MuPairProduction &right);
@@ -120,12 +121,20 @@ private:
G4double lowestKinEnergy;
G4bool subCutoff;
G4bool isInitialised;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4bool G4MuPairProduction::IsApplicable(const G4ParticleDefinition& p)
{
return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline G4double G4MuPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,
const G4Material*,
G4double)
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4MuPairProduction52.hh,v 1.1 2003/08/08 11:28:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4MuPairProduction52.hh,v 1.2 2004/11/10 08:49:09 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//--------------- G4MuPairProduction52 physics process ------------------
// by Laszlo Urban, May 1998
@@ -32,6 +32,7 @@
// 29-10-01 all static functions no more inlined (mma)
// 16-01-03 Migrade to cut per region (V.Ivanchenko)
// 08-08-03 This class is frozen at the release 5.2 (V.Ivanchenko)
// 08-11-04 Remove interface of Store/Retrieve tables (V.Ivantchenko)
//------------------------------------------------------------------------------
#ifndef G4MuPairProduction52_h
@@ -84,16 +85,6 @@ class G4MuPairProduction52 : public G4VMuEnergyLoss
G4double AtomicNumber,
G4double PairEnergy);
G4bool StorePhysicsTable(G4ParticleDefinition* ,
const G4String& directory, G4bool);
// store eLoss and MeanFreePath tables into an external file
// specified by 'directory' (must exist before invokation)
G4bool RetrievePhysicsTable(G4ParticleDefinition* ,
const G4String& directory, G4bool);
// retrieve eLoss and MeanFreePath tables from an external file
// specified by 'directory'
protected:
G4double ComputeMeanFreePath(const G4ParticleDefinition* ParticleType,
@@ -140,7 +131,7 @@ class G4MuPairProduction52 : public G4VMuEnergyLoss
protected:
virtual G4double SecondaryEnergyThreshold(size_t index);
private:
G4PhysicsTable* theMeanFreePathTable;
@@ -22,7 +22,7 @@
//
//
// $Id: G4MuPairProduction52.icc,v 1.1 2003/08/08 11:28:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//--------------- G4MuPairProduction52 physics process ------------------
// by Laszlo Urban, May 1998
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4MuPairProductionModel.hh,v 1.12 2004/04/28 14:39:43 vnivanch Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4MuPairProductionModel.hh,v 1.14 2004/12/02 08:20:37 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
// -------------------------------------------------------------------
//
@@ -67,7 +67,7 @@ public:
G4MuPairProductionModel(const G4ParticleDefinition* p = 0, const G4String& nam = "MuPairProd");
~G4MuPairProductionModel();
virtual ~G4MuPairProductionModel();
void Initialise(const G4ParticleDefinition*, const G4DataVector&);
@@ -205,9 +205,9 @@ void G4MuPairProductionModel::SetCurrentElement(G4double Z)
{
if(Z != currentZ) {
currentZ = Z;
z13 = pow(Z,0.333333333);
z13 = std::pow(Z,0.333333333);
z23 = z13*z13;
lnZ = log(Z);
lnZ = std::log(Z);
}
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4VMuEnergyLoss.hh,v 1.9 2003/06/16 17:01:45 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4VMuEnergyLoss.hh,v 1.10 2004/12/02 08:20:37 vnivanch Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
// -------------------------------------------------------------------
// GEANT 4 class header file
//
@@ -204,9 +204,9 @@ class G4VMuEnergyLoss : public G4VEnergyLoss
static G4int NbinEloss; // number of bins in table
static G4double LowerBoundEloss;
static G4double UpperBoundEloss;
static G4double RTable,LOGRTable; // LOGRTable=log(UpperBoundEloss-
static G4double RTable,LOGRTable; // LOGRTable=std::log(UpperBoundEloss-
// LowerBoundEloss)/NbinEloss
// RTable = exp(LOGRTable)
// RTable = std::exp(LOGRTable)
static G4PhysicsTable* themuplusRangeCoeffATable;
static G4PhysicsTable* themuplusRangeCoeffBTable;
@@ -22,7 +22,7 @@
//
//
// $Id: G4VMuEnergyLoss.icc,v 1.4 2003/01/17 18:54:40 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
// ---------------------------------------------------------------
// GEANT 4 class inlined methods file
//