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

#include <G4ChargeExchangePhysics.hh>

+ Inheritance diagram for G4ChargeExchangePhysics:

Public Member Functions

 G4ChargeExchangePhysics (G4int ver=1)
 
 ~G4ChargeExchangePhysics () override=default
 
void ConstructParticle () override
 
void ConstructProcess () override
 
void SetLowEnergyLimit (G4double val)
 
void SetCrossSectionFactor (G4double val)
 
G4ChargeExchangePhysicsoperator= (const G4ChargeExchangePhysics &right)=delete
 
 G4ChargeExchangePhysics (const G4ChargeExchangePhysics &)=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 44 of file G4ChargeExchangePhysics.hh.

Constructor & Destructor Documentation

◆ G4ChargeExchangePhysics() [1/2]

G4ChargeExchangePhysics::G4ChargeExchangePhysics ( G4int ver = 1)
explicit

Definition at line 64 of file G4ChargeExchangePhysics.cc.

65 : G4VPhysicsConstructor("chargeExchange"),
66 fLowEnergyLimit(12*CLHEP::GeV)
67{
68 // because it is an addition, the type of this constructor is 0
70 if (ver > 1) {
71 G4cout << "### ChargeExchangePhysics above "
72 << fLowEnergyLimit/CLHEP::GeV << " GeV." << G4endl;
73 }
74}
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
static G4HadronicParameters * Instance()
void SetVerboseLevel(const G4int val)
G4VPhysicsConstructor(const G4String &="")

◆ ~G4ChargeExchangePhysics()

G4ChargeExchangePhysics::~G4ChargeExchangePhysics ( )
overridedefault

◆ G4ChargeExchangePhysics() [2/2]

G4ChargeExchangePhysics::G4ChargeExchangePhysics ( const G4ChargeExchangePhysics & )
delete

Member Function Documentation

◆ ConstructParticle()

void G4ChargeExchangePhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 76 of file G4ChargeExchangePhysics.cc.

77{
78 G4MesonConstructor pMesonConstructor;
79 pMesonConstructor.ConstructParticle();
80
81 G4BaryonConstructor pBaryonConstructor;
82 pBaryonConstructor.ConstructParticle();
83
84 G4ShortLivedConstructor pShortLivedConstructor;
85 pShortLivedConstructor.ConstructParticle();
86}
static void ConstructParticle()
static void ConstructParticle()

◆ ConstructProcess()

void G4ChargeExchangePhysics::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 88 of file G4ChargeExchangePhysics.cc.

89{
90 auto xs = new G4ChargeExchangeXS();
91 xs->SetEnergyLimit(fLowEnergyLimit);
92 xs->SetCrossSectionFactor(fXSFactor);
93
94 auto model = new G4ChargeExchange(xs);
95
97 G4cout << "### ChargeExchangePhysics Construct Processes with the model <"
98 << model->GetModelName() << "> and x-section <"
99 << xs->GetName() << "> XSFactor=" << fXSFactor
100 << G4endl;
101 }
102
103 // pi-
105 auto proc =
106 new G4HadronInelasticProcess(part->GetParticleName()+"ChargeEx", part);
107 proc->AddDataSet( xs );
108 proc->RegisterMe( model );
109 G4ProcessManager* pman = part->GetProcessManager();
110 pman->AddDiscreteProcess(proc);
111
112 // pi+
113 part = G4PionPlus::PionPlus();
114 proc = new G4HadronInelasticProcess(part->GetParticleName()+"ChargeEx", part);
115 proc->AddDataSet( xs );
116 proc->RegisterMe( model );
117 pman = part->GetProcessManager();
118 pman->AddDiscreteProcess(proc);
119
120 // kaon-
121 part = G4KaonMinus::KaonMinus();
122 proc = new G4HadronInelasticProcess(part->GetParticleName()+"ChargeEx", part);
123 proc->AddDataSet( xs );
124 proc->RegisterMe( model );
125 pman = part->GetProcessManager();
126 pman->AddDiscreteProcess(proc);
127
128
129 // kaon+
130 part = G4KaonPlus::KaonPlus();
131 proc = new G4HadronInelasticProcess(part->GetParticleName()+"ChargeEx", part);
132 proc->AddDataSet( xs );
133 proc->RegisterMe( model );
134 pman = part->GetProcessManager();
135 pman->AddDiscreteProcess(proc);
136
137 // KL
139 proc = new G4HadronInelasticProcess(part->GetParticleName()+"ChargeEx", part);
140 proc->AddDataSet( xs );
141 proc->RegisterMe( model );
142 pman = part->GetProcessManager();
143 pman->AddDiscreteProcess(proc);
144}
static G4KaonMinus * KaonMinus()
static G4KaonPlus * KaonPlus()
static G4KaonZeroLong * KaonZeroLong()
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
Definition G4PionPlus.cc:93
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)

◆ operator=()

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

◆ SetCrossSectionFactor()

void G4ChargeExchangePhysics::SetCrossSectionFactor ( G4double val)
inline

Definition at line 56 of file G4ChargeExchangePhysics.hh.

56{ fXSFactor = val; }

Referenced by G4ChargeExchangeMessenger::SetNewValue().

◆ SetLowEnergyLimit()

void G4ChargeExchangePhysics::SetLowEnergyLimit ( G4double val)
inline

Definition at line 54 of file G4ChargeExchangePhysics.hh.

54{ fLowEnergyLimit = val; }

Referenced by G4ChargeExchangeMessenger::SetNewValue().


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