Import Geant4 8.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:07:44 +02:00
parent fe73f43734
commit 75c7fd177d
764 changed files with 45230 additions and 95238 deletions
@@ -27,6 +27,8 @@
// based on Barashenkov parametrisations of pion data
//
// 16.08.06 V.Ivanchenko - first implementation
// 22.01.07 V.Ivanchenko - add cross section interfaces with Z and A
// 05.03.07 V.Ivanchenko - add IfZAApplicable
//
@@ -49,18 +51,34 @@ public:
virtual ~G4UPiNuclearCrossSection();
virtual
G4bool IsApplicable(const G4DynamicParticle* aParticle,
const G4Element* anElement);
virtual
G4bool IsZAApplicable(const G4DynamicParticle* aParticle,
G4double Z, G4double A);
virtual
G4double GetCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement, G4double);
const G4Element* anElement, G4double T=0.);
virtual
G4double GetIsoZACrossSection(const G4DynamicParticle* aParticle,
G4double Z, G4double A, G4double T=0.);
G4double GetElasticCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement);
G4double GetElasticCrossSection(const G4DynamicParticle* aParticle,
G4double Z, G4double A);
G4double GetInelasticCrossSection(const G4DynamicParticle* aParticle,
const G4Element* anElement);
G4double GetInelasticCrossSection(const G4DynamicParticle* aParticle,
G4double Z, G4double A);
void BuildPhysicsTable(const G4ParticleDefinition&);
void DumpPhysicsTable(const G4ParticleDefinition&);
@@ -94,17 +112,45 @@ private:
inline G4bool G4UPiNuclearCrossSection::IsApplicable(
const G4DynamicParticle* part,
const G4Element* elm)
{
return IsZAApplicable(part, elm->GetZ(), elm->GetN());
}
inline G4bool G4UPiNuclearCrossSection::IsZAApplicable(
const G4DynamicParticle* part,
G4double Z, G4double)
{
return ((part->GetDefinition() == piMinus ||
part->GetDefinition() == piPlus) &&
elm->GetZ() > 1.5);
Z > 1.5);
}
inline G4double G4UPiNuclearCrossSection::GetCrossSection(
const G4DynamicParticle* dp,
const G4Element* elm, G4double)
{
return GetInelasticCrossSection(dp, elm);
return GetInelasticCrossSection(dp, elm->GetZ(), elm->GetN());
}
inline G4double G4UPiNuclearCrossSection::GetIsoZACrossSection(
const G4DynamicParticle* dp,
G4double Z, G4double A, G4double)
{
return GetInelasticCrossSection(dp, Z, A);
}
inline G4double G4UPiNuclearCrossSection::GetInelasticCrossSection(
const G4DynamicParticle* dp,
const G4Element* elm)
{
return GetInelasticCrossSection(dp, elm->GetZ(), elm->GetN());
}
inline G4double G4UPiNuclearCrossSection::GetElasticCrossSection(
const G4DynamicParticle* dp,
const G4Element* elm)
{
return GetElasticCrossSection(dp, elm->GetZ(), elm->GetN());
}
#endif