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