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

#include <G4EmStandardPhysicsSS.hh>

+ Inheritance diagram for G4EmStandardPhysicsSS:

Public Member Functions

 G4EmStandardPhysicsSS (G4int ver=1)
 
 ~G4EmStandardPhysicsSS () override
 
void ConstructParticle () override
 
void ConstructProcess () override
 
- 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 50 of file G4EmStandardPhysicsSS.hh.

Constructor & Destructor Documentation

◆ G4EmStandardPhysicsSS()

G4EmStandardPhysicsSS::G4EmStandardPhysicsSS ( G4int  ver = 1)
explicit

Definition at line 118 of file G4EmStandardPhysicsSS.cc.

119 : G4VPhysicsConstructor("G4EmStandardSS"), verbose(ver)
120{
122 param->SetDefaults();
123 param->SetVerbose(verbose);
124 param->SetLowestElectronEnergy(10*CLHEP::eV);
125 param->SetMscThetaLimit(0.0);
126 param->SetAugerCascade(true);
127 param->SetPixe(true);
129}
@ bElectromagnetic
void SetLowestElectronEnergy(G4double val)
static G4EmParameters * Instance()
void SetMscThetaLimit(G4double val)
void SetAugerCascade(G4bool val)
void SetVerbose(G4int val)
void SetPixe(G4bool val)

◆ ~G4EmStandardPhysicsSS()

G4EmStandardPhysicsSS::~G4EmStandardPhysicsSS ( )
override

Definition at line 133 of file G4EmStandardPhysicsSS.cc.

134{}

Member Function Documentation

◆ ConstructParticle()

void G4EmStandardPhysicsSS::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 138 of file G4EmStandardPhysicsSS.cc.

139{
140 // minimal set of particles for EM physics
142}
static void ConstructMinimalEmSet()
Definition: G4EmBuilder.cc:234

◆ ConstructProcess()

void G4EmStandardPhysicsSS::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 146 of file G4EmStandardPhysicsSS.cc.

147{
148 if(verbose > 1) {
149 G4cout << "### " << GetPhysicsName() << " Construct Processes " << G4endl;
150 }
152
154
155 // muon & hadron bremsstrahlung and pair production
164
165 // muon & hadron scattering
172
173 // Add standard EM Processes
175 for(const auto& particleName : partList.PartNames()) {
176 G4ParticleDefinition* particle = table->FindParticle(particleName);
177 if (!particle) { continue; }
178 if (particleName == "gamma") {
179
182
185
186 ph->RegisterProcess(pee, particle);
187 ph->RegisterProcess(cs, particle);
188 ph->RegisterProcess(new G4GammaConversion(), particle);
189 ph->RegisterProcess(new G4RayleighScattering(), particle);
190
191 } else if (particleName == "e-") {
192
195// if(G4EmParameters::Instance()->UseMottCorrection()) {
196// ss->SetEmModel(new G4eSingleCoulombScatteringModel());
197// }
198
199 ph->RegisterProcess(new G4eIonisation(), particle);
200 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
201 ph->RegisterProcess(ss, particle);
202
203 } else if (particleName == "e+") {
204
207// if(G4EmParameters::Instance()->UseMottCorrection()) {
208// ss->SetEmModel(new G4eSingleCoulombScatteringModel());
209// }
210
211 ph->RegisterProcess(new G4eIonisation(), particle);
212 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
213 ph->RegisterProcess(new G4eplusAnnihilation(), particle);
214 ph->RegisterProcess(ss, particle);
215
216 } else if (particleName == "mu+" ||
217 particleName == "mu-" ) {
218
219 ph->RegisterProcess(new G4MuIonisation(), particle);
220 ph->RegisterProcess(mub, particle);
221 ph->RegisterProcess(mup, particle);
222 ph->RegisterProcess(muss, particle);
223
224 } else if (particleName == "alpha" ||
225 particleName == "He3") {
226
227 ph->RegisterProcess(new G4ionIonisation(), particle);
228 ph->RegisterProcess(new G4CoulombScattering(), particle);
229
230 } else if (particleName == "GenericIon") {
231
232 ph->RegisterProcess(new G4ionIonisation(), particle);
233 ph->RegisterProcess(new G4CoulombScattering(), particle);
234
235 } else if (particleName == "pi+" ||
236 particleName == "pi-" ) {
237
238 ph->RegisterProcess(new G4hIonisation(), particle);
239 ph->RegisterProcess(pib, particle);
240 ph->RegisterProcess(pip, particle);
241 ph->RegisterProcess(piss, particle);
242
243 } else if (particleName == "kaon+" ||
244 particleName == "kaon-" ) {
245
246 ph->RegisterProcess(new G4hIonisation(), particle);
247 ph->RegisterProcess(kb, particle);
248 ph->RegisterProcess(kp, particle);
249 ph->RegisterProcess(kss, particle);
250
251 } else if (particleName == "proton" ||
252 particleName == "anti_proton") {
253
256
257 ph->RegisterProcess(new G4hIonisation(), particle);
258 ph->RegisterProcess(pb, particle);
259 ph->RegisterProcess(pp, particle);
260 ph->RegisterProcess(pss, particle);
261
262 } else if (particleName == "B+" ||
263 particleName == "B-" ||
264 particleName == "D+" ||
265 particleName == "D-" ||
266 particleName == "Ds+" ||
267 particleName == "Ds-" ||
268 particleName == "anti_He3" ||
269 particleName == "anti_alpha" ||
270 particleName == "anti_deuteron" ||
271 particleName == "anti_lambda_c+" ||
272 particleName == "anti_omega-" ||
273 particleName == "anti_sigma_c+" ||
274 particleName == "anti_sigma_c++" ||
275 particleName == "anti_sigma+" ||
276 particleName == "anti_sigma-" ||
277 particleName == "anti_triton" ||
278 particleName == "anti_xi_c+" ||
279 particleName == "anti_xi-" ||
280 particleName == "deuteron" ||
281 particleName == "lambda_c+" ||
282 particleName == "omega-" ||
283 particleName == "sigma_c+" ||
284 particleName == "sigma_c++" ||
285 particleName == "sigma+" ||
286 particleName == "sigma-" ||
287 particleName == "tau+" ||
288 particleName == "tau-" ||
289 particleName == "triton" ||
290 particleName == "xi_c+" ||
291 particleName == "xi-" ) {
292
293 ph->RegisterProcess(new G4hIonisation(), particle);
294 ph->RegisterProcess(new G4CoulombScattering(), particle);
295 }
296 }
297
299}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
static void PrepareEMPhysics()
Definition: G4EmBuilder.cc:259
const std::vector< G4String > & PartNames() const
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
void AddEmModel(G4int, G4VEmModel *, const G4Region *region=nullptr)
void SetEmModel(G4VEmModel *, G4int index=0)
const G4String & GetPhysicsName() const

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