source: trunk/examples/novice/gemc/src/IonPhysics.cc @ 893

Last change on this file since 893 was 807, checked in by garnier, 16 years ago

update

File size: 1.9 KB
Line 
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
21IonPhysics::IonPhysics(gemc_opts Opt) :  G4VPhysicsConstructor("Ion Physics")
22{
23 gemcOpt = Opt; 
24}
25
26
27IonPhysics::~IonPhysics(){;}
28
29
30void IonPhysics::ConstructParticle()
31{ 
32  // Construct light ions (d, t, 3He, alpha, and generic ion)
33  G4IonConstructor ionConstruct;
34  ionConstruct.ConstructParticle();
35}
36
37
38void 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}
Note: See TracBrowser for help on using the repository browser.