CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
BesIonPhysics.cc
Go to the documentation of this file.
1
2#include "BesIonPhysics.hh"
3
4#include "globals.hh"
5#include "G4ios.hh"
6#include <iomanip>
7
8
9BesIonPhysics::BesIonPhysics(const G4String& name)
10 : G4VPhysicsConstructor(name)
11{
12}
13
17
18#include "G4ParticleDefinition.hh"
19#include "G4ParticleTable.hh"
20
21// Nuclei
22#include "G4IonConstructor.hh"
23
25{
26 // Construct light ions
27 G4IonConstructor pConstructor;
28 pConstructor.ConstructParticle();
29}
30
31
32#include "G4ProcessManager.hh"
33
34
36{
37 G4ProcessManager * pManager = 0;
38
39 // Elastic Process
40 theElasticModel = new G4LElastic();
42
43 // Generic Ion
44 pManager = G4GenericIon::GenericIon()->GetProcessManager();
45 // add process
46 pManager->AddDiscreteProcess(&theElasticProcess);
47
48 pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1);
49 pManager->AddProcess(&fIonIonisation, -1, 2, 2);
50
51 // Deuteron
52 pManager = G4Deuteron::Deuteron()->GetProcessManager();
53 // add process
54 pManager->AddDiscreteProcess(&theElasticProcess);
55
56 fDeuteronModel = new G4LEDeuteronInelastic();
58 pManager->AddDiscreteProcess(&fDeuteronProcess);
59
60 pManager->AddProcess(&fDeuteronMultipleScattering, -1, 1, 1);
61 pManager->AddProcess(&fDeuteronIonisation, -1, 2, 2);
62
63 // Triton
64 pManager = G4Triton::Triton()->GetProcessManager();
65 // add process
66 pManager->AddDiscreteProcess(&theElasticProcess);
67
68 fTritonModel = new G4LETritonInelastic();
69 fTritonProcess.RegisterMe(fTritonModel);
70 pManager->AddDiscreteProcess(&fTritonProcess);
71
72 pManager->AddProcess(&fTritonMultipleScattering, -1, 1, 1);
73 pManager->AddProcess(&fTritonIonisation, -1, 2, 2);
74
75 // Alpha
76 pManager = G4Alpha::Alpha()->GetProcessManager();
77 // add process
78 pManager->AddDiscreteProcess(&theElasticProcess);
79
80 fAlphaModel = new G4LEAlphaInelastic();
81 fAlphaProcess.RegisterMe(fAlphaModel);
82 pManager->AddDiscreteProcess(&fAlphaProcess);
83
84 pManager->AddProcess(&fAlphaMultipleScattering, -1, 1, 1);
85 pManager->AddProcess(&fAlphaIonisation, -1, 2, 2);
86
87 // He3
88 pManager = G4He3::He3()->GetProcessManager();
89 // add process
90 pManager->AddDiscreteProcess(&theElasticProcess);
91
92 pManager->AddProcess(&fHe3MultipleScattering, -1, 1, 1);
93 pManager->AddProcess(&fHe3Ionisation, -1, 2, 2);
94
95
96}
97
98
99
G4MultipleScattering fTritonMultipleScattering
G4HadronElasticProcess theElasticProcess
G4MultipleScattering fHe3MultipleScattering
G4LEAlphaInelastic * fAlphaModel
G4MultipleScattering fIonMultipleScattering
BesIonPhysics(const G4String &name="ion")
G4hIonisation fHe3Ionisation
G4hIonisation fAlphaIonisation
G4hIonisation fDeuteronIonisation
virtual void ConstructParticle()
virtual ~BesIonPhysics()
G4LElastic * theElasticModel
virtual void ConstructProcess()
G4TritonInelasticProcess fTritonProcess
G4MultipleScattering fDeuteronMultipleScattering
G4LETritonInelastic * fTritonModel
G4hIonisation fTritonIonisation
G4ionIonisation fIonIonisation
G4MultipleScattering fAlphaMultipleScattering
G4DeuteronInelasticProcess fDeuteronProcess
G4AlphaInelasticProcess fAlphaProcess
G4LEDeuteronInelastic * fDeuteronModel