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

#include <G4SpinDecayPhysics.hh>

+ Inheritance diagram for G4SpinDecayPhysics:

Public Member Functions

 G4SpinDecayPhysics (G4int ver=1)
 
 G4SpinDecayPhysics (const G4String &name, G4int ver=1)
 
 ~G4SpinDecayPhysics () 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 ()
 
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 45 of file G4SpinDecayPhysics.hh.

Constructor & Destructor Documentation

◆ G4SpinDecayPhysics() [1/2]

G4SpinDecayPhysics::G4SpinDecayPhysics ( G4int ver = 1)

Definition at line 59 of file G4SpinDecayPhysics.cc.

60 : G4SpinDecayPhysics("SpinDecay", verb)
61{
62}
G4SpinDecayPhysics(G4int ver=1)

◆ G4SpinDecayPhysics() [2/2]

G4SpinDecayPhysics::G4SpinDecayPhysics ( const G4String & name,
G4int ver = 1 )

Definition at line 64 of file G4SpinDecayPhysics.cc.

66{
68}
static void InitialiseParameters()
G4VPhysicsConstructor(const G4String &="")

◆ ~G4SpinDecayPhysics()

G4SpinDecayPhysics::~G4SpinDecayPhysics ( )
override

Definition at line 70 of file G4SpinDecayPhysics.cc.

71{
72}

Member Function Documentation

◆ ConstructParticle()

void G4SpinDecayPhysics::ConstructParticle ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 74 of file G4SpinDecayPhysics.cc.

75{
76 // minimal set of particles for EM physics
78
81
82 G4DecayTable* MuonPlusDecayTable = new G4DecayTable();
83 MuonPlusDecayTable -> Insert(new
84 G4MuonDecayChannelWithSpin("mu+",0.986));
85 MuonPlusDecayTable -> Insert(new
87 G4MuonPlus::MuonPlusDefinition() -> SetDecayTable(MuonPlusDecayTable);
88
89 G4DecayTable* MuonMinusDecayTable = new G4DecayTable();
90 MuonMinusDecayTable -> Insert(new
91 G4MuonDecayChannelWithSpin("mu-",0.986));
92 MuonMinusDecayTable -> Insert(new
94 G4MuonMinus::MuonMinusDefinition() -> SetDecayTable(MuonMinusDecayTable);
95}
static void ConstructMinimalEmSet()
static G4MuonMinus * MuonMinusDefinition()
static G4MuonPlus * MuonPlusDefinition()
Definition G4MuonPlus.cc:93

◆ ConstructProcess()

void G4SpinDecayPhysics::ConstructProcess ( )
overridevirtual

Implements G4VPhysicsConstructor.

Definition at line 97 of file G4SpinDecayPhysics.cc.

98{
99 G4DecayWithSpin* decayWithSpin = new G4DecayWithSpin();
100
102
104 decay = processTable->FindProcess("Decay",G4MuonPlus::MuonPlus());
105
107
108 if (fManager) {
109 if (decay) fManager->RemoveProcess(decay);
110 fManager->AddProcess(decayWithSpin);
111 // set ordering for PostStepDoIt and AtRestDoIt
112 fManager ->SetProcessOrdering(decayWithSpin, idxPostStep);
113 fManager ->SetProcessOrdering(decayWithSpin, idxAtRest);
114 }
115
117
118 if (fManager) {
119 if (decay) fManager->RemoveProcess(decay);
120 fManager->AddProcess(decayWithSpin);
121 // set ordering for PostStepDoIt and AtRestDoIt
122 fManager ->SetProcessOrdering(decayWithSpin, idxPostStep);
123 fManager ->SetProcessOrdering(decayWithSpin, idxAtRest);
124 }
125
127
128 decay = processTable->FindProcess("Decay",G4PionPlus::PionPlus());
129
131
132 if (fManager) {
133 if (decay) fManager->RemoveProcess(decay);
134 fManager->AddProcess(poldecay);
135 // set ordering for PostStepDoIt and AtRestDoIt
136 fManager ->SetProcessOrdering(poldecay, idxPostStep);
137 fManager ->SetProcessOrdering(poldecay, idxAtRest);
138 }
139
140 decay = processTable->FindProcess("Decay",G4PionMinus::PionMinus());
141
143
144 if (fManager) {
145 if (decay) fManager->RemoveProcess(decay);
146 fManager->AddProcess(poldecay);
147 // set ordering for PostStepDoIt and AtRestDoIt
148 fManager ->SetProcessOrdering(poldecay, idxPostStep);
149 fManager ->SetProcessOrdering(poldecay, idxAtRest);
150 }
151}
@ idxPostStep
@ idxAtRest
static G4MuonMinus * MuonMinus()
static G4MuonPlus * MuonPlus()
Definition G4MuonPlus.cc:98
G4ProcessManager * GetProcessManager() const
static G4PionMinus * PionMinus()
static G4PionPlus * PionPlus()
Definition G4PionPlus.cc:93
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
G4VProcess * RemoveProcess(G4VProcess *aProcess)
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
static G4ProcessTable * GetProcessTable()
G4VProcess * FindProcess(const G4String &processName, const G4String &particleName) const
ParticleList decay(Cluster *const c)
Carries out a cluster decay.

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