1 | #include "IonPhysics.h" |
---|
2 | |
---|
3 | //#include "G4ParticleTable.hh" |
---|
4 | #include "G4ProcessManager.hh" |
---|
5 | #include "G4IonConstructor.hh" |
---|
6 | |
---|
7 | // processes |
---|
8 | #include "G4MultipleScattering.hh" |
---|
9 | #include "G4hIonisation.hh" |
---|
10 | #include "G4ionIonisation.hh" |
---|
11 | #include "G4HadronElasticProcess.hh" |
---|
12 | #include "G4DeuteronInelasticProcess.hh" |
---|
13 | #include "G4TritonInelasticProcess.hh" |
---|
14 | #include "G4AlphaInelasticProcess.hh" |
---|
15 | |
---|
16 | // models |
---|
17 | #include "G4LEDeuteronInelastic.hh" |
---|
18 | #include "G4LETritonInelastic.hh" |
---|
19 | #include "G4LEAlphaInelastic.hh" |
---|
20 | |
---|
21 | IonPhysics::IonPhysics(gemc_opts Opt) : G4VPhysicsConstructor("Ion Physics") |
---|
22 | { |
---|
23 | gemcOpt = Opt; |
---|
24 | } |
---|
25 | |
---|
26 | |
---|
27 | IonPhysics::~IonPhysics(){;} |
---|
28 | |
---|
29 | |
---|
30 | void IonPhysics::ConstructParticle() |
---|
31 | { |
---|
32 | // Construct light ions (d, t, 3He, alpha, and generic ion) |
---|
33 | G4IonConstructor ionConstruct; |
---|
34 | ionConstruct.ConstructParticle(); |
---|
35 | } |
---|
36 | |
---|
37 | |
---|
38 | void IonPhysics::ConstructProcess() |
---|
39 | { |
---|
40 | string hd_msg = gemcOpt.args["LOG_MSG"].args + " Ion Physics List: <<< "; |
---|
41 | double VERB = gemcOpt.args["PHY_VERBOSITY"].arg ; |
---|
42 | cout << hd_msg << " Building Ion Processes " << endl; |
---|
43 | |
---|
44 | G4ProcessManager * pManager = 0; |
---|
45 | |
---|
46 | // Deuteron // |
---|
47 | pManager = G4Deuteron::Deuteron()->GetProcessManager(); |
---|
48 | |
---|
49 | G4DeuteronInelasticProcess* dinelProc = new G4DeuteronInelasticProcess(); |
---|
50 | G4LEDeuteronInelastic* LEPdModel = new G4LEDeuteronInelastic(); |
---|
51 | dinelProc->RegisterMe(LEPdModel); |
---|
52 | pManager->AddDiscreteProcess(dinelProc); |
---|
53 | |
---|
54 | // Triton // |
---|
55 | pManager = G4Triton::Triton()->GetProcessManager(); |
---|
56 | |
---|
57 | G4TritonInelasticProcess* tinelProc = new G4TritonInelasticProcess(); |
---|
58 | G4LETritonInelastic* LEPtModel = new G4LETritonInelastic(); |
---|
59 | tinelProc->RegisterMe(LEPtModel); |
---|
60 | pManager->AddDiscreteProcess(tinelProc); |
---|
61 | |
---|
62 | // Alpha // |
---|
63 | pManager = G4Alpha::Alpha()->GetProcessManager(); |
---|
64 | |
---|
65 | G4AlphaInelasticProcess* ainelProc = new G4AlphaInelasticProcess(); |
---|
66 | G4LEAlphaInelastic* LEPaModel = new G4LEAlphaInelastic(); |
---|
67 | ainelProc->RegisterMe(LEPaModel); |
---|
68 | pManager->AddDiscreteProcess(ainelProc); |
---|
69 | |
---|
70 | |
---|
71 | } |
---|