Geant4 10.7.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 ()
 
virtual void ConstructParticle ()=0
 
virtual void ConstructProcess ()=0
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 
virtual void TerminateWorker ()
 

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
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- 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:57
G4GLOB_DLL std::ostream G4cout

◆ ~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
99 G4HadronicAbsorptionFritiofWithBinaryCascade* hFritiofWithBinaryCascadeProcess =
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()
Definition: G4AntiLambda.cc:52
static G4AntiNeutron * Definition()
static G4AntiProton * Definition()
Definition: G4AntiProton.cc:50
static G4AntiSigmaPlus * Definition()
static G4AntiSigmaZero * Definition()
static G4AntiXiZero * Definition()
Definition: G4AntiXiZero.cc:52
G4bool IsApplicable(const G4ParticleDefinition &)
G4bool IsApplicable(const G4ParticleDefinition &)
static G4KaonMinus * Definition()
Definition: G4KaonMinus.cc:53
static G4MuonMinus * MuonMinus()
Definition: G4MuonMinus.cc:99
static G4OmegaMinus * Definition()
Definition: G4OmegaMinus.cc:52
G4ProcessManager * GetProcessManager() const
G4double GetPDGCharge() const
const G4String & GetParticleName() const
static G4PionMinus * Definition()
Definition: G4PionMinus.cc:51
G4int AddRestProcess(G4VProcess *aProcess, G4int ord=ordDefault)
static G4SigmaMinus * Definition()
Definition: G4SigmaMinus.cc:52
G4ParticleTable::G4PTblDicIterator * GetParticleIterator() const
static G4XiMinus * Definition()
Definition: G4XiMinus.cc:52

◆ 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: