Loading...
Searching...
No Matches
Public Member Functions | List of all members
PhysListEmStandard Class Reference

#include <PhysListEmStandard.hh>

Inheritance diagram for PhysListEmStandard:
G4VPhysicsConstructor

Public Member Functions

 PhysListEmStandard (const G4String &name="standard")
 
 ~PhysListEmStandard () override=default
 
void ConstructParticle () override
 
void ConstructProcess () override
 

Detailed Description

Definition at line 41 of file PhysListEmStandard.hh.

Constructor & Destructor Documentation

◆ PhysListEmStandard()

PhysListEmStandard::PhysListEmStandard ( const G4String name = "standard")

Definition at line 71 of file PhysListEmStandard.cc.

73{
74 G4EmParameters* param = G4EmParameters::Instance();
75 param->SetDefaults();
76 param->SetVerbose(0);
77 param->SetMinEnergy(10*eV);
78 param->SetMaxEnergy(10*TeV);
79 param->SetNumberOfBinsPerDecade(10);
80 param->SetStepFunction(0.1, 100*um);
81 param->SetStepFunctionMuHad(0.1, 50*um);
82 param->SetStepFunctionLightIons(0.1, 20*um);
83 param->SetStepFunctionIons(0.1, 1*um);
84 param->SetMscStepLimitType(fUseDistanceToBoundary);
85 param->SetDeexcitationIgnoreCut(true);
86 SetPhysicsType(bElectromagnetic);
87}

◆ ~PhysListEmStandard()

PhysListEmStandard::~PhysListEmStandard ( )
overridedefault

Member Function Documentation

◆ ConstructParticle()

void PhysListEmStandard::ConstructParticle ( )
inlineoverride

Definition at line 49 of file PhysListEmStandard.hh.

49{};

◆ ConstructProcess()

void PhysListEmStandard::ConstructProcess ( )
override

Definition at line 91 of file PhysListEmStandard.cc.

92{
93 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
94
95 // Add standard EM Processes
96 //
97 auto particleIterator=GetParticleIterator();
98 particleIterator->reset();
99 while( (*particleIterator)() ){
100 G4ParticleDefinition* particle = particleIterator->value();
101 G4String particleName = particle->GetParticleName();
102
103 if (particleName == "gamma") {
104
105 ph->RegisterProcess(new G4RayleighScattering, particle);
106 ph->RegisterProcess(new G4PhotoElectricEffect, particle);
108 cs->SetEmModel(new G4KleinNishinaModel());
109 ph->RegisterProcess(cs, particle);
110 ph->RegisterProcess(new G4GammaConversion, particle);
111
112 } else if (particleName == "e-") {
113
114 ph->RegisterProcess(new G4eMultipleScattering(), particle);
115 ph->RegisterProcess(new G4eIonisation(), particle);
116 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
117
118 } else if (particleName == "e+") {
119
120 ph->RegisterProcess(new G4eMultipleScattering(), particle);
121 ph->RegisterProcess(new G4eIonisation(), particle);
122 ph->RegisterProcess(new G4eBremsstrahlung(), particle);
123 ph->RegisterProcess(new G4eplusAnnihilation(), particle);
124
125 } else if (particleName == "mu+" ||
126 particleName == "mu-" ) {
127
128 ph->RegisterProcess(new G4MuMultipleScattering(), particle);
129 ph->RegisterProcess(new G4MuIonisation(), particle);
130 ph->RegisterProcess(new G4MuBremsstrahlung(), particle);
131 ph->RegisterProcess(new G4MuPairProduction(), particle);
132
133 } else if( particleName == "proton" ||
134 particleName == "pi-" ||
135 particleName == "pi+" ) {
136
137 ph->RegisterProcess(new G4hMultipleScattering(), particle);
138 ph->RegisterProcess(new G4hIonisation(), particle);
139 ph->RegisterProcess(new G4hBremsstrahlung(), particle);
140 ph->RegisterProcess(new G4hPairProduction(), particle);
141
142 } else if( particleName == "alpha" ||
143 particleName == "He3" ) {
144
145 ph->RegisterProcess(new G4hMultipleScattering(), particle);
146 ph->RegisterProcess(new G4ionIonisation(), particle);
147 ph->RegisterProcess(new G4NuclearStopping(), particle);
148
149 } else if( particleName == "GenericIon" ) {
150
151 ph->RegisterProcess(new G4hMultipleScattering(), particle);
152 G4ionIonisation* ionIoni = new G4ionIonisation();
153 ionIoni->SetEmModel(new G4IonParametrisedLossModel());
154 ph->RegisterProcess(ionIoni, particle);
155 ph->RegisterProcess(new G4NuclearStopping(), particle);
156
157 } else if ((!particle->IsShortLived()) &&
158 (particle->GetPDGCharge() != 0.0) &&
159 (particle->GetParticleName() != "chargedgeantino")) {
160
161 //all others charged particles except geantino
162 ph->RegisterProcess(new G4hMultipleScattering(), particle);
163 ph->RegisterProcess(new G4hIonisation(), particle);
164 }
165 }
166
167 // Deexcitation
168 //
170 G4LossTableManager::Instance()->SetAtomDeexcitation(de);
171}

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