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

#include <G4StoppingPhysicsFritiofWithBinaryCascade.hh>

Inheritance diagram for G4StoppingPhysicsFritiofWithBinaryCascade:

Public Member Functions

 G4StoppingPhysicsFritiofWithBinaryCascade (G4int ver=1)
 G4StoppingPhysicsFritiofWithBinaryCascade (const G4String &name, G4int ver=1, G4bool useMuCapture=true)
 ~G4StoppingPhysicsFritiofWithBinaryCascade () override
void ConstructParticle () override
void ConstructProcess () override
void SetMuonMinusCapture (G4bool val)
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 53 of file G4StoppingPhysicsFritiofWithBinaryCascade.hh.

Constructor & Destructor Documentation

◆ G4StoppingPhysicsFritiofWithBinaryCascade() [1/2]

G4StoppingPhysicsFritiofWithBinaryCascade::G4StoppingPhysicsFritiofWithBinaryCascade ( G4int ver = 1)

◆ G4StoppingPhysicsFritiofWithBinaryCascade() [2/2]

G4StoppingPhysicsFritiofWithBinaryCascade::G4StoppingPhysicsFritiofWithBinaryCascade ( const G4String & name,
G4int ver = 1,
G4bool useMuCapture = true )

Definition at line 63 of file G4StoppingPhysicsFritiofWithBinaryCascade.cc.

65 :
66 G4VPhysicsConstructor( name ), verbose( ver ),
67 useMuonMinusCapture( UseMuonMinusCapture )
68{
70 if(verbose > 1) G4cout << "### G4StoppingPhysicsFritiofWithBinaryCascade"
71 << G4endl;
72}
@ bStopping
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
G4VPhysicsConstructor(const G4String &="")

◆ ~G4StoppingPhysicsFritiofWithBinaryCascade()

G4StoppingPhysicsFritiofWithBinaryCascade::~G4StoppingPhysicsFritiofWithBinaryCascade ( )
override

Definition at line 74 of file G4StoppingPhysicsFritiofWithBinaryCascade.cc.

74{}

Member Function Documentation

◆ ConstructParticle()

void G4StoppingPhysicsFritiofWithBinaryCascade::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 77 of file G4StoppingPhysicsFritiofWithBinaryCascade.cc.

77 {
78 // G4cout << "G4StoppingPhysicsFritiofWithBinaryCascade::ConstructParticle" << G4endl;
79 G4LeptonConstructor pLeptonConstructor;
80 pLeptonConstructor.ConstructParticle();
81
82 G4MesonConstructor pMesonConstructor;
83 pMesonConstructor.ConstructParticle();
84
85 G4BaryonConstructor pBaryonConstructor;
86 pBaryonConstructor.ConstructParticle();
87}
static void ConstructParticle()
static void ConstructParticle()
static void ConstructParticle()

◆ ConstructProcess()

void G4StoppingPhysicsFritiofWithBinaryCascade::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 89 of file G4StoppingPhysicsFritiofWithBinaryCascade.cc.

89 {
90 if ( verbose > 1 ) G4cout << "### G4StoppingPhysicsFritiofWithBinaryCascade::ConstructProcess " << G4endl;
91
92 G4MuonMinusCapture* muProcess = nullptr;
93 if ( useMuonMinusCapture ) {
94 muProcess = new G4MuonMinusCapture();
95 }
96
97 G4HadronicAbsorptionBertini* hBertiniProcess = new G4HadronicAbsorptionBertini;
98 G4HadronicAbsorptionFritiof* hFritiofProcess = new G4HadronicAbsorptionFritiof;
99 G4HadronicAbsorptionFritiofWithBinaryCascade* hFritiofWithBinaryCascadeProcess =
100 new G4HadronicAbsorptionFritiofWithBinaryCascade;
101
102 G4double mThreshold = 130.0*MeV;
103
104 // Add Stopping Process
105 G4ParticleDefinition* particle = 0;
106 G4ProcessManager* pmanager = 0;
107
108 auto myParticleIterator=GetParticleIterator();
109 myParticleIterator->reset();
110
111 while ( (*myParticleIterator)() ) {
112
113 particle = myParticleIterator->value();
114 pmanager = particle->GetProcessManager();
115
116 if (useMuonMinusCapture && particle == G4MuonMinus::MuonMinus() ) {
117 pmanager->AddRestProcess( muProcess );
118 if ( verbose > 1 ) {
119 G4cout << "### G4MuonMinusCapture added for "
120 << particle->GetParticleName() << G4endl;
121 }
122 }
123
124 if ( particle->GetPDGCharge() <= 0.0 &&
125 particle->GetPDGMass() > mThreshold &&
126 ( ! particle->IsShortLived() ) ) {
127
128 // Use Fritiof/BinaryCascade for: anti-proton and anti-neutron
129 if ( particle == G4AntiProton::Definition() ||
130 particle == G4AntiNeutron::Definition() ) {
131 if ( hFritiofWithBinaryCascadeProcess->IsApplicable( *particle ) ) {
132 pmanager->AddRestProcess( hFritiofWithBinaryCascadeProcess );
133 if ( verbose > 1 ) {
134 G4cout << "### G4HadronicAbsorptionFritiofWithBinaryCascade added for "
135 << particle->GetParticleName() << G4endl;
136 }
137 }
138
139 // Use Fritiof/Precompound for:
140 // anti-lambda, anti-sigma0, anti-sigma+, anti-xi0 and anti-nuclei
141 } else if ( particle == G4AntiLambda::Definition() ||
142 particle == G4AntiSigmaZero::Definition() ||
143 particle == G4AntiSigmaPlus::Definition() ||
144 particle == G4AntiXiZero::Definition() ||
145 particle->GetBaryonNumber() < -1 ) { // Anti-nuclei
146 if ( hFritiofProcess->IsApplicable( *particle ) ) {
147 pmanager->AddRestProcess( hFritiofProcess );
148 if ( verbose > 1 ) {
149 G4cout << "### G4HadronicAbsorptionFritiof added for "
150 << particle->GetParticleName() << G4endl;
151 }
152 }
153
154 // Use Bertini for pi-, K-, Sigma-, Xi-, and Omega-
155 } else if ( particle == G4PionMinus::Definition() ||
156 particle == G4KaonMinus::Definition() ||
157 particle == G4SigmaMinus::Definition() ||
158 particle == G4XiMinus::Definition() ||
159 particle == G4OmegaMinus::Definition() ) {
160 if ( hBertiniProcess->IsApplicable( *particle ) ) {
161 pmanager->AddRestProcess( hBertiniProcess );
162 if ( verbose > 1 ) {
163 G4cout << "### G4HadronicAbsorptionBertini added for "
164 << particle->GetParticleName() << G4endl;
165 }
166 }
167
168 } else {
169 if ( verbose > 1 ) {
170 G4cout << "WARNING in G4StoppingPhysicsFritiofWithBinaryCascade::ConstructProcess: \
171 not able to deal with nuclear stopping of "
172 << particle->GetParticleName() << G4endl;
173 }
174 }
175 }
176 } // end of while loop
177}
double G4double
Definition G4Types.hh:83
static G4AntiLambda * Definition()
static G4AntiNeutron * Definition()
static G4AntiProton * Definition()
static G4AntiSigmaPlus * Definition()
static G4AntiSigmaZero * Definition()
static G4AntiXiZero * Definition()
G4bool IsApplicable(const G4ParticleDefinition &)
G4bool IsApplicable(const G4ParticleDefinition &)
static G4KaonMinus * Definition()
static G4MuonMinus * MuonMinus()
static G4OmegaMinus * Definition()
G4ProcessManager * GetProcessManager() const
const G4String & GetParticleName() const
static G4PionMinus * Definition()
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4SigmaMinus * Definition()
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
static G4XiMinus * Definition()
Definition G4XiMinus.cc:48

◆ SetMuonMinusCapture()

void G4StoppingPhysicsFritiofWithBinaryCascade::SetMuonMinusCapture ( G4bool val)
inline

Definition at line 69 of file G4StoppingPhysicsFritiofWithBinaryCascade.hh.

70 { useMuonMinusCapture = val; };

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