40 : theHadronicInteractionCounter(0)
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;
102 if (low <= kineticEnergy && high > kineticEnergy) {
118 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
119 <<theHadronicInteractionCounter<<
", Ek="
120 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
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()
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");
184 "GetHadronicInteraction: NO MODELS STORED");
186 G4int cou = 0, memory = 0, memor2 = 0;
187 G4double emi1 = 0.0, ema1 = 0.0, emi2 = 0.0, ema2 = 0.0;
195 if (low <= kineticEnergy && high > kineticEnergy) {
210 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
211 <<theHadronicInteractionCounter<<
", Ek="
212 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
222 "GetHadronicInteraction: No Model found");
228 if( (emi2<=emi1 && ema2>=ema1) || (emi2>=emi1 && ema2<=ema1) )
230 G4cout<<
"G4EnergyRangeManager:GetHadronicInteraction: counter="
231 <<theHadronicInteractionCounter<<
", Ek="
232 <<kineticEnergy<<
", Material = "<<aMaterial->
GetName()
242 "GetHadronicInteraction: Energy ranges of two models fully overlapping");
247 if( (ema1-kineticEnergy) < rand*(ema1-emi2) ) {
253 if( (ema2-kineticEnergy) < rand*(ema2-emi1) ) {
262 "GetHadronicInteraction: More than two competing models in this energy range");
268 std::vector<G4HadronicInteraction*>&
279 G4cout <<
" HadronicModel " << i <<
":"
282 G4cout <<
" Minimum Energy "
294 for ( std::vector<G4HadronicInteraction*>::iterator
296 (*it)->BuildPhysicsTable( aParticleType );
std::vector< ExP01TrackerHit * > a
void Dump(G4int verbose=0)
const G4String & GetName() const
G4double GetMinEnergy() const
void RegisterMe(G4HadronicInteraction *a)
std::vector< G4HadronicInteraction * > & GetHadronicInteractionList()
const G4String & GetName() const
G4HadronicInteraction * GetHadronicInteraction(const G4HadProjectile &aHadProjectile, G4Nucleus &aTargetNucleus, const G4Material *aMaterial, const G4Element *anElement) const
G4int GetBaryonNumber() const
G4double GetKineticEnergy() const
std::vector< G4HadronicInteraction * > theHadronicInteraction
const G4ParticleDefinition * GetDefinition() const
G4int theHadronicInteractionCounter
void BuildPhysicsTable(const G4ParticleDefinition &)
G4double GetMaxEnergy() const
G4EnergyRangeManager & operator=(const G4EnergyRangeManager &right)
G4GLOB_DLL std::ostream G4cout
static constexpr double GeV