#include <G4KokoulinMuonNuclearXS.hh>
|
| G4KokoulinMuonNuclearXS () |
|
virtual | ~G4KokoulinMuonNuclearXS () |
|
virtual void | CrossSectionDescription (std::ostream &) const |
|
G4bool | IsElementApplicable (const G4DynamicParticle *particle, G4int Z, const G4Material *) |
|
G4double | GetElementCrossSection (const G4DynamicParticle *particle, G4int Z, const G4Material *) |
|
void | BuildPhysicsTable (const G4ParticleDefinition &) |
|
void | BuildCrossSectionTable () |
|
G4double | ComputeDDMicroscopicCrossSection (G4double incidentKE, G4double Z, G4double A, 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 | DumpPhysicsTable (const G4ParticleDefinition &) |
|
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 53 of file G4KokoulinMuonNuclearXS.hh.
G4KokoulinMuonNuclearXS::G4KokoulinMuonNuclearXS |
( |
| ) |
|
Definition at line 59 of file G4KokoulinMuonNuclearXS.cc.
61 LowestKineticEnergy(1*
GeV), HighestKineticEnergy(1*
PeV),
62 TotBin(60), CutFixed(0.2*
GeV), isInitialized(
false), isMaster(
false)
G4VCrossSectionDataSet(const G4String &nam="")
static const char * Default_Name()
static constexpr double PeV
static constexpr double GeV
G4KokoulinMuonNuclearXS::~G4KokoulinMuonNuclearXS |
( |
| ) |
|
|
virtual |
void G4KokoulinMuonNuclearXS::BuildCrossSectionTable |
( |
| ) |
|
Definition at line 108 of file G4KokoulinMuonNuclearXS.cc.
117 for (
G4int j = 0; j < nEl; j++) {
118 Z =
G4lrint((*theElementTable)[j]->GetZ());
120 if(Z <
MAXZMUN && !theCrossSection[Z]) {
122 HighestKineticEnergy,
124 for (
G4int i = 0; i <= TotBin; ++i) {
125 energy = theCrossSection[
Z]->
Energy(i);
126 Value = ComputeMicroscopicCrossSection(energy, A);
static G4NistManager * Instance()
double A(double temperature)
static size_t GetNumberOfElements()
void PutValue(size_t index, G4double theValue)
G4double Energy(size_t index) const
G4double energy(const ThreeVector &p, const G4double m)
G4double GetAtomicMassAmu(const G4String &symb) const
std::vector< G4Element * > G4ElementTable
static G4ElementTable * GetElementTable()
Definition at line 179 of file G4KokoulinMuonNuclearXS.cc.
191 G4double TotalEnergy = KineticEnergy + ParticleMass;
196 (
epsilon <= CutFixed) ) {
return DCrossSection; }
205 G4double mass2 = ParticleMass*ParticleMass;
207 G4double up = TotalEnergy*TotalEnergy*v1/mass2*(1.+mass2*v2/(alam2*v1));
210 DCrossSection = coeffn*aeff*sigph/
epsilon*
211 (-v1+(v1+0.5*v2*(1.+2.*mass2/alam2))*
G4Log(up/down));
213 if (DCrossSection < 0.) { DCrossSection = 0.; }
214 return DCrossSection;
static constexpr double proton_mass_c2
double A(double temperature)
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4double GetPDGMass() const
static constexpr double GeV
static G4MuonMinus * MuonMinus()
static constexpr double pi
static constexpr double fine_structure_const
double epsilon(double density, double temperature)
static constexpr double microbarn
void G4KokoulinMuonNuclearXS::CrossSectionDescription |
( |
std::ostream & |
outFile | ) |
const |
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 77 of file G4KokoulinMuonNuclearXS.cc.
79 outFile <<
"G4KokoulinMuonNuclearXS provides the total inelastic\n"
80 <<
"cross section for mu- and mu+ interactions with nuclei.\n"
81 <<
"R. Kokoulin's approximation of the Borog and Petrukhin double\n"
82 <<
"differential cross section at high energy and low Q**2 is integrated\n"
83 <<
"over the muon energy loss to get the total cross section as a\n"
84 <<
"function of muon kinetic energy\n" ;
static const char* G4KokoulinMuonNuclearXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
The documentation for this class was generated from the following files: