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