Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4NeutronHPElasticVI Class Reference

#include <G4NeutronHPElasticVI.hh>

Inheritance diagram for G4NeutronHPElasticVI:

Public Member Functions

 G4NeutronHPElasticVI ()
 ~G4NeutronHPElasticVI () override
G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &aTargetNucleus) override
void BuildPhysicsTable (const G4ParticleDefinition &) override
const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const override
void ModelDescription (std::ostream &outFile) const override
 G4NeutronHPElasticVI (G4NeutronHPElasticVI &)=delete
G4NeutronHPElasticVIoperator= (const G4NeutronHPElasticVI &right)=delete
Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
virtual ~G4HadronicInteraction ()
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
virtual G4bool IsApplicable (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
G4double GetMinEnergy () const
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
void SetMinEnergy (G4double anEnergy)
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
G4double GetMaxEnergy () const
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
void SetMaxEnergy (const G4double anEnergy)
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
G4int GetVerboseLevel () const
void SetVerboseLevel (G4int value)
const G4StringGetModelName () const
void DeActivateFor (const G4Material *aMaterial)
void ActivateFor (const G4Material *aMaterial)
void DeActivateFor (const G4Element *anElement)
void ActivateFor (const G4Element *anElement)
G4bool IsBlocked (const G4Material *aMaterial) const
G4bool IsBlocked (const G4Element *anElement) const
void SetRecoilEnergyThreshold (G4double val)
G4double GetRecoilEnergyThreshold () const
virtual std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
virtual void InitialiseModel ()
 G4HadronicInteraction (const G4HadronicInteraction &right)=delete
const G4HadronicInteractionoperator= (const G4HadronicInteraction &right)=delete
G4bool operator== (const G4HadronicInteraction &right) const =delete
G4bool operator!= (const G4HadronicInteraction &right) const =delete

Additional Inherited Members

Protected Member Functions inherited from G4HadronicInteraction
void SetModelName (const G4String &nam)
G4bool IsBlocked () const
void Block ()
Protected Attributes inherited from G4HadronicInteraction
G4HadFinalState theParticleChange
G4int verboseLevel
G4double theMinEnergy
G4double theMaxEnergy
G4bool isBlocked

Detailed Description

Definition at line 53 of file G4NeutronHPElasticVI.hh.

Constructor & Destructor Documentation

◆ G4NeutronHPElasticVI() [1/2]

G4NeutronHPElasticVI::G4NeutronHPElasticVI ( )

Definition at line 49 of file G4NeutronHPElasticVI.cc.

50 : G4HadronicInteraction("NeutronHPElastic")
51{
52 SetMaxEnergy(20*CLHEP::MeV);
54 if ( !fLock ) {
55 fLock = true;
56 fInitializer = true;
57 for ( G4int i=0; i<ZMAXHPE; ++i ) {
58 theElastic[i] = nullptr;
59 }
60 }
61}
int G4int
Definition G4Types.hh:85
G4HadronicInteraction(const G4String &modelName="HadronicModel")
void SetMaxEnergy(const G4double anEnergy)
static G4ParticleHPManager * GetInstance()

Referenced by G4NeutronHPElasticVI(), and operator=().

◆ ~G4NeutronHPElasticVI()

G4NeutronHPElasticVI::~G4NeutronHPElasticVI ( )
override

Definition at line 63 of file G4NeutronHPElasticVI.cc.

64{
65 if ( fInitializer ) {
66 for ( G4int i=0; i<ZMAXHPE; ++i) {
67 delete theElastic[i];
68 }
69 }
70}

◆ G4NeutronHPElasticVI() [2/2]

G4NeutronHPElasticVI::G4NeutronHPElasticVI ( G4NeutronHPElasticVI & )
delete

Member Function Documentation

◆ ApplyYourself()

G4HadFinalState * G4NeutronHPElasticVI::ApplyYourself ( const G4HadProjectile & aTrack,
G4Nucleus & aTargetNucleus )
overridevirtual

Reimplemented from G4HadronicInteraction.

Definition at line 72 of file G4NeutronHPElasticVI.cc.

74{
75 G4HadFinalState* finalState = nullptr;
76 G4int Z = aNucleus.GetZ_asInt();
77 if ( Z >= ZMAXHPE || Z < 1 ) { return finalState; }
78
79 G4int A = aNucleus.GetA_asInt();
80 fManagerHP->OpenReactionWhiteBoard();
81 fManagerHP->GetReactionWhiteBoard()->SetTargZ(Z);
82 fManagerHP->GetReactionWhiteBoard()->SetTargA(A);
83
84 G4ParticleHPChannel* mod = theElastic[Z];
85 if ( nullptr == mod ) {
86 InitialiseOnFly();
87 if ( nullptr == mod ) { return finalState; }
88 }
89
90 // The boolean "true", as last argument, specifies to G4ParticleHPChannel::ApplyYourself
91 // that it is an elastic channel: this is needed for the special DBRC treatment.
92 finalState = mod->ApplyYourself(aTrack, -1, true);
93
94 fManagerHP->CloseReactionWhiteBoard();
95 return finalState;
96}
const G4double A[17]
G4HadFinalState * ApplyYourself(const G4HadProjectile &theTrack, G4int isoNumber=-1, G4bool isElastic=false)

◆ BuildPhysicsTable()

void G4NeutronHPElasticVI::BuildPhysicsTable ( const G4ParticleDefinition & )
overridevirtual

Reimplemented from G4HadronicInteraction.

Definition at line 104 of file G4NeutronHPElasticVI.cc.

105{
106 if ( fInitializer ) { Initialise(); }
107}

◆ GetFatalEnergyCheckLevels()

const std::pair< G4double, G4double > G4NeutronHPElasticVI::GetFatalEnergyCheckLevels ( ) const
overridevirtual

Reimplemented from G4HadronicInteraction.

Definition at line 98 of file G4NeutronHPElasticVI.cc.

99{
100 // max energy non-conservation is mass of heavy nucleus
101 return std::pair<G4double, G4double>(10.0 * perCent, 350.0 * CLHEP::GeV);
102}

◆ ModelDescription()

void G4NeutronHPElasticVI::ModelDescription ( std::ostream & outFile) const
overridevirtual

Reimplemented from G4HadronicInteraction.

Definition at line 135 of file G4NeutronHPElasticVI.cc.

136{
137 outFile << "High Precision model based on Evaluated Nuclear Data Files"
138 << " (ENDF) for elastic scattering of neutrons below 20MeV\n";
139}

◆ operator=()

G4NeutronHPElasticVI & G4NeutronHPElasticVI::operator= ( const G4NeutronHPElasticVI & right)
delete

The documentation for this class was generated from the following files: