Import Geant4 9.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:37:50 +02:00
parent a8e9364cea
commit 96c8bcd0af
6923 changed files with 198390 additions and 41849 deletions
@@ -37,6 +37,7 @@
//
// Modifications:
// 08-04-05 Major optimisation of internal interfaces (V.Ivantchenko)
// 26-09-07 Fixed tmax computation (V.Ivantchenko)
//
//
// Class Description:
@@ -54,6 +55,7 @@
#include "G4VEmModel.hh"
#include "globals.hh"
#include "G4VEmFluctuationModel.hh"
#include "G4PAIySection.hh"
class G4PhysicsLogVector;
class G4PhysicsTable;
@@ -104,14 +106,15 @@ public:
void DefineForRegion(const G4Region* r) ;
void ComputeSandiaPhotoAbsCof();
void BuildPAIonisationTable(const G4ParticleDefinition*);
void BuildLambdaVector(const G4MaterialCutsCouple* matCutsCouple);
void BuildPAIonisationTable();
void BuildLambdaVector();
G4double GetdNdxCut( G4int iPlace, G4double transferCut);
G4double GetdEdxCut( G4int iPlace, G4double transferCut);
G4double GetPostStepTransfer( G4double scaledTkin );
G4double GetEnergyTransfer( G4int iPlace,
G4double position,
G4int iTransfer );
G4double position,
G4int iTransfer );
void SetVerboseLevel(G4int verbose){fVerbose=verbose;};
@@ -139,6 +142,7 @@ private:
G4int fTotBin;
G4int fMeanNumber;
G4PhysicsLogVector* fParticleEnergyVector ;
G4PAIySection fPAIySection;
// vectors
@@ -151,6 +155,10 @@ private:
std::vector<const G4MaterialCutsCouple*> fMaterialCutsCoupleVector;
std::vector<const G4Region*> fPAIRegionVector;
const G4MaterialCutsCouple* fCutCouple;
const G4Material* fMaterial;
G4double fDeltaCutInKinEnergy;
size_t fMatIndex ;
G4double** fSandiaPhotoAbsCof ;
G4int fSandiaIntervalNumber ;
@@ -158,13 +166,15 @@ private:
G4PhysicsLogVector* fdEdxVector ;
std::vector<G4PhysicsLogVector*> fdEdxTable ;
G4PhysicsLogVector* fLambdaVector ;
std::vector<G4PhysicsLogVector*> fLambdaTable ;
G4PhysicsLogVector* fLambdaVector ;
std::vector<G4PhysicsLogVector*> fLambdaTable ;
G4PhysicsLogVector* fdNdxCutVector ;
std::vector<G4PhysicsLogVector*> fdNdxCutTable ;
G4PhysicsLogVector* fdNdxCutVector ;
std::vector<G4PhysicsLogVector*> fdNdxCutTable ;
const G4ParticleDefinition* fParticle;
const G4ParticleDefinition* fElectron;
const G4ParticleDefinition* fPositron;
G4ParticleChangeForLoss* fParticleChange;
G4double fMass;
@@ -177,18 +187,24 @@ private:
G4double fBg2lim;
G4double fTaulim;
G4double fQc;
G4bool isInitialised;
};
/////////////////////////////////////////////////////////////////////
inline G4double G4PAIModel::MaxSecondaryEnergy( const G4ParticleDefinition*,
inline G4double G4PAIModel::MaxSecondaryEnergy( const G4ParticleDefinition* p,
G4double kinEnergy)
{
G4double gamma= kinEnergy/fMass + 1.0;
G4double tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) /
(1. + 2.0*gamma*fRatio + fRatio*fRatio);
G4double tmax = kinEnergy;
if(p == fElectron) tmax *= 0.5;
else if(p != fPositron) {
G4double mass = p->GetPDGMass();
G4double ratio= electron_mass_c2/mass;
G4double gamma= kinEnergy/mass + 1.0;
tmax = 2.0*electron_mass_c2*(gamma*gamma - 1.) /
(1. + 2.0*gamma*ratio + ratio*ratio);
}
return tmax;
}