43 verboseLevel(0), theMinEnergy(0.0), theMaxEnergy(25.0*
GeV),
44 isBlocked(false), recoilEnergyThreshold(0.0), theModelName(modelName),
66 if(
IsBlocked(aMaterial) ) {
return 0.0; }
67 if(
IsBlocked(anElement) ) {
return 0.0; }
70 for(
size_t i=0; i<length; ++i ) {
77 for(
size_t i=0; i<length; ++i ) {
84 G4cout <<
"*** Warning from HadronicInteraction::GetMinEnergy" <<
G4endl
85 <<
" material " << aMaterial->
GetName()
86 <<
" not found in min energy List" <<
G4endl;
95 G4cout <<
"*** Warning from HadronicInteraction::SetMinEnergy" <<
G4endl
96 <<
" The model is not active for the Element "
101 for(
size_t i=0; i<length; ++i ) {
116 G4cout <<
"*** Warning from HadronicInteraction::SetMinEnergy" <<
G4endl
117 <<
" The model is not active for the Material "
122 for(
size_t i=0; i<length; ++i ) {
130 theMinEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
136 if(
IsBlocked(aMaterial) ) {
return 0.0; }
137 if(
IsBlocked(anElement) ) {
return 0.0; }
140 for(
size_t i=0; i<length; ++i ) {
147 for(
size_t i=0; i<length; ++i ) {
154 G4cout <<
"*** Warning from HadronicInteraction::GetMaxEnergy" <<
G4endl
155 <<
" material " << aMaterial->
GetName()
156 <<
" not found in min energy List" <<
G4endl;
165 G4cout <<
"*** Warning from HadronicInteraction::SetMaxEnergy" <<
G4endl
166 <<
"Warning: The model is not active for the Element "
171 for(
size_t i=0; i<length; ++i ) {
186 G4cout <<
"*** Warning from HadronicInteraction::SetMaxEnergy" <<
G4endl
187 <<
"Warning: The model is not active for the Material "
192 for(
size_t i=0; i<length; ++i ) {
200 theMaxEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
234 return std::pair<G4double, G4double>(2.*
perCent, 1. *
GeV);
237 std::pair<G4double, G4double>
246 outFile <<
"The description for this model has not been written yet.\n";
std::vector< std::pair< G4double, const G4Element * > > theMaxEnergyListElements
G4double GetMinEnergy() const
G4bool isBlocked(ParticleList const &p, Nucleus const *const n)
Check Pauli blocking.
std::vector< const G4Element * > theBlockedListElements
virtual G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
std::vector< std::pair< G4double, const G4Material * > > theMaxEnergyList
G4double GetMaxEnergy() const
virtual const std::pair< G4double, G4double > GetFatalEnergyCheckLevels() const
const G4String & GetName() const
virtual void ModelDescription(std::ostream &outFile) const
virtual ~G4HadronicInteraction()
void RemoveMe(G4HadronicInteraction *aModel)
G4HadronicInteractionRegistry * registry
void RegisterMe(G4HadronicInteraction *aModel)
std::vector< std::pair< G4double, const G4Material * > > theMinEnergyList
void SetMinEnergy(G4double anEnergy)
G4GLOB_DLL std::ostream G4cout
virtual std::pair< G4double, G4double > GetEnergyMomentumCheckLevels() const
std::vector< std::pair< G4double, const G4Element * > > theMinEnergyListElements
static const double second
static const double perCent
G4HadronicInteraction(const G4String &modelName="HadronicModel")
std::pair< G4double, G4double > epCheckLevels
static G4HadronicInteractionRegistry * Instance()
void SetMaxEnergy(const G4double anEnergy)
std::vector< const G4Material * > theBlockedList
const G4String & GetName() const
void DeActivateFor(const G4Material *aMaterial)