ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PhysicsList.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PhysicsList.cc
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
28 //
29 //
30 //---------------------------------------------------------------------------
31 //
32 // ClassName: PhysicsList
33 //
34 // Author: V.Ivanchenko 03.05.2004
35 //
36 // Modified:
37 // 16.11.06 Use components from physics_lists subdirectory (V.Ivanchenko)
38 // 16.05.07 Use renamed EM components from physics_lists (V.Ivanchenko)
39 //
40 //----------------------------------------------------------------------------
41 //
42 
43 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45 
46 #include "PhysicsList.hh"
47 #include "PhysicsListMessenger.hh"
48 
49 #include "G4EmStandardPhysics.hh"
54 #include "G4EmLivermorePhysics.hh"
55 #include "G4EmPenelopePhysics.hh"
56 #include "G4EmLowEPPhysics.hh"
57 #include "StepLimiterBuilder.hh"
58 #include "G4DecayPhysics.hh"
60 #include "G4HadronInelasticQBBC.hh"
62 #include "G4EmExtraPhysics.hh"
63 #include "G4StoppingPhysics.hh"
64 
65 #include "G4UnitsTable.hh"
66 #include "G4LossTableManager.hh"
67 #include "G4EmParameters.hh"
68 
69 #include "G4PhysicalConstants.hh"
70 #include "G4SystemOfUnits.hh"
71 
72 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
73 
75 {
76  fHelIsRegisted = false;
77  fBicIsRegisted = false;
78  fIonIsRegisted = false;
79  fGnucIsRegisted = false;
80  fStopIsRegisted = false;
81  fVerbose = 1;
82 
84 
85  fMessenger = new PhysicsListMessenger(this);
86 
87  // Add Physics builders
91 }
92 
93 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
94 
96 {
97  delete fMessenger;
98 }
99 
100 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
101 
103 {
104  if(fVerbose > 0) {
105  G4cout << "### PhysicsList Construte Particles" << G4endl;
106  }
108 }
109 
110 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
111 
113 {
114  if(fVerbose > 0) {
115  G4cout << "### PhysicsList Construte Processes" << G4endl;
116  }
117 
119 
120  // Define energy interval for loss processes
121  // from 10 eV to 10 GeV
123  param->SetMinEnergy(0.01*keV);
124  param->SetMaxEnergy(10.*GeV);
125  param->SetNumberOfBinsPerDecade(10);
126  param->SetVerbose(1);
127 }
128 
129 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
130 
132 {
133  if(fVerbose > 0) {
134  G4cout << "### PhysicsList Add Physics <" << name
135  << "> " << G4endl;
136  }
137  if (name == "emstandard") {
139 
140  } else if (name == "emstandard_opt1") {
142 
143  } else if (name == "emstandard_opt2") {
145 
146  } else if (name == "emstandard_opt3") {
148 
149  } else if (name == "emstandard_opt4") {
151 
152  } else if (name == "emlivermore") {
154 
155  } else if (name == "empenelope") {
157 
158  } else if (name == "emlowenergy") {
160 
161  } else if (name == "elastic" && !fHelIsRegisted) {
163  fHelIsRegisted = true;
164 
165  } else if (name == "binary" && !fBicIsRegisted) {
167  fBicIsRegisted = true;
168 
169  } else if (name == "binary_ion" && !fIonIsRegisted) {
171  fIonIsRegisted = true;
172 
173  } else if (name == "gamma_nuc" && !fGnucIsRegisted) {
175  fGnucIsRegisted = true;
176 
177  } else if (name == "stopping" && !fStopIsRegisted) {
179  fStopIsRegisted = true;
180 
181  } else {
182  G4cout << "PhysicsList::AddPhysicsList <" << name << ">"
183  << " fail - module is already regitered or is unknown " << G4endl;
184  }
185 }
186 
187 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......