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

#include <G4EmExtraPhysics.hh>

Inheritance diagram for G4EmExtraPhysics:

Public Member Functions

 G4EmExtraPhysics (G4int ver=1)
 G4EmExtraPhysics (const G4String &name)
 ~G4EmExtraPhysics () override
void ConstructParticle () override
void ConstructProcess () override
void Synch (G4bool val)
void SynchAll (G4bool val)
void GammaNuclear (G4bool val)
void LENDGammaNuclear (G4bool val)
void ElectroNuclear (G4bool val)
void MuonNuclear (G4bool val)
void GammaToMuMu (G4bool val)
void MuonToMuMu (G4bool val)
void PositronToMuMu (G4bool val)
void PositronToHadrons (G4bool val)
void GammaToMuMuFactor (G4double val)
void PositronToMuMuFactor (G4double val)
void PositronToHadronsFactor (G4double val)
void GammaNuclearLEModelLimit (G4double val)
void SetUseGammaNuclearXS (G4bool val)
G4EmExtraPhysicsoperator= (const G4EmExtraPhysics &right)=delete
 G4EmExtraPhysics (const G4EmExtraPhysics &)=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 55 of file G4EmExtraPhysics.hh.

Constructor & Destructor Documentation

◆ G4EmExtraPhysics() [1/3]

G4EmExtraPhysics::G4EmExtraPhysics ( G4int ver = 1)

Definition at line 109 of file G4EmExtraPhysics.cc.

109 :
110 G4VPhysicsConstructor("G4GammaLeptoNuclearPhys"),
111 fGNLowEnergyLimit(200*CLHEP::MeV),
112 verbose(ver)
113{
114 theMessenger = new G4EmMessenger(this);
116 if (verbose > 1) G4cout << "### G4EmExtraPhysics" << G4endl;
117}
@ bEmExtra
#define G4endl
Definition G4ios.hh:67
G4GLOB_DLL std::ostream G4cout
G4VPhysicsConstructor(const G4String &="")

Referenced by G4EmExtraPhysics(), G4EmExtraPhysics(), and operator=().

◆ G4EmExtraPhysics() [2/3]

G4EmExtraPhysics::G4EmExtraPhysics ( const G4String & name)

Definition at line 119 of file G4EmExtraPhysics.cc.

121{}
G4EmExtraPhysics(G4int ver=1)

◆ ~G4EmExtraPhysics()

G4EmExtraPhysics::~G4EmExtraPhysics ( )
override

Definition at line 123 of file G4EmExtraPhysics.cc.

124{
125 delete theMessenger;
126}

◆ G4EmExtraPhysics() [3/3]

G4EmExtraPhysics::G4EmExtraPhysics ( const G4EmExtraPhysics & )
delete

Member Function Documentation

◆ ConstructParticle()

void G4EmExtraPhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 216 of file G4EmExtraPhysics.cc.

217{
223}
static G4Electron * Electron()
Definition G4Electron.cc:91
static G4Gamma * Gamma()
Definition G4Gamma.cc:81
static G4MuonMinus * MuonMinus()
static G4MuonPlus * MuonPlus()
Definition G4MuonPlus.cc:98
static G4Positron * Positron()
Definition G4Positron.cc:90

◆ ConstructProcess()

void G4EmExtraPhysics::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 225 of file G4EmExtraPhysics.cc.

226{
227 G4ParticleDefinition* gamma = G4Gamma::Gamma();
228 G4ParticleDefinition* electron = G4Electron::Electron();
229 G4ParticleDefinition* positron = G4Positron::Positron();
230 G4ParticleDefinition* muonplus = G4MuonPlus::MuonPlus();
231 G4ParticleDefinition* muonminus = G4MuonMinus::MuonMinus();
232
233 G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper();
234 G4LossTableManager* emManager = G4LossTableManager::Instance();
235
236 if (gnActivated) { ConstructGammaElectroNuclear(); }
237
238 if (munActivated) {
239 G4MuonNuclearProcess* muNucProcess = new G4MuonNuclearProcess();
240 G4MuonVDNuclearModel* muNucModel = new G4MuonVDNuclearModel();
241 muNucProcess->RegisterMe(muNucModel);
242 ph->RegisterProcess( muNucProcess, muonplus);
243 ph->RegisterProcess( muNucProcess, muonminus);
244 }
245 if (gmumuActivated) {
246 G4GammaConversionToMuons* theGammaToMuMu = new G4GammaConversionToMuons();
247 theGammaToMuMu->SetCrossSecFactor(gmumuFactor);
248 G4GammaGeneralProcess* sp =
249 dynamic_cast<G4GammaGeneralProcess*>(emManager->GetGammaGeneralProcess());
250 if (nullptr != sp) {
251 sp->AddMMProcess(theGammaToMuMu);
252 } else {
253 ph->RegisterProcess(theGammaToMuMu, gamma);
254 }
255 }
256 if (mmumuActivated) {
257 auto proc = new G4MuonToMuonPairProduction();
258 ph->RegisterProcess(proc, muonplus);
259 ph->RegisterProcess(proc, muonminus);
260 }
261 if (pmumuActivated) {
262 G4AnnihiToMuPair* thePosiToMuMu = new G4AnnihiToMuPair();
263 thePosiToMuMu->SetCrossSecFactor(pmumuFactor);
264 ph->RegisterProcess(thePosiToMuMu, positron);
265 G4AnnihiToMuPair* thePosiToTauTau = new G4AnnihiToMuPair("AnnihiToTauPair");
266 thePosiToTauTau->SetCrossSecFactor(pmumuFactor);
267 ph->RegisterProcess(thePosiToTauTau, positron);
268 }
269 if (phadActivated) {
270 G4eeToHadrons* thePosiToHadrons = new G4eeToHadrons();
271 thePosiToHadrons->SetCrossSecFactor(phadFactor);
272 ph->RegisterProcess(thePosiToHadrons, positron);
273 }
274 if (synActivated) {
275 G4SynchrotronRadiation* theSynchRad = new G4SynchrotronRadiation();
276 ph->RegisterProcess( theSynchRad, electron);
277 ph->RegisterProcess( theSynchRad, positron);
278 if (synActivatedForAll) {
279 ph->RegisterProcess( theSynchRad, muonplus);
280 ph->RegisterProcess( theSynchRad, muonminus);
281
282 ph->RegisterProcess( theSynchRad, G4Proton::Proton());
283 ph->RegisterProcess( theSynchRad, G4AntiProton::AntiProton());
284 ph->RegisterProcess( theSynchRad, G4PionPlus::PionPlus());
285 ph->RegisterProcess( theSynchRad, G4PionMinus::PionMinus());
286 ph->RegisterProcess( theSynchRad, G4GenericIon::GenericIon());
287 }
288 }
289}
void SetCrossSecFactor(G4double fac)
static G4AntiProton * AntiProton()
static G4GenericIon * GenericIon()
void RegisterMe(G4HadronicInteraction *a)
static G4LossTableManager * Instance()
G4VEmProcess * GetGammaGeneralProcess()
G4bool RegisterProcess(G4VProcess *process, G4ParticleDefinition *particle)
static G4PhysicsListHelper * GetPhysicsListHelper()
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
Definition G4PionPlus.cc:93
static G4Proton * Proton()
Definition G4Proton.cc:90
void SetCrossSecFactor(G4double fac)

◆ ElectroNuclear()

void G4EmExtraPhysics::ElectroNuclear ( G4bool val)

Definition at line 151 of file G4EmExtraPhysics.cc.

152{
153 eActivated = val;
154}

◆ GammaNuclear()

void G4EmExtraPhysics::GammaNuclear ( G4bool val)

Definition at line 139 of file G4EmExtraPhysics.cc.

140{
141 gnActivated = val;
142}

◆ GammaNuclearLEModelLimit()

void G4EmExtraPhysics::GammaNuclearLEModelLimit ( G4double val)

Definition at line 201 of file G4EmExtraPhysics.cc.

202{
203 // lowenergy model should not be applied at high energy
204 // no sense set this low limit below 1 MeV
205 if (val <= CLHEP::MeV) {
206 fGNLowEnergyLimit = 0.0;
207
208 } else if (val <= CLHEP::GeV) {
209 fGNLowEnergyLimit = val;
210 gLENDActivated = false;
211 }
212}

◆ GammaToMuMu()

void G4EmExtraPhysics::GammaToMuMu ( G4bool val)

Definition at line 161 of file G4EmExtraPhysics.cc.

162{
163 gmumuActivated = val;
164}

◆ GammaToMuMuFactor()

void G4EmExtraPhysics::GammaToMuMuFactor ( G4double val)

Definition at line 181 of file G4EmExtraPhysics.cc.

182{
183 if(val > 0.0) gmumuFactor = val;
184}

◆ LENDGammaNuclear()

void G4EmExtraPhysics::LENDGammaNuclear ( G4bool val)

Definition at line 144 of file G4EmExtraPhysics.cc.

145{
146 gLENDActivated = val;
147 // LEND cannot be used with low-energy model
148 if (val) { fGNLowEnergyLimit = 0.0; }
149}

Referenced by Shielding::Shielding().

◆ MuonNuclear()

void G4EmExtraPhysics::MuonNuclear ( G4bool val)

Definition at line 156 of file G4EmExtraPhysics.cc.

157{
158 munActivated = val;
159}

◆ MuonToMuMu()

void G4EmExtraPhysics::MuonToMuMu ( G4bool val)

Definition at line 166 of file G4EmExtraPhysics.cc.

167{
168 mmumuActivated = val;
169}

◆ operator=()

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

◆ PositronToHadrons()

void G4EmExtraPhysics::PositronToHadrons ( G4bool val)

Definition at line 176 of file G4EmExtraPhysics.cc.

177{
178 phadActivated = val;
179}

◆ PositronToHadronsFactor()

void G4EmExtraPhysics::PositronToHadronsFactor ( G4double val)

Definition at line 191 of file G4EmExtraPhysics.cc.

192{
193 if(val > 0.0) phadFactor = val;
194}

◆ PositronToMuMu()

void G4EmExtraPhysics::PositronToMuMu ( G4bool val)

Definition at line 171 of file G4EmExtraPhysics.cc.

172{
173 pmumuActivated = val;
174}

◆ PositronToMuMuFactor()

void G4EmExtraPhysics::PositronToMuMuFactor ( G4double val)

Definition at line 186 of file G4EmExtraPhysics.cc.

187{
188 if(val > 0.0) pmumuFactor = val;
189}

◆ SetUseGammaNuclearXS()

void G4EmExtraPhysics::SetUseGammaNuclearXS ( G4bool val)

Definition at line 196 of file G4EmExtraPhysics.cc.

197{
198 fUseGammaNuclearXS = val;
199}

◆ Synch()

void G4EmExtraPhysics::Synch ( G4bool val)

Definition at line 128 of file G4EmExtraPhysics.cc.

129{
130 synActivated = val;
131}

◆ SynchAll()

void G4EmExtraPhysics::SynchAll ( G4bool val)

Definition at line 133 of file G4EmExtraPhysics.cc.

134{
135 synActivatedForAll = val;
136 if (synActivatedForAll) { synActivated = true; }
137}

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