43 verboseLevel(0), theMinEnergy(0.0), theMaxEnergy(25.0*
GeV),
44 isBlocked(false), recoilEnergyThreshold(0.0), theModelName(modelName),
67 if(
IsBlocked(aMaterial) ) {
return 0.0; }
68 if(
IsBlocked(anElement) ) {
return 0.0; }
71 for(
size_t i=0; i<length; ++i ) {
78 for(
size_t i=0; i<length; ++i ) {
85 G4cout <<
"*** Warning from HadronicInteraction::GetMinEnergy" <<
G4endl
86 <<
" material " << aMaterial->
GetName()
87 <<
" not found in min energy List" <<
G4endl;
96 G4cout <<
"*** Warning from HadronicInteraction::SetMinEnergy" <<
G4endl
97 <<
" The model is not active for the Element "
102 for(
size_t i=0; i<length; ++i ) {
117 G4cout <<
"*** Warning from HadronicInteraction::SetMinEnergy" <<
G4endl
118 <<
" The model is not active for the Material "
123 for(
size_t i=0; i<length; ++i ) {
131 theMinEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
137 if(
IsBlocked(aMaterial) ) {
return 0.0; }
138 if(
IsBlocked(anElement) ) {
return 0.0; }
141 for(
size_t i=0; i<length; ++i ) {
148 for(
size_t i=0; i<length; ++i ) {
155 G4cout <<
"*** Warning from HadronicInteraction::GetMaxEnergy" <<
G4endl
156 <<
" material " << aMaterial->
GetName()
157 <<
" not found in min energy List" <<
G4endl;
166 G4cout <<
"*** Warning from HadronicInteraction::SetMaxEnergy" <<
G4endl
167 <<
"Warning: The model is not active for the Element "
172 for(
size_t i=0; i<length; ++i ) {
187 G4cout <<
"*** Warning from HadronicInteraction::SetMaxEnergy" <<
G4endl
188 <<
"Warning: The model is not active for the Material "
193 for(
size_t i=0; i<length; ++i ) {
201 theMaxEnergyList.push_back(std::pair<G4double, const G4Material *>(anEnergy, aMaterial));
235 return std::pair<G4double, G4double>(2.*
perCent, 1. *
GeV);
238 std::pair<G4double, G4double>
247 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)
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)