Geant4 11.2.2
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 53 of file G4EmExtraPhysics.hh.

Constructor & Destructor Documentation

◆ G4EmExtraPhysics() [1/3]

G4EmExtraPhysics::G4EmExtraPhysics ( G4int ver = 1)

Definition at line 106 of file G4EmExtraPhysics.cc.

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

◆ G4EmExtraPhysics() [2/3]

G4EmExtraPhysics::G4EmExtraPhysics ( const G4String & name)

Definition at line 116 of file G4EmExtraPhysics.cc.

118{}
G4EmExtraPhysics(G4int ver=1)

◆ ~G4EmExtraPhysics()

G4EmExtraPhysics::~G4EmExtraPhysics ( )
override

Definition at line 120 of file G4EmExtraPhysics.cc.

121{
122 delete theMessenger;
123}

◆ G4EmExtraPhysics() [3/3]

G4EmExtraPhysics::G4EmExtraPhysics ( const G4EmExtraPhysics & )
delete

Member Function Documentation

◆ ConstructParticle()

void G4EmExtraPhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 213 of file G4EmExtraPhysics.cc.

214{
220}
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 222 of file G4EmExtraPhysics.cc.

223{
229
232
233 if (gnActivated) { ConstructGammaElectroNuclear(); }
234
235 if (munActivated) {
236 G4MuonNuclearProcess* muNucProcess = new G4MuonNuclearProcess();
237 G4MuonVDNuclearModel* muNucModel = new G4MuonVDNuclearModel();
238 muNucProcess->RegisterMe(muNucModel);
239 ph->RegisterProcess( muNucProcess, muonplus);
240 ph->RegisterProcess( muNucProcess, muonminus);
241 }
242 if (gmumuActivated) {
244 theGammaToMuMu->SetCrossSecFactor(gmumuFactor);
246 dynamic_cast<G4GammaGeneralProcess*>(emManager->GetGammaGeneralProcess());
247 if (nullptr != sp) {
248 sp->AddMMProcess(theGammaToMuMu);
249 } else {
250 ph->RegisterProcess(theGammaToMuMu, gamma);
251 }
252 }
253 if (mmumuActivated) {
254 auto proc = new G4MuonToMuonPairProduction();
255 ph->RegisterProcess(proc, muonplus);
256 ph->RegisterProcess(proc, muonminus);
257 }
258 if (pmumuActivated) {
259 G4AnnihiToMuPair* thePosiToMuMu = new G4AnnihiToMuPair();
260 thePosiToMuMu->SetCrossSecFactor(pmumuFactor);
261 ph->RegisterProcess(thePosiToMuMu, positron);
262 G4AnnihiToMuPair* thePosiToTauTau = new G4AnnihiToMuPair("AnnihiToTauPair");
263 thePosiToTauTau->SetCrossSecFactor(pmumuFactor);
264 ph->RegisterProcess(thePosiToTauTau, positron);
265 }
266 if (phadActivated) {
267 G4eeToHadrons* thePosiToHadrons = new G4eeToHadrons();
268 thePosiToHadrons->SetCrossSecFactor(phadFactor);
269 ph->RegisterProcess(thePosiToHadrons, positron);
270 }
271 if (synActivated) {
273 ph->RegisterProcess( theSynchRad, electron);
274 ph->RegisterProcess( theSynchRad, positron);
275 if (synActivatedForAll) {
276 ph->RegisterProcess( theSynchRad, muonplus);
277 ph->RegisterProcess( theSynchRad, muonminus);
278
279 ph->RegisterProcess( theSynchRad, G4Proton::Proton());
280 ph->RegisterProcess( theSynchRad, G4AntiProton::AntiProton());
281 ph->RegisterProcess( theSynchRad, G4PionPlus::PionPlus());
282 ph->RegisterProcess( theSynchRad, G4PionMinus::PionMinus());
283 ph->RegisterProcess( theSynchRad, G4GenericIon::GenericIon());
284 }
285 }
286}
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 148 of file G4EmExtraPhysics.cc.

149{
150 eActivated = val;
151}

Referenced by G4EmMessenger::SetNewValue().

◆ GammaNuclear()

void G4EmExtraPhysics::GammaNuclear ( G4bool val)

Definition at line 136 of file G4EmExtraPhysics.cc.

137{
138 gnActivated = val;
139}

Referenced by G4EmMessenger::SetNewValue().

◆ GammaNuclearLEModelLimit()

void G4EmExtraPhysics::GammaNuclearLEModelLimit ( G4double val)

Definition at line 198 of file G4EmExtraPhysics.cc.

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

Referenced by G4EmMessenger::SetNewValue().

◆ GammaToMuMu()

void G4EmExtraPhysics::GammaToMuMu ( G4bool val)

Definition at line 158 of file G4EmExtraPhysics.cc.

159{
160 gmumuActivated = val;
161}

Referenced by G4EmMessenger::SetNewValue().

◆ GammaToMuMuFactor()

void G4EmExtraPhysics::GammaToMuMuFactor ( G4double val)

Definition at line 178 of file G4EmExtraPhysics.cc.

179{
180 if(val > 0.0) gmumuFactor = val;
181}

Referenced by G4EmMessenger::SetNewValue().

◆ LENDGammaNuclear()

void G4EmExtraPhysics::LENDGammaNuclear ( G4bool val)

Definition at line 141 of file G4EmExtraPhysics.cc.

142{
143 gLENDActivated = val;
144 // LEND cannot be used with low-energy model
145 if (val) { fGNLowEnergyLimit = 0.0; }
146}

Referenced by G4EmMessenger::SetNewValue(), and Shielding::Shielding().

◆ MuonNuclear()

void G4EmExtraPhysics::MuonNuclear ( G4bool val)

Definition at line 153 of file G4EmExtraPhysics.cc.

154{
155 munActivated = val;
156}

Referenced by G4EmMessenger::SetNewValue().

◆ MuonToMuMu()

void G4EmExtraPhysics::MuonToMuMu ( G4bool val)

Definition at line 163 of file G4EmExtraPhysics.cc.

164{
165 mmumuActivated = val;
166}

Referenced by G4EmMessenger::SetNewValue().

◆ operator=()

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

◆ PositronToHadrons()

void G4EmExtraPhysics::PositronToHadrons ( G4bool val)

Definition at line 173 of file G4EmExtraPhysics.cc.

174{
175 phadActivated = val;
176}

Referenced by G4EmMessenger::SetNewValue().

◆ PositronToHadronsFactor()

void G4EmExtraPhysics::PositronToHadronsFactor ( G4double val)

Definition at line 188 of file G4EmExtraPhysics.cc.

189{
190 if(val > 0.0) phadFactor = val;
191}

Referenced by G4EmMessenger::SetNewValue().

◆ PositronToMuMu()

void G4EmExtraPhysics::PositronToMuMu ( G4bool val)

Definition at line 168 of file G4EmExtraPhysics.cc.

169{
170 pmumuActivated = val;
171}

Referenced by G4EmMessenger::SetNewValue().

◆ PositronToMuMuFactor()

void G4EmExtraPhysics::PositronToMuMuFactor ( G4double val)

Definition at line 183 of file G4EmExtraPhysics.cc.

184{
185 if(val > 0.0) pmumuFactor = val;
186}

Referenced by G4EmMessenger::SetNewValue().

◆ SetUseGammaNuclearXS()

void G4EmExtraPhysics::SetUseGammaNuclearXS ( G4bool val)

Definition at line 193 of file G4EmExtraPhysics.cc.

194{
195 fUseGammaNuclearXS = val;
196}

Referenced by G4EmMessenger::SetNewValue().

◆ Synch()

void G4EmExtraPhysics::Synch ( G4bool val)

Definition at line 125 of file G4EmExtraPhysics.cc.

126{
127 synActivated = val;
128}

Referenced by G4EmMessenger::SetNewValue().

◆ SynchAll()

void G4EmExtraPhysics::SynchAll ( G4bool val)

Definition at line 130 of file G4EmExtraPhysics.cc.

131{
132 synActivatedForAll = val;
133 if (synActivatedForAll) { synActivated = true; }
134}

Referenced by G4EmMessenger::SetNewValue().


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