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 //
26 //
27 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
28 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
29 
30 #include "PhysicsList.hh"
31 #include "PhysicsListMessenger.hh"
32 
33 #include "PhysListEmStandard.hh"
34 
35 #include "G4EmStandardPhysics.hh"
39 
40 #include "G4LossTableManager.hh"
41 #include "G4SystemOfUnits.hh"
42 #include "G4UnitsTable.hh"
43 
44 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45 
47 {
48  pMessenger = new PhysicsListMessenger(this);
49  SetVerboseLevel(1);
50 
51  // EM physics
52  emName = G4String("local");
54 
57 }
58 
59 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
60 
62 {
63  delete pMessenger;
64 }
65 
66 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
67 
68 #include "G4BosonConstructor.hh"
69 #include "G4LeptonConstructor.hh"
70 #include "G4MesonConstructor.hh"
71 #include "G4BosonConstructor.hh"
72 #include "G4BaryonConstructor.hh"
73 #include "G4IonConstructor.hh"
75 
77 {
78  G4BosonConstructor pBosonConstructor;
79  pBosonConstructor.ConstructParticle();
80 
81  G4LeptonConstructor pLeptonConstructor;
82  pLeptonConstructor.ConstructParticle();
83 
84  G4MesonConstructor pMesonConstructor;
85  pMesonConstructor.ConstructParticle();
86 
87  G4BaryonConstructor pBaryonConstructor;
88  pBaryonConstructor.ConstructParticle();
89 
90  G4IonConstructor pIonConstructor;
91  pIonConstructor.ConstructParticle();
92 
93  G4ShortLivedConstructor pShortLivedConstructor;
94  pShortLivedConstructor.ConstructParticle();
95 }
96 
97 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
98 
99 #include "G4PhysicsListHelper.hh"
100 #include "G4Decay.hh"
101 
103 {
105 
106  // electromagnetic Physics List
107  //
109 
110  // Add Decay Process
111  //
112  G4Decay* fDecayProcess = new G4Decay();
114 
116  particleIterator->reset();
117  while( (*particleIterator)() ){
119  if (fDecayProcess->IsApplicable(*particle))
120  ph ->RegisterProcess(fDecayProcess, particle);
121  }
122 }
123 
124 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
125 
127 {
128  if (verboseLevel>1) {
129  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">" << G4endl;
130  }
131 
132  if (name == emName) return;
133 
134  if (name == "local") {
135 
136  emName = name;
137  delete emPhysicsList;
138  emPhysicsList = new PhysListEmStandard(name);
139 
140  } else if (name == "emstandard_opt0") {
141 
142  emName = name;
143  delete emPhysicsList;
145 
146  } else if (name == "emstandard_opt1") {
147 
148  emName = name;
149  delete emPhysicsList;
151 
152  } else if (name == "emstandard_opt2") {
153 
154  emName = name;
155  delete emPhysicsList;
157 
158  } else if (name == "emstandard_opt3") {
159 
160  emName = name;
161  delete emPhysicsList;
163 
164  } else {
165 
166  G4cout << "PhysicsList::AddPhysicsList: <" << name << ">"
167  << " is not defined"
168  << G4endl;
169  }
170 }
171 
172 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......