65 if(1 == theHadronicInteractionCounter) {
return theHadronicInteraction[0]; }
66 else if(0 == theHadronicInteractionCounter) {
67 G4cout <<
"G4EnergyRangeManager::GetHadronicInteraction: "
68 <<
"no models defined for a process" <<
G4endl;
78 G4int cou = 0, memory = 0, memor2 = 0;
79 G4double emi1 = 0.0, ema1 = 0.0, emi2 = 0.0, ema2 = 0.0;
81 for (
G4int i = 0; i<theHadronicInteractionCounter; ++i) {
82 if ( theHadronicInteraction[i]->IsApplicable( aHadProjectile, aTargetNucleus ) ) {
83 G4double low = theHadronicInteraction[i]->GetMinEnergy( aMaterial, anElement );
84 G4double high = theHadronicInteraction[i]->GetMaxEnergy( aMaterial, anElement );
85 if (low <= kineticEnergy && high >= kineticEnergy) {
100 G4cout <<
"No model found out of " << theHadronicInteractionCounter <<
G4endl;
101 for(
G4int j=0; j<theHadronicInteractionCounter; ++j) {
104 <<
", Ehigh= " << hint->
GetMaxEnergy(aMaterial,anElement)
110 hi = theHadronicInteraction[memory];
114 if( (emi2<=emi1 && ema2>=ema1) || (emi2>=emi1 && ema2<=ema1) ) {
115 G4cout <<
"Energy ranges of two models fully overlapping " <<
G4endl;
116 for(
G4int j=0; j<theHadronicInteractionCounter; ++j) {
119 <<
", Ehigh= " << hint->
GetMaxEnergy(aMaterial,anElement)
126 if( (ema1-kineticEnergy) < rand*(ema1-emi2) ) {
132 if( (ema2-kineticEnergy) < rand*(ema2-emi1) ) {
138 hi = theHadronicInteraction[mem];
143 G4cout <<
"More than two competing models for this energy" <<
G4endl;
144 for(
G4int j=0; j<theHadronicInteractionCounter; ++j) {
147 <<
", Ehigh= " << hint->
GetMaxEnergy(aMaterial,anElement)
G4int GetBaryonNumber() const