#include <G4KokoulinMuonNuclearXS.hh>
|
| G4KokoulinMuonNuclearXS () |
|
virtual | ~G4KokoulinMuonNuclearXS () |
|
G4bool | IsElementApplicable (const G4DynamicParticle *particle, G4int Z, const G4Material *) |
|
G4double | GetElementCrossSection (const G4DynamicParticle *particle, G4int Z, const G4Material *) |
|
void | BuildCrossSectionTable () |
|
G4double | ComputeDDMicroscopicCrossSection (G4double incidentKE, G4double, G4double AtomicWeight, G4double epsilon) |
|
| G4VCrossSectionDataSet (const G4String &nam="") |
|
virtual | ~G4VCrossSectionDataSet () |
|
virtual G4bool | IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=0, const G4Material *mat=0) |
|
G4double | GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
G4double | ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
virtual G4double | GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0) |
|
virtual G4Isotope * | SelectIsotope (const G4Element *, G4double kinEnergy) |
|
virtual void | BuildPhysicsTable (const G4ParticleDefinition &) |
|
virtual void | DumpPhysicsTable (const G4ParticleDefinition &) |
|
virtual void | CrossSectionDescription (std::ostream &) const |
|
virtual G4int | GetVerboseLevel () const |
|
virtual void | SetVerboseLevel (G4int value) |
|
G4double | GetMinKinEnergy () const |
|
void | SetMinKinEnergy (G4double value) |
|
G4double | GetMaxKinEnergy () const |
|
void | SetMaxKinEnergy (G4double value) |
|
const G4String & | GetName () const |
|
Definition at line 55 of file G4KokoulinMuonNuclearXS.hh.
G4KokoulinMuonNuclearXS::G4KokoulinMuonNuclearXS |
( |
| ) |
|
G4KokoulinMuonNuclearXS::~G4KokoulinMuonNuclearXS |
( |
| ) |
|
|
virtual |
void G4KokoulinMuonNuclearXS::BuildCrossSectionTable |
( |
| ) |
|
Definition at line 71 of file G4KokoulinMuonNuclearXS.cc.
References G4PhysicsVector::Energy(), G4Element::GetElementTable(), G4Element::GetNumberOfElements(), G4PhysicsTable::insertAt(), and G4PhysicsVector::PutValue().
Referenced by G4KokoulinMuonNuclearXS().
85 for (
G4int j = 0; j < nEl; j++) {
87 HighestKineticEnergy, TotBin);
88 AtomicNumber = (*theElementTable)[j]->GetZ();
89 AtomicWeight = (*theElementTable)[j]->GetA();
91 for (
G4int i = 0; i <= TotBin; ++i) {
92 lowEdgeEnergy = ptrVector->
Energy(i);
93 Value = ComputeMicroscopicCrossSection(lowEdgeEnergy,
94 AtomicNumber, AtomicWeight);
98 theCrossSectionTable->
insertAt(j, ptrVector);
102 for (
G4int j = 0; j < nEl; j++) {
103 G4int ZZ =
G4int((*theElementTable)[j]->GetZ());
static size_t GetNumberOfElements()
void PutValue(size_t index, G4double theValue)
G4double Energy(size_t index) const
void insertAt(size_t, G4PhysicsVector *)
std::vector< G4Element * > G4ElementTable
static G4ElementTable * GetElementTable()
Definition at line 154 of file G4KokoulinMuonNuclearXS.cc.
References test::a, python.hepunit::fine_structure_const, g(), G4ParticleDefinition::GetPDGMass(), python.hepunit::GeV, python.hepunit::microbarn, python.hepunit::mole, G4MuonMinus::MuonMinus(), python.hepunit::pi, python.hepunit::proton_mass_c2, and test::v.
167 G4double TotalEnergy = KineticEnergy + ParticleMass;
172 (epsilon <= CutFixed) )
return DCrossSection;
176 G4double aeff = 0.22*a+0.78*std::exp(0.89*std::log(a));
182 G4double mass2 = ParticleMass*ParticleMass;
184 G4double up = TotalEnergy*TotalEnergy*v1/mass2*(1.+mass2*v2/(alam2*v1));
187 DCrossSection = coeffn*aeff*sigph/epsilon*
188 (-v1+(v1+0.5*v2*(1.+2.*mass2/alam2))*std::log(up/down));
190 if (DCrossSection < 0.) DCrossSection = 0.;
191 return DCrossSection;
G4double GetPDGMass() const
static G4MuonMinus * MuonMinus()
The documentation for this class was generated from the following files: