/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/PhySim/PhySim-00-00-10/src/BesIonPhysics.cc

Go to the documentation of this file.
00001 
00002 #include "BesIonPhysics.hh"
00003 
00004 #include "globals.hh"
00005 #include "G4ios.hh"
00006 #include <iomanip>   
00007 
00008 
00009 BesIonPhysics::BesIonPhysics(const G4String& name)
00010                  :  G4VPhysicsConstructor(name)
00011 {
00012 }
00013 
00014 BesIonPhysics::~BesIonPhysics()
00015 {
00016 }
00017 
00018 #include "G4ParticleDefinition.hh"
00019 #include "G4ParticleTable.hh"
00020 
00021 // Nuclei
00022 #include "G4IonConstructor.hh"
00023 
00024 void BesIonPhysics::ConstructParticle()
00025 {
00026   //  Construct light ions
00027   G4IonConstructor pConstructor;
00028   pConstructor.ConstructParticle();  
00029 }
00030 
00031 
00032 #include "G4ProcessManager.hh"
00033 
00034 
00035 void BesIonPhysics::ConstructProcess()
00036 {
00037   G4ProcessManager * pManager = 0;
00038   
00039   // Elastic Process
00040   theElasticModel = new G4LElastic();
00041   theElasticProcess.RegisterMe(theElasticModel);
00042 
00043   // Generic Ion
00044   pManager = G4GenericIon::GenericIon()->GetProcessManager();
00045   // add process
00046   pManager->AddDiscreteProcess(&theElasticProcess);
00047 
00048   pManager->AddProcess(&fIonMultipleScattering, -1, 1, 1);
00049   pManager->AddProcess(&fIonIonisation,         -1, 2, 2);
00050 
00051   // Deuteron 
00052   pManager = G4Deuteron::Deuteron()->GetProcessManager();
00053   // add process
00054   pManager->AddDiscreteProcess(&theElasticProcess);
00055 
00056   fDeuteronModel = new G4LEDeuteronInelastic();
00057   fDeuteronProcess.RegisterMe(fDeuteronModel);
00058   pManager->AddDiscreteProcess(&fDeuteronProcess);
00059 
00060   pManager->AddProcess(&fDeuteronMultipleScattering, -1, 1, 1);
00061   pManager->AddProcess(&fDeuteronIonisation,        -1, 2, 2);
00062 
00063    // Triton 
00064   pManager = G4Triton::Triton()->GetProcessManager();
00065   // add process
00066   pManager->AddDiscreteProcess(&theElasticProcess);
00067 
00068   fTritonModel = new G4LETritonInelastic();
00069   fTritonProcess.RegisterMe(fTritonModel);
00070   pManager->AddDiscreteProcess(&fTritonProcess);
00071 
00072   pManager->AddProcess(&fTritonMultipleScattering, -1, 1, 1);
00073   pManager->AddProcess(&fTritonIonisation,        -1, 2, 2);
00074  
00075   // Alpha 
00076   pManager = G4Alpha::Alpha()->GetProcessManager();
00077   // add process
00078   pManager->AddDiscreteProcess(&theElasticProcess);
00079 
00080   fAlphaModel = new G4LEAlphaInelastic();
00081   fAlphaProcess.RegisterMe(fAlphaModel);
00082   pManager->AddDiscreteProcess(&fAlphaProcess);
00083 
00084   pManager->AddProcess(&fAlphaMultipleScattering, -1, 1, 1);
00085   pManager->AddProcess(&fAlphaIonisation,        -1, 2, 2);
00086  
00087   // He3
00088   pManager = G4He3::He3()->GetProcessManager();
00089   // add process
00090   pManager->AddDiscreteProcess(&theElasticProcess);
00091 
00092   pManager->AddProcess(&fHe3MultipleScattering, -1, 1, 1);
00093   pManager->AddProcess(&fHe3Ionisation,        -1, 2, 2);
00094 
00095    
00096 }
00097 
00098 
00099 

Generated on Tue Nov 29 23:14:29 2016 for BOSS_7.0.2 by  doxygen 1.4.7