81 if(0 == theHadronicInteractionCounter) {
83 "GetHadronicInteraction: NO MODELS STORED");
92 G4int cou = 0, memory = 0, memor2 = 0;
93 G4double emi1 = 0.0, ema1 = 0.0, emi2 = 0.0, ema2 = 0.0;
95 for (
G4int i = 0; i<theHadronicInteractionCounter; ++i) {
96 if ( theHadronicInteraction[i]->IsApplicable( aHadProjectile, aTargetNucleus ) ) {
97 G4double low = theHadronicInteraction[i]->GetMinEnergy( aMaterial, anElement );
101 G4double high = theHadronicInteraction[i]->GetMaxEnergy( aMaterial, anElement );
102 if (low <= kineticEnergy && high > kineticEnergy) {
118 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
119 <<theHadronicInteractionCounter<<
", Ek="
120 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
123 for(
G4int j=0; j<theHadronicInteractionCounter; ++j)
130 "GetHadronicInteraction: No Model found");
136 if( (emi2<=emi1 && ema2>=ema1) || (emi2>=emi1 && ema2<=ema1) )
138 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
139 <<theHadronicInteractionCounter<<
", Ek="
140 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
143 for(
G4int j=0; j<theHadronicInteractionCounter; ++j)
150 "GetHadronicInteraction: Energy ranges of two models fully overlapping");
155 if( (ema1-kineticEnergy) < rand*(ema1-emi2) ) {
161 if( (ema2-kineticEnergy) < rand*(ema2-emi1) ) {
170 "GetHadronicInteraction: More than two competing models in this energy range");
173 return theHadronicInteraction[mem];
G4double GetMinEnergy() const
G4double GetMaxEnergy() const
const G4String & GetName() const
G4GLOB_DLL std::ostream G4cout
const G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4String & GetName() const
G4int GetBaryonNumber() const