Geant4-11
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes
G4MuonMinusBoundDecay Class Reference

#include <G4MuonMinusBoundDecay.hh>

Inheritance diagram for G4MuonMinusBoundDecay:
G4HadronicInteraction

Public Member Functions

void ActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Material *aMaterial)
 
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
void DeActivateFor (const G4Element *anElement)
 
void DeActivateFor (const G4Material *aMaterial)
 
 G4MuonMinusBoundDecay ()
 
virtual std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
 
virtual const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
const G4StringGetModelName () const
 
G4double GetRecoilEnergyThreshold () const
 
G4int GetVerboseLevel () const
 
virtual void InitialiseModel ()
 
virtual G4bool IsApplicable (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
G4bool IsBlocked (const G4Element *anElement) const
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
void ModelDescription (std::ostream &outFile) const
 
G4bool operator!= (const G4HadronicInteraction &right) const =delete
 
G4bool operator== (const G4HadronicInteraction &right) const =delete
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
void SetRecoilEnergyThreshold (G4double val)
 
void SetVerboseLevel (G4int value)
 
 ~G4MuonMinusBoundDecay ()
 

Static Public Member Functions

static G4double GetMuonCaptureRate (G4int Z, G4int A)
 
static G4double GetMuonDecayRate (G4int Z)
 
static G4double GetMuonDecayRate (G4int Z, G4int A, G4double muMass, G4double nuclMass)
 
static G4double GetMuonZeff (G4int Z)
 

Protected Member Functions

void Block ()
 
G4bool IsBlocked () const
 
void SetModelName (const G4String &nam)
 

Protected Attributes

G4bool isBlocked
 
G4double theMaxEnergy
 
G4double theMinEnergy
 
G4HadFinalState theParticleChange
 
G4int verboseLevel
 

Private Member Functions

void AddNewParticle (G4DynamicParticle *dp, G4double time)
 
 G4MuonMinusBoundDecay (const G4MuonMinusBoundDecay &)
 
G4MuonMinusBoundDecayoperator= (const G4MuonMinusBoundDecay &right)
 

Private Attributes

std::pair< G4double, G4doubleepCheckLevels
 
G4double fMuMass
 
G4double recoilEnergyThreshold
 
G4HadronicInteractionRegistryregistry
 
G4HadFinalState result
 
std::vector< const G4Material * > theBlockedList
 
std::vector< const G4Element * > theBlockedListElements
 
std::vector< std::pair< G4double, const G4Material * > > theMaxEnergyList
 
std::vector< std::pair< G4double, const G4Element * > > theMaxEnergyListElements
 
std::vector< std::pair< G4double, const G4Material * > > theMinEnergyList
 
std::vector< std::pair< G4double, const G4Element * > > theMinEnergyListElements
 
G4String theModelName
 

Detailed Description

Definition at line 71 of file G4MuonMinusBoundDecay.hh.

Constructor & Destructor Documentation

◆ G4MuonMinusBoundDecay() [1/2]

G4MuonMinusBoundDecay::G4MuonMinusBoundDecay ( )

Definition at line 66 of file G4MuonMinusBoundDecay.cc.

67 : G4HadronicInteraction("muMinusBoundDeacy")
68{
70}
G4HadronicInteraction(const G4String &modelName="HadronicModel")
static G4MuonMinus * MuonMinus()
Definition: G4MuonMinus.cc:99

References fMuMass, G4ParticleDefinition::GetPDGMass(), and G4MuonMinus::MuonMinus().

◆ ~G4MuonMinusBoundDecay()

G4MuonMinusBoundDecay::~G4MuonMinusBoundDecay ( )

Definition at line 74 of file G4MuonMinusBoundDecay.cc.

75{}

◆ G4MuonMinusBoundDecay() [2/2]

G4MuonMinusBoundDecay::G4MuonMinusBoundDecay ( const G4MuonMinusBoundDecay )
private

Member Function Documentation

◆ ActivateFor() [1/2]

void G4HadronicInteraction::ActivateFor ( const G4Element anElement)
inlineinherited

◆ ActivateFor() [2/2]

void G4HadronicInteraction::ActivateFor ( const G4Material aMaterial)
inlineinherited

◆ AddNewParticle()

void G4MuonMinusBoundDecay::AddNewParticle ( G4DynamicParticle dp,
G4double  time 
)
inlineprivate

Definition at line 110 of file G4MuonMinusBoundDecay.hh.

111{
112 G4HadSecondary hs(dp);
113 hs.SetTime(time);
115}
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)

References G4HadFinalState::AddSecondary(), result, and G4HadSecondary::SetTime().

Referenced by ApplyYourself().

◆ ApplyYourself()

G4HadFinalState * G4MuonMinusBoundDecay::ApplyYourself ( const G4HadProjectile aTrack,
G4Nucleus targetNucleus 
)
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 80 of file G4MuonMinusBoundDecay.cc.

82{
83 result.Clear();
84 G4int Z = targetNucleus.GetZ_asInt();
85 G4int A = targetNucleus.GetA_asInt();
86
87 // Decide on Decay or Capture, and doit.
88 G4double lambdac = GetMuonCaptureRate(Z, A);
89 G4double lambdad = GetMuonDecayRate(Z, A, fMuMass,
90 targetNucleus.AtomicMass(A,Z));
91 G4double lambda = lambdac + lambdad;
92
93 // === sample capture time and change time of projectile
94 // === this is needed for the case when bound decay is not happen
95 // === but muon is capruted by the nucleus with some delay
96
97 G4HadProjectile* p = const_cast<G4HadProjectile*>(&projectile);
99 p->SetGlobalTime(time);
100
101 //G4cout << "lambda= " << lambda << " lambdac= " << lambdac
102 //<< " t= " << time << G4endl;
103
104 // cascade
105 if( G4UniformRand()*lambda < lambdac) {
107
108 } else {
109
110 // Simulation on Decay of mu- on a K-shell of the muonic atom
114 G4double KEnergy = projectile.GetBoundEnergy();
115
116 /*
117 G4cout << "G4MuonMinusBoundDecay::ApplyYourself"
118 << " XMAX= " << xmax << " Ebound= " << KEnergy<< G4endl;
119 */
120 G4double pmu = std::sqrt(KEnergy*(KEnergy + 2.0*fMuMass));
121 G4double emu = KEnergy + fMuMass;
123 G4LorentzVector MU(pmu*dir, emu);
124 G4ThreeVector bst = MU.boostVector();
125
126 G4double Eelect, Pelect, x, ecm;
127 G4LorentzVector EL, NN;
128 // Calculate electron energy
129 // these do/while loops are safe
130 do {
131 do {
132 x = xmin + (xmax-xmin)*G4UniformRand();
133 } while (G4UniformRand() > (3.0 - 2.0*x)*x*x );
134 Eelect = x*fMuMass*0.5;
135 Pelect = 0.0;
136 if(Eelect > electron_mass_c2) {
137 Pelect = std::sqrt(Eelect*Eelect - electron_mass_c2*electron_mass_c2);
138 } else {
139 Pelect = 0.0;
140 Eelect = electron_mass_c2;
141 }
142 dir = G4RandomDirection();
143 EL = G4LorentzVector(Pelect*dir,Eelect);
144 EL.boost(bst);
145 Eelect = EL.e() - electron_mass_c2 - 2.0*KEnergy;
146 //
147 // Calculate rest frame parameters of 2 neutrinos
148 //
149 NN = MU - EL;
150 ecm = NN.mag2();
151 // Loop checking, 06-Aug-2015, Vladimir Ivanchenko
152 } while (Eelect < 0.0 || ecm < 0.0);
153
154 //
155 // Create electron
156 //
158 EL.vect().unit(),
159 Eelect);
160
161 AddNewParticle(dp, time);
162 //
163 // Create Neutrinos
164 //
165 ecm = 0.5*std::sqrt(ecm);
166 bst = NN.boostVector();
167 G4ThreeVector p1 = ecm * G4RandomDirection();
168 G4LorentzVector N1 = G4LorentzVector(p1,ecm);
169 N1.boost(bst);
171 AddNewParticle(dp, time);
172 NN -= N1;
174 AddNewParticle(dp, time);
175 }
176 return &result;
177}
@ isAlive
@ stopAndKill
G4double G4Log(G4double x)
Definition: G4Log.hh:226
CLHEP::HepLorentzVector G4LorentzVector
G4ThreeVector G4RandomDirection()
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
const G4int Z[17]
const G4double A[17]
#define G4UniformRand()
Definition: Randomize.hh:52
Hep3Vector boostVector() const
HepLorentzVector & boost(double, double, double)
static G4AntiNeutrinoE * AntiNeutrinoE()
static G4Electron * Electron()
Definition: G4Electron.cc:93
void SetStatusChange(G4HadFinalStateStatus aS)
void SetGlobalTime(G4double t)
G4double GetGlobalTime() const
static G4double GetMuonDecayRate(G4int Z, G4int A, G4double muMass, G4double nuclMass)
void AddNewParticle(G4DynamicParticle *dp, G4double time)
static G4double GetMuonCaptureRate(G4int Z, G4int A)
static G4NeutrinoMu * NeutrinoMu()
Definition: G4NeutrinoMu.cc:84
G4int GetA_asInt() const
Definition: G4Nucleus.hh:99
G4int GetZ_asInt() const
Definition: G4Nucleus.hh:105
G4double AtomicMass(const G4double A, const G4double Z, const G4int numberOfLambdas=0) const
Definition: G4Nucleus.cc:357
float electron_mass_c2
Definition: hepunit.py:273

References A, AddNewParticle(), G4AntiNeutrinoE::AntiNeutrinoE(), G4Nucleus::AtomicMass(), CLHEP::HepLorentzVector::boost(), CLHEP::HepLorentzVector::boostVector(), G4HadFinalState::Clear(), CLHEP::HepLorentzVector::e(), G4Electron::Electron(), source.hepunit::electron_mass_c2, fMuMass, G4Log(), G4RandomDirection(), G4UniformRand, G4Nucleus::GetA_asInt(), G4HadProjectile::GetBoundEnergy(), G4HadProjectile::GetGlobalTime(), GetMuonCaptureRate(), GetMuonDecayRate(), G4Nucleus::GetZ_asInt(), isAlive, G4InuclParticleNames::lambda, CLHEP::HepLorentzVector::mag2(), G4NeutrinoMu::NeutrinoMu(), result, G4HadProjectile::SetGlobalTime(), G4HadFinalState::SetStatusChange(), stopAndKill, CLHEP::Hep3Vector::unit(), CLHEP::HepLorentzVector::vect(), and Z.

◆ Block()

void G4HadronicInteraction::Block ( )
inlineprotectedinherited

◆ BuildPhysicsTable()

void G4HadronicInteraction::BuildPhysicsTable ( const G4ParticleDefinition )
virtualinherited

◆ DeActivateFor() [1/2]

void G4HadronicInteraction::DeActivateFor ( const G4Element anElement)
inherited

Definition at line 186 of file G4HadronicInteraction.cc.

187{
188 Block();
189 theBlockedListElements.push_back(anElement);
190}
std::vector< const G4Element * > theBlockedListElements

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theBlockedListElements.

◆ DeActivateFor() [2/2]

void G4HadronicInteraction::DeActivateFor ( const G4Material aMaterial)
inherited

Definition at line 180 of file G4HadronicInteraction.cc.

181{
182 Block();
183 theBlockedList.push_back(aMaterial);
184}
std::vector< const G4Material * > theBlockedList

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theBlockedList.

Referenced by G4HadronHElasticPhysics::ConstructProcess().

◆ GetEnergyMomentumCheckLevels()

std::pair< G4double, G4double > G4HadronicInteraction::GetEnergyMomentumCheckLevels ( ) const
virtualinherited

◆ GetFatalEnergyCheckLevels()

const std::pair< G4double, G4double > G4HadronicInteraction::GetFatalEnergyCheckLevels ( ) const
virtualinherited

Reimplemented in G4FissLib, G4LFission, G4LENDFission, G4ParticleHPCapture, G4ParticleHPElastic, G4ParticleHPFission, G4ParticleHPInelastic, and G4ParticleHPThermalScattering.

Definition at line 210 of file G4HadronicInteraction.cc.

211{
212 // default level of Check
213 return std::pair<G4double, G4double>(2.*perCent, 1. * GeV);
214}
static constexpr double perCent
Definition: G4SIunits.hh:325
static constexpr double GeV
Definition: G4SIunits.hh:203

References GeV, and perCent.

Referenced by G4HadronicProcess::CheckResult().

◆ GetMaxEnergy() [1/2]

G4double G4HadronicInteraction::GetMaxEnergy ( ) const
inlineinherited

◆ GetMaxEnergy() [2/2]

G4double G4HadronicInteraction::GetMaxEnergy ( const G4Material aMaterial,
const G4Element anElement 
) const
inherited

Definition at line 131 of file G4HadronicInteraction.cc.

133{
134 if(!IsBlocked()) { return theMaxEnergy; }
135 if( IsBlocked(aMaterial) || IsBlocked(anElement) ) { return 0.0; }
136 if(!theMaxEnergyListElements.empty()) {
137 for(auto const& elmlist : theMaxEnergyListElements) {
138 if( anElement == elmlist.second )
139 { return elmlist.first; }
140 }
141 }
142 if(!theMaxEnergyList.empty()) {
143 for(auto const& matlist : theMaxEnergyList) {
144 if( aMaterial == matlist.second )
145 { return matlist.first; }
146 }
147 }
148 return theMaxEnergy;
149}
std::vector< std::pair< G4double, const G4Material * > > theMaxEnergyList
std::vector< std::pair< G4double, const G4Element * > > theMaxEnergyListElements

References G4HadronicInteraction::IsBlocked(), G4HadronicInteraction::theMaxEnergy, G4HadronicInteraction::theMaxEnergyList, and G4HadronicInteraction::theMaxEnergyListElements.

◆ GetMinEnergy() [1/2]

G4double G4HadronicInteraction::GetMinEnergy ( ) const
inlineinherited

◆ GetMinEnergy() [2/2]

G4double G4HadronicInteraction::GetMinEnergy ( const G4Material aMaterial,
const G4Element anElement 
) const
inherited

Definition at line 81 of file G4HadronicInteraction.cc.

83{
84 if(!IsBlocked()) { return theMinEnergy; }
85 if( IsBlocked(aMaterial) || IsBlocked(anElement) ) { return DBL_MAX; }
86 if(!theMinEnergyListElements.empty()) {
87 for(auto const& elmlist : theMinEnergyListElements) {
88 if( anElement == elmlist.second )
89 { return elmlist.first; }
90 }
91 }
92 if(!theMinEnergyList.empty()) {
93 for(auto const & matlist : theMinEnergyList) {
94 if( aMaterial == matlist.second )
95 { return matlist.first; }
96 }
97 }
98 return theMinEnergy;
99}
std::vector< std::pair< G4double, const G4Element * > > theMinEnergyListElements
std::vector< std::pair< G4double, const G4Material * > > theMinEnergyList
#define DBL_MAX
Definition: templates.hh:62

References DBL_MAX, G4HadronicInteraction::IsBlocked(), G4HadronicInteraction::theMinEnergy, G4HadronicInteraction::theMinEnergyList, and G4HadronicInteraction::theMinEnergyListElements.

◆ GetModelName()

const G4String & G4HadronicInteraction::GetModelName ( ) const
inlineinherited

Definition at line 115 of file G4HadronicInteraction.hh.

116 { return theModelName; }

References G4HadronicInteraction::theModelName.

Referenced by G4MuMinusCapturePrecompound::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4INCLXXInterface::ApplyYourself(), G4TheoFSGenerator::ApplyYourself(), G4HadronStoppingProcess::AtRestDoIt(), G4VHadronPhysics::BuildModel(), G4HadronicProcess::CheckEnergyMomentumConservation(), G4HadronicProcess::CheckResult(), G4ChargeExchangePhysics::ConstructProcess(), G4MuonicAtomDecay::DecayIt(), G4LENDModel::DumpLENDTargetInfo(), G4AblaInterface::G4AblaInterface(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4ExcitedStringDecay::G4ExcitedStringDecay(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LENDorBERTModel::G4LENDorBERTModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4LowEIonFragmentation::G4LowEIonFragmentation(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4INCLXXInterface::GetDeExcitationModelName(), G4EnergyRangeManager::GetHadronicInteraction(), G4VHighEnergyGenerator::GetProjectileNucleus(), G4NeutronRadCapture::InitialiseModel(), G4BinaryCascade::ModelDescription(), G4LMsdGenerator::ModelDescription(), G4VPartonStringModel::ModelDescription(), G4TheoFSGenerator::ModelDescription(), G4VHadronPhysics::NewModel(), G4NeutrinoElectronProcess::PostStepDoIt(), G4HadronicProcess::PostStepDoIt(), G4ElNeutrinoNucleusProcess::PostStepDoIt(), G4HadronElasticProcess::PostStepDoIt(), G4MuNeutrinoNucleusProcess::PostStepDoIt(), G4HadronicProcessStore::PrintModelHtml(), G4BinaryCascade::PropagateModelDescription(), G4HadronicProcessStore::RegisterInteraction(), and G4LENDModel::returnUnchanged().

◆ GetMuonCaptureRate()

G4double G4MuonMinusBoundDecay::GetMuonCaptureRate ( G4int  Z,
G4int  A 
)
static

Definition at line 181 of file G4MuonMinusBoundDecay.cc.

182{
183
184 // Initialize data
185
186 // Mu- capture data from
187 // T. Suzuki, D. F. Measday, J.P. Roalsvig Phys.Rev. C35 (1987) 2212
188 // weighted average of the two most precise measurements
189
190 // Data for Hydrogen from Phys. Rev. Lett. 99(2007)032002
191 // Data for Helium from D.F. Measday Phys. Rep. 354(2001)243
192
193 struct capRate {
194 G4int Z;
195 G4int A;
196 G4double cRate;
197 G4double cRErr;
198 };
199
200 // this struct has to be sorted by Z when initialized as we exit the
201 // loop once Z is above the stored value; cRErr are not used now but
202 // are included for completeness and future use
203
204 static const capRate capRates [] = {
205 { 1, 1, 0.000725, 0.000017 },
206 { 2, 3, 0.002149, 0.00017 },
207 { 2, 4, 0.000356, 0.000026 },
208 { 3, 6, 0.004647, 0.00012 },
209 { 3, 7, 0.002229, 0.00012 },
210 { 4, 9, 0.006107, 0.00019 },
211 { 5, 10, 0.02757 , 0.00063 },
212 { 5, 11, 0.02188 , 0.00064 },
213 { 6, 12, 0.03807 , 0.00031 },
214 { 6, 13, 0.03474 , 0.00034 },
215 { 7, 14, 0.06885 , 0.00057 },
216 { 8, 16, 0.10242 , 0.00059 },
217 { 8, 18, 0.0880 , 0.0015 },
218 { 9, 19, 0.22905 , 0.00099 },
219 { 10, 20, 0.2288 , 0.0045 },
220 { 11, 23, 0.3773 , 0.0014 },
221 { 12, 24, 0.4823 , 0.0013 },
222 { 13, 27, 0.6985 , 0.0012 },
223 { 14, 28, 0.8656 , 0.0015 },
224 { 15, 31, 1.1681 , 0.0026 },
225 { 16, 32, 1.3510 , 0.0029 },
226 { 17, 35, 1.800 , 0.050 },
227 { 17, 37, 1.250 , 0.050 },
228 { 18, 40, 1.2727 , 0.0650 },
229 { 19, 39, 1.8492 , 0.0050 },
230 { 20, 40, 2.5359 , 0.0070 },
231 { 21, 45, 2.711 , 0.025 },
232 { 22, 48, 2.5908 , 0.0115 },
233 { 23, 51, 3.073 , 0.022 },
234 { 24, 50, 3.825 , 0.050 },
235 { 24, 52, 3.465 , 0.026 },
236 { 24, 53, 3.297 , 0.045 },
237 { 24, 54, 3.057 , 0.042 },
238 { 25, 55, 3.900 , 0.030 },
239 { 26, 56, 4.408 , 0.022 },
240 { 27, 59, 4.945 , 0.025 },
241 { 28, 58, 6.11 , 0.10 },
242 { 28, 60, 5.56 , 0.10 },
243 { 28, 62, 4.72 , 0.10 },
244 { 29, 63, 5.691 , 0.030 },
245 { 30, 66, 5.806 , 0.031 },
246 { 31, 69, 5.700 , 0.060 },
247 { 32, 72, 5.561 , 0.031 },
248 { 33, 75, 6.094 , 0.037 },
249 { 34, 80, 5.687 , 0.030 },
250 { 35, 79, 7.223 , 0.28 },
251 { 35, 81, 7.547 , 0.48 },
252 { 37, 85, 6.89 , 0.14 },
253 { 38, 88, 6.93 , 0.12 },
254 { 39, 89, 7.89 , 0.11 },
255 { 40, 91, 8.620 , 0.053 },
256 { 41, 93, 10.38 , 0.11 },
257 { 42, 96, 9.298 , 0.063 },
258 { 45, 103, 10.010 , 0.045 },
259 { 46, 106, 10.000 , 0.070 },
260 { 47, 107, 10.869 , 0.095 },
261 { 48, 112, 10.624 , 0.094 },
262 { 49, 115, 11.38 , 0.11 },
263 { 50, 119, 10.60 , 0.11 },
264 { 51, 121, 10.40 , 0.12 },
265 { 52, 128, 9.174 , 0.074 },
266 { 53, 127, 11.276 , 0.098 },
267 { 55, 133, 10.98 , 0.25 },
268 { 56, 138, 10.112 , 0.085 },
269 { 57, 139, 10.71 , 0.10 },
270 { 58, 140, 11.501 , 0.087 },
271 { 59, 141, 13.45 , 0.13 },
272 { 60, 144, 12.35 , 0.13 },
273 { 62, 150, 12.22 , 0.17 },
274 { 64, 157, 12.00 , 0.13 },
275 { 65, 159, 12.73 , 0.13 },
276 { 66, 163, 12.29 , 0.18 },
277 { 67, 165, 12.95 , 0.13 },
278 { 68, 167, 13.04 , 0.27 },
279 { 72, 178, 13.03 , 0.21 },
280 { 73, 181, 12.86 , 0.13 },
281 { 74, 184, 12.76 , 0.16 },
282 { 79, 197, 13.35 , 0.10 },
283 { 80, 201, 12.74 , 0.18 },
284 { 81, 205, 13.85 , 0.17 },
285 { 82, 207, 13.295 , 0.071 },
286 { 83, 209, 13.238 , 0.065 },
287 { 90, 232, 12.555 , 0.049 },
288 { 92, 238, 12.592 , 0.035 },
289 { 92, 233, 14.27 , 0.15 },
290 { 92, 235, 13.470 , 0.085 },
291 { 92, 236, 13.90 , 0.40 },
292 { 93, 237, 13.58 , 0.18 },
293 { 94, 239, 13.90 , 0.20 },
294 { 94, 242, 12.86 , 0.19 }
295 };
296
297 G4double lambda = -1.;
298
299 size_t nCapRates = sizeof(capRates)/sizeof(capRates[0]);
300 for (size_t j = 0; j < nCapRates; ++j) {
301 if( capRates[j].Z == Z && capRates[j].A == A ) {
302 lambda = capRates[j].cRate / microsecond;
303 break;
304 }
305 // make sure the data is sorted for the next statement to work correctly
306 if (capRates[j].Z > Z) {break;}
307 }
308
309 if (lambda < 0.) {
310
311 // == Mu capture lifetime (Goulard and Primakoff PRC10(1974)2034.
312
313 static const G4double b0a = -0.03;
314 static const G4double b0b = -0.25;
315 static const G4double b0c = 3.24;
316 static const G4double t1 = 875.e-9; // -10-> -9 suggested by user
317 G4double r1 = GetMuonZeff(Z);
318 G4double zeff2 = r1 * r1;
319
320 // ^-4 -> ^-5 suggested by user
321 G4double xmu = zeff2 * 2.663e-5;
322 G4double a2ze = 0.5 *G4double(A) / G4double(Z);
323 G4double r2 = 1.0 - xmu;
324 lambda = t1 * zeff2 * zeff2 * (r2 * r2) * (1.0 - (1.0 - xmu) * .75704) *
325 (a2ze * b0a + 1.0 - (a2ze - 1.0) * b0b -
326 G4double(2 * (A - Z) + std::abs(a2ze - 1.) ) * b0c / G4double(A * 4) );
327
328 }
329
330 return lambda;
331
332}
static constexpr double microsecond
Definition: G4SIunits.hh:140
static G4double GetMuonZeff(G4int Z)

References A, GetMuonZeff(), G4InuclParticleNames::lambda, microsecond, and Z.

Referenced by ApplyYourself().

◆ GetMuonDecayRate() [1/2]

G4double G4MuonMinusBoundDecay::GetMuonDecayRate ( G4int  Z)
static

Definition at line 364 of file G4MuonMinusBoundDecay.cc.

365{
366 G4int A = G4lrint(G4NistManager::Instance()->GetAtomicMassAmu(Z));
367 return GetMuonDecayRate(Z, A, G4MuonMinus::MuonMinus()->GetPDGMass(),
369}
static G4NistManager * Instance()
static G4double GetNuclearMass(const G4double A, const G4double Z)
int G4lrint(double ad)
Definition: templates.hh:134

References A, G4lrint(), GetMuonDecayRate(), G4NucleiProperties::GetNuclearMass(), G4NistManager::Instance(), G4MuonMinus::MuonMinus(), and Z.

◆ GetMuonDecayRate() [2/2]

G4double G4MuonMinusBoundDecay::GetMuonDecayRate ( G4int  Z,
G4int  A,
G4double  muMass,
G4double  nuclMass 
)
static

Definition at line 371 of file G4MuonMinusBoundDecay.cc.

374{
375 // Decay time correction based on
376 // H. C. Von Baeyer and D. Leiter, Phys. Rev. A 19, 1371 (1979).
377 // replacing N.C.Mukhopadhyay Phys. Rep. 30 (1977) 1.
378 // for Z < 14 inspired by report 2049
379 // Lambda(bound)/Lambda(free) = 1-(0.5+0.06*Mu_Mass/NuclMass)(Z*alpha)^2
380
381 // PDG 2012 muon lifetime value is 2.1969811(22) 1e-6s
382 // which when inverted gives 0.45517005 1e+6/s
383
384 // we pass known alraedy in ApplyYourself muon and nucleus masses to
385 // avoid refetching/recalculations
386
387 struct decRate {
388 G4int Z;
389 G4int A;
390 G4double dRate;
391 G4double dRErr;
392 };
393
394 // this struct has to be sorted by Z when initialized as we exit the
395 // loop once Z is above the stored value
396
397 static const decRate decRates [] = {
398 { 0, 0, 0.45517005, 0.00000046 } // free muon
399 };
400
401 G4double lambda = -1.;
402 if (Z == 0 && A == 0) {lambda = decRates[0].dRate/microsecond;} // free muon
403
404 // size_t nDecRates = sizeof(decRates)/sizeof(decRates[0]);
405 // for (size_t j = 0; j < nDecRates; ++j) {
406 // if( decRates[j].Z == Z && decRates[j].A == A ) {
407 // lambda = decRates[j].cRate / microsecond;
408 // break;
409 // }
410 // // make sure the data is sorted for the next statement to work correctly
411 // if (decRates[j].Z > Z) {break;}
412 // }
413
414 // we'll use the above code once we have the data
415 // if we had one value we would just assign it
416 // if (Z == 1 && A == 1) {lambda = decRates[1].dRate/microsecond;}
417
418 if (lambda < 0.) {
419 const G4double freeMuonDecayRate = 0.45517005 / microsecond;
420 lambda = 1.0;
422 if (Z<14) {
423 // using the Phys. Rev. formula
424 lambda -= x * x * (0.5 + 0.06 * muMass/nuclMass);
425 } else {
426 // based on a fit to the data ref. in Phys.Rev. C35 (1987) 2212
427 lambda -= x * x * (0.868699 - x * 0.708985);
428 }
429 lambda *= freeMuonDecayRate;
430 }
431 return lambda;
432}
int fine_structure_const
Definition: hepunit.py:286

References A, source.hepunit::fine_structure_const, G4InuclParticleNames::lambda, microsecond, and Z.

Referenced by ApplyYourself(), and GetMuonDecayRate().

◆ GetMuonZeff()

G4double G4MuonMinusBoundDecay::GetMuonZeff ( G4int  Z)
static

Definition at line 337 of file G4MuonMinusBoundDecay.cc.

338{
339
340 // == Effective charges from
341 // "Total Nuclear Capture Rates for Negative Muons"
342 // T. Suzuki, D. F. Measday, J.P. Roalsvig Phys.Rev. C35 (1987) 2212
343 // and if not present from
344 // Ford and Wills Nucl Phys 35(1962)295 or interpolated
345
346 static const G4int maxZ = 100;
347 static const G4double zeff[] =
348 { 0.,
349 1.00, 1.98, 2.94, 3.89, 4.81, 5.72, 6.61, 7.49, 8.32, 9.14,
350 9.95,10.69,11.48,12.22,12.90,13.64,14.24,14.89,15.53,16.15,
351 16.77,17.38,18.04,18.49,19.06,19.59,20.13,20.66,21.12,21.61,
352 22.02,22.43,22.84,23.24,23.65,24.06,24.47,24.85,25.23,25.61,
353 25.99,26.37,26.69,27.00,27.32,27.63,27.95,28.20,28.42,28.64,
354 28.79,29.03,29.27,29.51,29.75,29.99,30.22,30.36,30.53,30.69,
355 30.85,31.01,31.18,31.34,31.48,31.62,31.76,31.90,32.05,32.19,
356 32.33,32.47,32.61,32.76,32.94,33.11,33.29,33.46,33.64,33.81,
357 34.21,34.18,34.00,34.10,34.21,34.31,34.42,34.52,34.63,34.73,
358 34.84,34.94,35.05,35.16,35.25,35.36,35.46,35.57,35.67,35.78 };
359
360 G4int Z = std::max(std::min(ZZ, maxZ), 1);
361 return zeff[Z];
362}
static const G4int maxZ
T max(const T t1, const T t2)
brief Return the largest of the two arguments
T min(const T t1, const T t2)
brief Return the smallest of the two arguments

References G4INCL::Math::max(), maxZ, G4INCL::Math::min(), and Z.

Referenced by GetMuonCaptureRate().

◆ GetRecoilEnergyThreshold()

G4double G4HadronicInteraction::GetRecoilEnergyThreshold ( ) const
inlineinherited

◆ GetVerboseLevel()

G4int G4HadronicInteraction::GetVerboseLevel ( ) const
inlineinherited

Definition at line 109 of file G4HadronicInteraction.hh.

References G4HadronicInteraction::verboseLevel.

◆ InitialiseModel()

void G4HadronicInteraction::InitialiseModel ( )
virtualinherited

◆ IsApplicable()

G4bool G4HadronicInteraction::IsApplicable ( const G4HadProjectile aTrack,
G4Nucleus targetNucleus 
)
virtualinherited

◆ IsBlocked() [1/3]

G4bool G4HadronicInteraction::IsBlocked ( ) const
inlineprotectedinherited

◆ IsBlocked() [2/3]

G4bool G4HadronicInteraction::IsBlocked ( const G4Element anElement) const
inherited

Definition at line 202 of file G4HadronicInteraction.cc.

203{
204 for (auto const& elm : theBlockedListElements) {
205 if (anElement == elm) return true;
206 }
207 return false;
208}

References G4HadronicInteraction::theBlockedListElements.

◆ IsBlocked() [3/3]

G4bool G4HadronicInteraction::IsBlocked ( const G4Material aMaterial) const
inherited

Definition at line 193 of file G4HadronicInteraction.cc.

194{
195 for (auto const& mat : theBlockedList) {
196 if (aMaterial == mat) return true;
197 }
198 return false;
199}

References G4HadronicInteraction::theBlockedList.

◆ ModelDescription()

void G4MuonMinusBoundDecay::ModelDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4HadronicInteraction.

Definition at line 436 of file G4MuonMinusBoundDecay.cc.

437{
438 outFile << " Sample probabilities of mu- nuclear capture of decay"
439 << " from K-shell orbit.\n"
440 << " Time of projectile is changed taking into account life time"
441 << " of muonic atom.\n"
442 << " If decay is sampled primary state become stopAndKill,"
443 << " else - isAlive.\n"
444 << " Mainly based on:\n"
445 << " H.C. Von Baeyer and D.Leiter, Phys. Rev. A 19, 1371 (1979)\n"
446 << " T.Suzuki, D.F.Measday, J.P.Roalsvig Phys.Rev. C35 (1987) 2212\n"
447 << " with an emprical fit to the Huff factors for Z >= 14\n"
448 << " from the above review\n";
449}

◆ operator!=()

G4bool G4HadronicInteraction::operator!= ( const G4HadronicInteraction right) const
deleteinherited

◆ operator=()

G4MuonMinusBoundDecay & G4MuonMinusBoundDecay::operator= ( const G4MuonMinusBoundDecay right)
private

◆ operator==()

G4bool G4HadronicInteraction::operator== ( const G4HadronicInteraction right) const
deleteinherited

◆ SampleInvariantT()

G4double G4HadronicInteraction::SampleInvariantT ( const G4ParticleDefinition p,
G4double  plab,
G4int  Z,
G4int  A 
)
virtualinherited

◆ SetEnergyMomentumCheckLevels()

void G4HadronicInteraction::SetEnergyMomentumCheckLevels ( G4double  relativeLevel,
G4double  absoluteLevel 
)
inlineinherited

Definition at line 149 of file G4HadronicInteraction.hh.

150 { epCheckLevels.first = relativeLevel;
151 epCheckLevels.second = absoluteLevel; }

References G4HadronicInteraction::epCheckLevels.

Referenced by G4BinaryCascade::G4BinaryCascade(), G4CascadeInterface::G4CascadeInterface(), and G4FTFModel::G4FTFModel().

◆ SetMaxEnergy() [1/3]

void G4HadronicInteraction::SetMaxEnergy ( const G4double  anEnergy)
inlineinherited

Definition at line 102 of file G4HadronicInteraction.hh.

103 { theMaxEnergy = anEnergy; }

References G4HadronicInteraction::theMaxEnergy.

Referenced by G4HadronicInteraction::ActivateFor(), G4IonINCLXXPhysics::AddProcess(), G4BertiniElectroNuclearBuilder::Build(), G4LENDBertiniGammaElectroNuclearBuilder::Build(), G4NeutronLENDBuilder::Build(), G4NeutronPHPBuilder::Build(), G4AlphaPHPBuilder::Build(), G4BertiniKaonBuilder::Build(), G4BertiniNeutronBuilder::Build(), G4BertiniPiKBuilder::Build(), G4BertiniPionBuilder::Build(), G4BertiniProtonBuilder::Build(), G4BinaryAlphaBuilder::Build(), G4BinaryDeuteronBuilder::Build(), G4BinaryHe3Builder::Build(), G4BinaryNeutronBuilder::Build(), G4BinaryPiKBuilder::Build(), G4BinaryPionBuilder::Build(), G4BinaryProtonBuilder::Build(), G4BinaryTritonBuilder::Build(), G4DeuteronPHPBuilder::Build(), G4FTFBinaryKaonBuilder::Build(), G4FTFBinaryNeutronBuilder::Build(), G4FTFBinaryPionBuilder::Build(), G4FTFBinaryProtonBuilder::Build(), G4FTFPAntiBarionBuilder::Build(), G4FTFPKaonBuilder::Build(), G4FTFPNeutronBuilder::Build(), G4FTFPPiKBuilder::Build(), G4FTFPPionBuilder::Build(), G4FTFPProtonBuilder::Build(), G4He3PHPBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4HyperonQGSPBuilder::Build(), G4INCLXXNeutronBuilder::Build(), G4INCLXXPionBuilder::Build(), G4INCLXXProtonBuilder::Build(), G4PrecoNeutronBuilder::Build(), G4PrecoProtonBuilder::Build(), G4ProtonPHPBuilder::Build(), G4QGSBinaryKaonBuilder::Build(), G4QGSBinaryNeutronBuilder::Build(), G4QGSBinaryPiKBuilder::Build(), G4QGSBinaryPionBuilder::Build(), G4QGSBinaryProtonBuilder::Build(), G4QGSPAntiBarionBuilder::Build(), G4QGSPKaonBuilder::Build(), G4QGSPLundStrFragmProtonBuilder::Build(), G4QGSPNeutronBuilder::Build(), G4QGSPPiKBuilder::Build(), G4QGSPPionBuilder::Build(), G4TritonPHPBuilder::Build(), G4QGSPProtonBuilder::Build(), G4HadronicBuilder::BuildFTFP_BERT(), G4HadronicBuilder::BuildFTFQGSP_BERT(), G4QGSBuilder::BuildModel(), G4VHadronPhysics::BuildModel(), G4HadronicBuilder::BuildQGSP_FTFP_BERT(), G4EmExtraPhysics::ConstructGammaElectroNuclear(), LBE::ConstructHad(), G4EmExtraPhysics::ConstructLENDGammaNuclear(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4IonINCLXXPhysics::ConstructProcess(), G4IonPhysics::ConstructProcess(), G4IonPhysicsPHP::ConstructProcess(), G4IonQMDPhysics::ConstructProcess(), G4ANuElNucleusNcModel::G4ANuElNucleusNcModel(), G4ANuMuNucleusNcModel::G4ANuMuNucleusNcModel(), G4BertiniKaonBuilder::G4BertiniKaonBuilder(), G4BertiniPiKBuilder::G4BertiniPiKBuilder(), G4BertiniPionBuilder::G4BertiniPionBuilder(), G4BinaryCascade::G4BinaryCascade(), G4BinaryPiKBuilder::G4BinaryPiKBuilder(), G4BinaryPionBuilder::G4BinaryPionBuilder(), G4ChargeExchange::G4ChargeExchange(), G4DiffuseElastic::G4DiffuseElastic(), G4DiffuseElasticV2::G4DiffuseElasticV2(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4FissLib::G4FissLib(), G4FTFBinaryKaonBuilder::G4FTFBinaryKaonBuilder(), G4FTFBinaryNeutronBuilder::G4FTFBinaryNeutronBuilder(), G4FTFBinaryPiKBuilder::G4FTFBinaryPiKBuilder(), G4FTFBinaryPionBuilder::G4FTFBinaryPionBuilder(), G4FTFBinaryProtonBuilder::G4FTFBinaryProtonBuilder(), G4FTFPAntiBarionBuilder::G4FTFPAntiBarionBuilder(), G4FTFPKaonBuilder::G4FTFPKaonBuilder(), G4FTFPNeutronBuilder::G4FTFPNeutronBuilder(), G4FTFPPiKBuilder::G4FTFPPiKBuilder(), G4FTFPPionBuilder::G4FTFPPionBuilder(), G4FTFPProtonBuilder::G4FTFPProtonBuilder(), G4HadronElastic::G4HadronElastic(), G4HadronicAbsorptionFritiof::G4HadronicAbsorptionFritiof(), G4HadronicAbsorptionFritiofWithBinaryCascade::G4HadronicAbsorptionFritiofWithBinaryCascade(), G4hhElastic::G4hhElastic(), G4HyperonFTFPBuilder::G4HyperonFTFPBuilder(), G4HyperonQGSPBuilder::G4HyperonQGSPBuilder(), G4INCLXXPionBuilder::G4INCLXXPionBuilder(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoElectronNcModel::G4NeutrinoElectronNcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4NeutronElectronElModel::G4NeutronElectronElModel(), G4NeutronRadCapture::G4NeutronRadCapture(), G4NuclNuclDiffuseElastic::G4NuclNuclDiffuseElastic(), G4NuElNucleusNcModel::G4NuElNucleusNcModel(), G4NuMuNucleusNcModel::G4NuMuNucleusNcModel(), G4ParticleHPCapture::G4ParticleHPCapture(), G4ParticleHPElastic::G4ParticleHPElastic(), G4ParticleHPFission::G4ParticleHPFission(), G4ParticleHPInelastic::G4ParticleHPInelastic(), G4ParticleHPThermalScattering::G4ParticleHPThermalScattering(), G4QGSPAntiBarionBuilder::G4QGSPAntiBarionBuilder(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4HadronPhysicsFTFP_BERT_HP::Neutron(), G4HadronPhysicsINCLXX::Neutron(), G4HadronPhysicsQGSP_BERT_HP::Neutron(), G4HadronPhysicsQGSP_BIC_HP::Neutron(), G4HadronPhysicsShielding::Neutron(), and G4VHadronPhysics::NewModel().

◆ SetMaxEnergy() [2/3]

void G4HadronicInteraction::SetMaxEnergy ( G4double  anEnergy,
const G4Element anElement 
)
inherited

Definition at line 151 of file G4HadronicInteraction.cc.

153{
154 Block();
155 if(!theMaxEnergyListElements.empty()) {
156 for(auto & elmlist : theMaxEnergyListElements) {
157 if( anElement == elmlist.second ) {
158 elmlist.first = anEnergy;
159 return;
160 }
161 }
162 }
163 theMaxEnergyListElements.push_back(std::pair<G4double, const G4Element *>(anEnergy, anElement));
164}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMaxEnergyListElements.

◆ SetMaxEnergy() [3/3]

void G4HadronicInteraction::SetMaxEnergy ( G4double  anEnergy,
const G4Material aMaterial 
)
inherited

Definition at line 166 of file G4HadronicInteraction.cc.

167{
168 Block();
169 if(!theMaxEnergyList.empty()) {
170 for(auto & matlist: theMaxEnergyList) {
171 if( aMaterial == matlist.second ) {
172 matlist.first = anEnergy;
173 return;
174 }
175 }
176 }
177 theMaxEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
178}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMaxEnergyList.

◆ SetMinEnergy() [1/3]

void G4HadronicInteraction::SetMinEnergy ( G4double  anEnergy)
inlineinherited

Definition at line 89 of file G4HadronicInteraction.hh.

90 { theMinEnergy = anEnergy; }

References G4HadronicInteraction::theMinEnergy.

Referenced by G4HadronicInteraction::ActivateFor(), G4BertiniElectroNuclearBuilder::Build(), G4LENDBertiniGammaElectroNuclearBuilder::Build(), G4NeutronLENDBuilder::Build(), G4NeutronPHPBuilder::Build(), G4AlphaPHPBuilder::Build(), G4BertiniKaonBuilder::Build(), G4BertiniNeutronBuilder::Build(), G4BertiniPiKBuilder::Build(), G4BertiniPionBuilder::Build(), G4BertiniProtonBuilder::Build(), G4BinaryAlphaBuilder::Build(), G4BinaryDeuteronBuilder::Build(), G4BinaryHe3Builder::Build(), G4BinaryNeutronBuilder::Build(), G4BinaryPiKBuilder::Build(), G4BinaryPionBuilder::Build(), G4BinaryProtonBuilder::Build(), G4BinaryTritonBuilder::Build(), G4DeuteronPHPBuilder::Build(), G4FTFBinaryKaonBuilder::Build(), G4FTFBinaryNeutronBuilder::Build(), G4FTFBinaryPiKBuilder::Build(), G4FTFBinaryPionBuilder::Build(), G4FTFBinaryProtonBuilder::Build(), G4FTFPAntiBarionBuilder::Build(), G4FTFPKaonBuilder::Build(), G4FTFPNeutronBuilder::Build(), G4FTFPPiKBuilder::Build(), G4FTFPPionBuilder::Build(), G4FTFPProtonBuilder::Build(), G4He3PHPBuilder::Build(), G4HyperonFTFPBuilder::Build(), G4HyperonQGSPBuilder::Build(), G4INCLXXNeutronBuilder::Build(), G4INCLXXPionBuilder::Build(), G4INCLXXProtonBuilder::Build(), G4PrecoNeutronBuilder::Build(), G4PrecoProtonBuilder::Build(), G4ProtonPHPBuilder::Build(), G4QGSBinaryKaonBuilder::Build(), G4QGSBinaryNeutronBuilder::Build(), G4QGSBinaryPiKBuilder::Build(), G4QGSBinaryPionBuilder::Build(), G4QGSBinaryProtonBuilder::Build(), G4QGSPAntiBarionBuilder::Build(), G4QGSPKaonBuilder::Build(), G4QGSPLundStrFragmProtonBuilder::Build(), G4QGSPNeutronBuilder::Build(), G4QGSPPiKBuilder::Build(), G4QGSPPionBuilder::Build(), G4TritonPHPBuilder::Build(), G4QGSPProtonBuilder::Build(), G4QGSBuilder::BuildModel(), G4VHadronPhysics::BuildModel(), G4EmExtraPhysics::ConstructGammaElectroNuclear(), LBE::ConstructHad(), G4EmExtraPhysics::ConstructLENDGammaNuclear(), G4HadronElasticPhysicsHP::ConstructProcess(), G4HadronElasticPhysicsLEND::ConstructProcess(), G4HadronElasticPhysicsPHP::ConstructProcess(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4IonElasticPhysics::ConstructProcess(), G4IonINCLXXPhysics::ConstructProcess(), G4IonPhysics::ConstructProcess(), G4IonPhysicsPHP::ConstructProcess(), G4IonQMDPhysics::ConstructProcess(), G4ANuElNucleusNcModel::G4ANuElNucleusNcModel(), G4ANuMuNucleusNcModel::G4ANuMuNucleusNcModel(), G4BertiniKaonBuilder::G4BertiniKaonBuilder(), G4BertiniPiKBuilder::G4BertiniPiKBuilder(), G4BertiniPionBuilder::G4BertiniPionBuilder(), G4BinaryCascade::G4BinaryCascade(), G4BinaryPiKBuilder::G4BinaryPiKBuilder(), G4BinaryPionBuilder::G4BinaryPionBuilder(), G4ChargeExchange::G4ChargeExchange(), G4DiffuseElastic::G4DiffuseElastic(), G4DiffuseElasticV2::G4DiffuseElasticV2(), G4ElectroVDNuclearModel::G4ElectroVDNuclearModel(), G4EMDissociation::G4EMDissociation(), G4FissLib::G4FissLib(), G4FTFBinaryKaonBuilder::G4FTFBinaryKaonBuilder(), G4FTFBinaryNeutronBuilder::G4FTFBinaryNeutronBuilder(), G4FTFBinaryPiKBuilder::G4FTFBinaryPiKBuilder(), G4FTFBinaryPionBuilder::G4FTFBinaryPionBuilder(), G4FTFBinaryProtonBuilder::G4FTFBinaryProtonBuilder(), G4FTFPAntiBarionBuilder::G4FTFPAntiBarionBuilder(), G4FTFPKaonBuilder::G4FTFPKaonBuilder(), G4FTFPNeutronBuilder::G4FTFPNeutronBuilder(), G4FTFPPiKBuilder::G4FTFPPiKBuilder(), G4FTFPPionBuilder::G4FTFPPionBuilder(), G4FTFPProtonBuilder::G4FTFPProtonBuilder(), G4HadronElastic::G4HadronElastic(), G4HadronicAbsorptionBertini::G4HadronicAbsorptionBertini(), G4HadronicAbsorptionFritiof::G4HadronicAbsorptionFritiof(), G4HadronicAbsorptionFritiofWithBinaryCascade::G4HadronicAbsorptionFritiofWithBinaryCascade(), G4hhElastic::G4hhElastic(), G4HyperonFTFPBuilder::G4HyperonFTFPBuilder(), G4HyperonQGSPBuilder::G4HyperonQGSPBuilder(), G4INCLXXPionBuilder::G4INCLXXPionBuilder(), G4LEHadronProtonElastic::G4LEHadronProtonElastic(), G4LENDModel::G4LENDModel(), G4LEnp::G4LEnp(), G4LEpp::G4LEpp(), G4LFission::G4LFission(), G4LowEGammaNuclearModel::G4LowEGammaNuclearModel(), G4MuonVDNuclearModel::G4MuonVDNuclearModel(), G4NeutrinoElectronCcModel::G4NeutrinoElectronCcModel(), G4NeutrinoElectronNcModel::G4NeutrinoElectronNcModel(), G4NeutrinoNucleusModel::G4NeutrinoNucleusModel(), G4NeutronElectronElModel::G4NeutronElectronElModel(), G4NeutronRadCapture::G4NeutronRadCapture(), G4NuclNuclDiffuseElastic::G4NuclNuclDiffuseElastic(), G4NuElNucleusNcModel::G4NuElNucleusNcModel(), G4NuMuNucleusNcModel::G4NuMuNucleusNcModel(), G4ParticleHPCapture::G4ParticleHPCapture(), G4ParticleHPElastic::G4ParticleHPElastic(), G4ParticleHPFission::G4ParticleHPFission(), G4ParticleHPInelastic::G4ParticleHPInelastic(), G4ParticleHPThermalScattering::G4ParticleHPThermalScattering(), G4QGSPAntiBarionBuilder::G4QGSPAntiBarionBuilder(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4NeutrinoElectronCcModel::IsApplicable(), G4HadronPhysicsFTFP_BERT_HP::Neutron(), G4HadronPhysicsINCLXX::Neutron(), G4HadronPhysicsQGSP_BERT_HP::Neutron(), G4HadronPhysicsQGSP_BIC_HP::Neutron(), G4HadronPhysicsShielding::Neutron(), and G4VHadronPhysics::NewModel().

◆ SetMinEnergy() [2/3]

void G4HadronicInteraction::SetMinEnergy ( G4double  anEnergy,
const G4Element anElement 
)
inherited

Definition at line 101 of file G4HadronicInteraction.cc.

103{
104 Block();
105 if(!theMinEnergyListElements.empty()) {
106 for(auto & elmlist : theMinEnergyListElements) {
107 if( anElement == elmlist.second ) {
108 elmlist.first = anEnergy;
109 return;
110 }
111 }
112 }
113 theMinEnergyListElements.push_back(std::pair<G4double, const G4Element *>(anEnergy, anElement));
114}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMinEnergyListElements.

◆ SetMinEnergy() [3/3]

void G4HadronicInteraction::SetMinEnergy ( G4double  anEnergy,
const G4Material aMaterial 
)
inherited

Definition at line 116 of file G4HadronicInteraction.cc.

118{
119 Block();
120 if(!theMinEnergyList.empty()) {
121 for(auto & matlist : theMinEnergyList) {
122 if( aMaterial == matlist.second ) {
123 matlist.first = anEnergy;
124 return;
125 }
126 }
127 }
128 theMinEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
129}

References G4HadronicInteraction::Block(), and G4HadronicInteraction::theMinEnergyList.

◆ SetModelName()

void G4HadronicInteraction::SetModelName ( const G4String nam)
inlineprotectedinherited

◆ SetRecoilEnergyThreshold()

void G4HadronicInteraction::SetRecoilEnergyThreshold ( G4double  val)
inlineinherited

◆ SetVerboseLevel()

void G4HadronicInteraction::SetVerboseLevel ( G4int  value)
inlineinherited

Field Documentation

◆ epCheckLevels

std::pair<G4double, G4double> G4HadronicInteraction::epCheckLevels
privateinherited

◆ fMuMass

G4double G4MuonMinusBoundDecay::fMuMass
private

Definition at line 103 of file G4MuonMinusBoundDecay.hh.

Referenced by ApplyYourself(), and G4MuonMinusBoundDecay().

◆ isBlocked

G4bool G4HadronicInteraction::isBlocked
protectedinherited

◆ recoilEnergyThreshold

G4double G4HadronicInteraction::recoilEnergyThreshold
privateinherited

◆ registry

G4HadronicInteractionRegistry* G4HadronicInteraction::registry
privateinherited

◆ result

G4HadFinalState G4MuonMinusBoundDecay::result
private

Definition at line 102 of file G4MuonMinusBoundDecay.hh.

Referenced by AddNewParticle(), and ApplyYourself().

◆ theBlockedList

std::vector<const G4Material *> G4HadronicInteraction::theBlockedList
privateinherited

◆ theBlockedListElements

std::vector<const G4Element *> G4HadronicInteraction::theBlockedListElements
privateinherited

◆ theMaxEnergy

G4double G4HadronicInteraction::theMaxEnergy
protectedinherited

◆ theMaxEnergyList

std::vector<std::pair<G4double, const G4Material *> > G4HadronicInteraction::theMaxEnergyList
privateinherited

◆ theMaxEnergyListElements

std::vector<std::pair<G4double, const G4Element *> > G4HadronicInteraction::theMaxEnergyListElements
privateinherited

◆ theMinEnergy

G4double G4HadronicInteraction::theMinEnergy
protectedinherited

◆ theMinEnergyList

std::vector<std::pair<G4double, const G4Material *> > G4HadronicInteraction::theMinEnergyList
privateinherited

◆ theMinEnergyListElements

std::vector<std::pair<G4double, const G4Element *> > G4HadronicInteraction::theMinEnergyListElements
privateinherited

◆ theModelName

G4String G4HadronicInteraction::theModelName
privateinherited

◆ theParticleChange

G4HadFinalState G4HadronicInteraction::theParticleChange
protectedinherited

Definition at line 172 of file G4HadronicInteraction.hh.

Referenced by G4WilsonAbrasionModel::ApplyYourself(), G4EMDissociation::ApplyYourself(), G4LENDCapture::ApplyYourself(), G4LENDElastic::ApplyYourself(), G4LENDFission::ApplyYourself(), G4LENDInelastic::ApplyYourself(), G4ElectroVDNuclearModel::ApplyYourself(), G4ParticleHPThermalScattering::ApplyYourself(), G4NeutrinoElectronNcModel::ApplyYourself(), G4NeutronElectronElModel::ApplyYourself(), G4LFission::ApplyYourself(), G4ANuElNucleusCcModel::ApplyYourself(), G4ANuElNucleusNcModel::ApplyYourself(), G4ANuMuNucleusCcModel::ApplyYourself(), G4ANuMuNucleusNcModel::ApplyYourself(), G4MuonVDNuclearModel::ApplyYourself(), G4NeutrinoElectronCcModel::ApplyYourself(), G4NuElNucleusCcModel::ApplyYourself(), G4NuElNucleusNcModel::ApplyYourself(), G4NuMuNucleusCcModel::ApplyYourself(), G4NuMuNucleusNcModel::ApplyYourself(), G4QMDReaction::ApplyYourself(), G4NeutronRadCapture::ApplyYourself(), G4LowEGammaNuclearModel::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4LEHadronProtonElastic::ApplyYourself(), G4LEnp::ApplyYourself(), G4LEpp::ApplyYourself(), G4BinaryCascade::ApplyYourself(), G4CascadeInterface::ApplyYourself(), G4LMsdGenerator::ApplyYourself(), G4ElectroVDNuclearModel::CalculateEMVertex(), G4MuonVDNuclearModel::CalculateEMVertex(), G4ElectroVDNuclearModel::CalculateHadronicVertex(), G4MuonVDNuclearModel::CalculateHadronicVertex(), G4NeutrinoNucleusModel::CoherentPion(), G4CascadeInterface::copyOutputToHadronicResult(), G4BinaryCascade::DebugEpConservation(), G4BinaryCascade::DebugFinalEpConservation(), G4NeutrinoNucleusModel::FinalBarion(), G4NeutrinoNucleusModel::FinalMeson(), G4WilsonAbrasionModel::GetAbradedNucleons(), G4CascadeInterface::NoInteraction(), G4CascadeInterface::Propagate(), G4NeutrinoNucleusModel::RecoilDeexcitation(), G4LEHadronProtonElastic::~G4LEHadronProtonElastic(), G4LEnp::~G4LEnp(), and G4LFission::~G4LFission().

◆ verboseLevel

G4int G4HadronicInteraction::verboseLevel
protectedinherited

Definition at line 177 of file G4HadronicInteraction.hh.

Referenced by G4WilsonAbrasionModel::ApplyYourself(), G4EMDissociation::ApplyYourself(), G4LFission::ApplyYourself(), G4MuMinusCapturePrecompound::ApplyYourself(), G4NeutronRadCapture::ApplyYourself(), G4LowEGammaNuclearModel::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4LEHadronProtonElastic::ApplyYourself(), G4LEnp::ApplyYourself(), G4LEpp::ApplyYourself(), G4CascadeInterface::ApplyYourself(), G4CascadeInterface::checkFinalResult(), G4CascadeInterface::copyOutputToHadronicResult(), G4CascadeInterface::copyOutputToReactionProducts(), G4LENDModel::create_used_target_map(), G4CascadeInterface::createBullet(), G4CascadeInterface::createTarget(), G4ElasticHadrNucleusHE::DefineHadronValues(), G4ElasticHadrNucleusHE::FillData(), G4ElasticHadrNucleusHE::FillFq2(), G4DiffuseElastic::G4DiffuseElastic(), G4DiffuseElasticV2::G4DiffuseElasticV2(), G4ElasticHadrNucleusHE::G4ElasticHadrNucleusHE(), G4EMDissociation::G4EMDissociation(), G4hhElastic::G4hhElastic(), G4NuclNuclDiffuseElastic::G4NuclNuclDiffuseElastic(), G4WilsonAbrasionModel::G4WilsonAbrasionModel(), G4ElasticHadrNucleusHE::GetFt(), G4ElasticHadrNucleusHE::GetLightFq2(), G4ElasticHadrNucleusHE::GetQ2_2(), G4HadronicInteraction::GetVerboseLevel(), G4ElasticHadrNucleusHE::HadronNucleusQ2_2(), G4ElasticHadrNucleusHE::HadronProtonQ2(), G4LFission::init(), G4DiffuseElastic::Initialise(), G4DiffuseElasticV2::Initialise(), G4NuclNuclDiffuseElastic::Initialise(), G4DiffuseElastic::InitialiseOnFly(), G4DiffuseElasticV2::InitialiseOnFly(), G4NuclNuclDiffuseElastic::InitialiseOnFly(), G4CascadeInterface::makeDynamicParticle(), G4CascadeInterface::NoInteraction(), G4CascadeInterface::Propagate(), G4ElasticHadrNucleusHE::SampleInvariantT(), G4AntiNuclElastic::SampleThetaCMS(), G4DiffuseElastic::SampleThetaLab(), G4NuclNuclDiffuseElastic::SampleThetaLab(), G4AntiNuclElastic::SampleThetaLab(), G4WilsonAbrasionModel::SetUseAblation(), G4HadronicInteraction::SetVerboseLevel(), G4WilsonAbrasionModel::SetVerboseLevel(), G4DiffuseElastic::ThetaCMStoThetaLab(), G4DiffuseElasticV2::ThetaCMStoThetaLab(), G4NuclNuclDiffuseElastic::ThetaCMStoThetaLab(), G4DiffuseElastic::ThetaLabToThetaCMS(), G4DiffuseElasticV2::ThetaLabToThetaCMS(), and G4NuclNuclDiffuseElastic::ThetaLabToThetaCMS().


The documentation for this class was generated from the following files: