40 : theHadronicInteractionCounter(0)
85 "GetHadronicInteraction: NO MODELS STORED");
94 G4int cou = 0, memory = 0, memor2 = 0;
95 G4double emi1 = 0.0, ema1 = 0.0, emi2 = 0.0, ema2 = 0.0;
104 if (low <= kineticEnergy && high > kineticEnergy) {
120 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
121 <<theHadronicInteractionCounter<<
", Ek="
122 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
132 "GetHadronicInteraction: No Model found");
138 if( (emi2<=emi1 && ema2>=ema1) || (emi2>=emi1 && ema2<=ema1) )
140 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
141 <<theHadronicInteractionCounter<<
", Ek="
142 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
152 "GetHadronicInteraction: Energy ranges of two models fully overlapping");
157 if( (ema1-kineticEnergy) < rand*(ema1-emi2) ) {
163 if( (ema2-kineticEnergy) < rand*(ema2-emi1) ) {
172 "GetHadronicInteraction: More than two competing models in this energy range");
186 "GetHadronicInteraction: NO MODELS STORED");
188 G4int cou = 0, memory = 0, memor2 = 0;
189 G4double emi1 = 0.0, ema1 = 0.0, emi2 = 0.0, ema2 = 0.0;
197 if (low <= kineticEnergy && high > kineticEnergy) {
212 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
213 <<theHadronicInteractionCounter<<
", Ek="
214 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
224 "GetHadronicInteraction: No Model found");
230 if( (emi2<=emi1 && ema2>=ema1) || (emi2>=emi1 && ema2<=ema1) )
232 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
233 <<theHadronicInteractionCounter<<
", Ek="
234 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
244 "GetHadronicInteraction: Energy ranges of two models fully overlapping");
249 if( (ema1-kineticEnergy) < rand*(ema1-emi2) ) {
255 if( (ema2-kineticEnergy) < rand*(ema2-emi1) ) {
264 "GetHadronicInteraction: More than two competing models in this energy range");
270 std::vector<G4HadronicInteraction*>&
281 G4cout <<
" HadronicModel " << i <<
":"
284 G4cout <<
" Minimum Energy "
296 for ( std::vector<G4HadronicInteraction*>::iterator
298 (*it)->BuildPhysicsTable( aParticleType );
G4double GetMinEnergy() const
void RegisterMe(G4HadronicInteraction *a)
G4double GetMaxEnergy() const
void Dump(G4int verbose=0)
G4HadronicInteraction * GetHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement) const
const G4String & GetName() const
std::vector< G4HadronicInteraction * > & GetHadronicInteractionList()
std::vector< G4HadronicInteraction * > theHadronicInteraction
G4GLOB_DLL std::ostream G4cout
const G4ParticleDefinition * GetDefinition() const
G4EnergyRangeManager & operator=(const G4EnergyRangeManager &right)
G4double GetKineticEnergy() const
void BuildPhysicsTable(const G4ParticleDefinition &)
G4int theHadronicInteractionCounter
const G4String & GetName() const
G4int GetBaryonNumber() const