/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/G4Svc/G4Svc-00-01-52/Physics_src/ExN04IonPhysics.cxx

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * DISCLAIMER                                                       *
00004 // *                                                                  *
00005 // * The following disclaimer summarizes all the specific disclaimers *
00006 // * of contributors to this software. The specific disclaimers,which *
00007 // * govern, are listed with their locations in:                      *
00008 // *   http://cern.ch/geant4/license                                  *
00009 // *                                                                  *
00010 // * Neither the authors of this software system, nor their employing *
00011 // * institutes,nor the agencies providing financial support for this *
00012 // * work  make  any representation or  warranty, express or implied, *
00013 // * regarding  this  software system or assume any liability for its *
00014 // * use.                                                             *
00015 // *                                                                  *
00016 // * This  code  implementation is the  intellectual property  of the *
00017 // * GEANT4 collaboration.                                            *
00018 // * By copying,  distributing  or modifying the Program (or any work *
00019 // * based  on  the Program)  you indicate  your  acceptance of  this *
00020 // * statement, and all its terms.                                    *
00021 // ********************************************************************
00022 //
00023 //
00024 // $Id: ExN04IonPhysics.cxx,v 1.1.1.1 2004/09/28 05:16:53 liwd Exp $
00025 // GEANT4 tag $Name: G4Svc-00-01-52 $
00026 //
00027 // 
00028 
00029 #include <cmath>
00030 
00031 #include "Physics/ExN04IonPhysics.hh"
00032 
00033 #include "globals.hh"
00034 #include "G4ios.hh"
00035 
00036 
00037 ExN04IonPhysics::ExN04IonPhysics(const G4String& name)
00038                  :  G4VPhysicsConstructor(name)
00039 {
00040 }
00041 
00042 ExN04IonPhysics::~ExN04IonPhysics()
00043 {
00044 }
00045 
00046 #include "G4ParticleDefinition.hh"
00047 #include "G4ParticleTable.hh"
00048 
00049 // Nuclei
00050 #include "G4IonConstructor.hh"
00051 
00052 void ExN04IonPhysics::ConstructParticle()
00053 {
00054   //  Construct light ions
00055   G4IonConstructor pConstructor;
00056   pConstructor.ConstructParticle();  
00057 }
00058 
00059 
00060 #include "G4ProcessManager.hh"
00061 
00062 
00063 void ExN04IonPhysics::ConstructProcess()
00064 {
00065   G4ProcessManager * pManager = 0;
00066   
00067   // Elastic Process
00068   theElasticModel = new G4LElastic();
00069   theElasticProcess.RegisterMe(theElasticModel);
00070 
00071   // Generic Ion
00072   pManager = G4GenericIon::GenericIon()->GetProcessManager();
00073   // add process
00074   pManager->AddDiscreteProcess(&theElasticProcess);
00075 
00076   pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2);
00077 
00078   pManager->AddProcess(&fIonMultipleScattering);
00079   pManager->SetProcessOrdering(&fIonMultipleScattering, idxAlongStep,  1);
00080   pManager->SetProcessOrdering(&fIonMultipleScattering, idxPostStep,  1);
00081 
00082   // Deuteron 
00083   pManager = G4Deuteron::Deuteron()->GetProcessManager();
00084   // add process
00085   pManager->AddDiscreteProcess(&theElasticProcess);
00086 
00087   fDeuteronModel = new G4LEDeuteronInelastic();
00088   fDeuteronProcess.RegisterMe(fDeuteronModel);
00089   pManager->AddDiscreteProcess(&fDeuteronProcess);
00090 
00091   pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2);
00092 
00093   pManager->AddProcess(&fDeuteronMultipleScattering);
00094   pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxAlongStep,  1);
00095   pManager->SetProcessOrdering(&fDeuteronMultipleScattering, idxPostStep,  1);
00096  
00097   // Triton 
00098   pManager = G4Triton::Triton()->GetProcessManager();
00099   // add process
00100   pManager->AddDiscreteProcess(&theElasticProcess);
00101 
00102   fTritonModel = new G4LETritonInelastic();
00103   fTritonProcess.RegisterMe(fTritonModel);
00104   pManager->AddDiscreteProcess(&fTritonProcess);
00105 
00106   pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2);
00107 
00108   pManager->AddProcess(&fTritonMultipleScattering);
00109   pManager->SetProcessOrdering(&fTritonMultipleScattering, idxAlongStep,  1);
00110   pManager->SetProcessOrdering(&fTritonMultipleScattering, idxPostStep,  1);
00111  
00112   // Alpha 
00113   pManager = G4Alpha::Alpha()->GetProcessManager();
00114   // add process
00115   pManager->AddDiscreteProcess(&theElasticProcess);
00116 
00117   fAlphaModel = new G4LEAlphaInelastic();
00118   fAlphaProcess.RegisterMe(fAlphaModel);
00119   pManager->AddDiscreteProcess(&fAlphaProcess);
00120 
00121   pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2);
00122 
00123   pManager->AddProcess(&fAlphaMultipleScattering);
00124   pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxAlongStep,  1);
00125   pManager->SetProcessOrdering(&fAlphaMultipleScattering, idxPostStep,  1);
00126  
00127   // He3
00128   pManager = G4He3::He3()->GetProcessManager();
00129   // add process
00130   pManager->AddDiscreteProcess(&theElasticProcess);
00131 
00132   pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2);
00133 
00134   pManager->AddProcess(&fHe3MultipleScattering);
00135   pManager->SetProcessOrdering(&fHe3MultipleScattering, idxAlongStep,  1);
00136   pManager->SetProcessOrdering(&fHe3MultipleScattering, idxPostStep,  1);
00137    
00138 }
00139 
00140 
00141 

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