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

#include <G4HadronElasticPhysicsVI.hh>

Inheritance diagram for G4HadronElasticPhysicsVI:

Public Member Functions

 G4HadronElasticPhysicsVI (G4int ver=1)
 ~G4HadronElasticPhysicsVI () override=default
void ConstructProcess () final
 G4HadronElasticPhysicsVI (const G4HadronElasticPhysicsVI &)=delete
G4HadronElasticPhysicsVIoperator= (const G4HadronElasticPhysicsVI &)=delete
Public Member Functions inherited from G4HadronElasticPhysics
 G4HadronElasticPhysics (G4int ver=1, const G4String &nam="hElasticWEL_CHIPS_XS")
 ~G4HadronElasticPhysics () override=default
void ConstructParticle () override
G4HadronicProcessGetElasticProcess (const G4ParticleDefinition *part) const
G4HadronElasticGetElasticModel (const G4ParticleDefinition *part) const
G4HadronicProcessGetNeutronProcess () const
G4HadronElasticGetNeutronModel () const
void AddXSection (const G4ParticleDefinition *, G4VCrossSectionDataSet *) const
 G4HadronElasticPhysics (G4HadronElasticPhysics &)=delete
G4HadronElasticPhysicsoperator= (const G4HadronElasticPhysics &right)=delete
Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
virtual ~G4VPhysicsConstructor ()
void SetPhysicsName (const G4String &="")
const G4StringGetPhysicsName () const
void SetPhysicsType (G4int)
G4int GetPhysicsType () const
G4int GetInstanceID () const
virtual void TerminateWorker ()
void SetVerboseLevel (G4int value)
G4int GetVerboseLevel () const

Additional Inherited Members

Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
Protected Types inherited from G4VPhysicsConstructor
using PhysicsBuilder_V = G4VPCData::PhysicsBuilders_V
Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
PhysicsBuilder_V GetBuilders () const
void AddBuilder (G4PhysicsBuilderInterface *bld)
Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel = 0
G4String namePhysics = ""
G4int typePhysics = 0
G4ParticleTabletheParticleTable = nullptr
G4int g4vpcInstanceID = 0
Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager

Detailed Description

Definition at line 40 of file G4HadronElasticPhysicsVI.hh.

Constructor & Destructor Documentation

◆ G4HadronElasticPhysicsVI() [1/2]

G4HadronElasticPhysicsVI::G4HadronElasticPhysicsVI ( G4int ver = 1)
explicit

Definition at line 54 of file G4HadronElasticPhysicsVI.cc.

55 : G4HadronElasticPhysics(ver, "nElasticPhysics_HP")
56{
57 if(ver > 1) {
58 G4cout << "### G4HadronElasticPhysicsVI: " << GetPhysicsName()
59 << G4endl;
60 }
61 auto param = G4HadronicParameters::Instance();
62 // HP is inconsistent with the neutron general process
63 param->SetEnableNeutronGeneralProcess(false);
64}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
G4HadronElasticPhysics(G4int ver=1, const G4String &nam="hElasticWEL_CHIPS_XS")
static G4HadronicParameters * Instance()
const G4String & GetPhysicsName() const

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

◆ ~G4HadronElasticPhysicsVI()

G4HadronElasticPhysicsVI::~G4HadronElasticPhysicsVI ( )
overridedefault

◆ G4HadronElasticPhysicsVI() [2/2]

G4HadronElasticPhysicsVI::G4HadronElasticPhysicsVI ( const G4HadronElasticPhysicsVI & )
delete

Member Function Documentation

◆ ConstructProcess()

void G4HadronElasticPhysicsVI::ConstructProcess ( )
finalvirtual

Reimplemented from G4HadronElasticPhysics.

Definition at line 66 of file G4HadronElasticPhysicsVI.cc.

67{
69
70 const G4ParticleDefinition* neutron = G4Neutron::Neutron();
71 G4HadronicProcess* hel = G4PhysListUtil::FindElasticProcess( neutron );
72 if ( nullptr == hel ) {
73 hel = new G4HadronicProcess();
74 neutron->GetProcessManager()->AddDiscreteProcess(hel);
75 } else {
76 G4HadronElastic* he = GetElasticModel(neutron);
77 he->SetMinEnergy(19.5*CLHEP::MeV);
78 }
79 // apply alternative cross section
80 hel->AddDataSet( new G4NeutronHPElasticXS() );
81
82 // add HP elastic
83 auto he = new G4NeutronHPElasticVI();
84 he->SetMaxEnergy(20*CLHEP::MeV);
85 hel->RegisterMe( he );
86
88 G4cout << "### HadronElasticPhysicsVI is constructed "
89 << G4endl;
90 }
91}
G4HadronElastic * GetElasticModel(const G4ParticleDefinition *part) const
void SetMinEnergy(G4double anEnergy)
void SetMaxEnergy(const G4double anEnergy)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
void RegisterMe(G4HadronicInteraction *a)
static G4Neutron * Neutron()
Definition G4Neutron.cc:101
static G4HadronicProcess * FindElasticProcess(const G4ParticleDefinition *)

◆ operator=()

G4HadronElasticPhysicsVI & G4HadronElasticPhysicsVI::operator= ( const G4HadronElasticPhysicsVI & )
delete

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