Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
examples/extended/radioactivedecay/rdecay02/src/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 // $Id: PhysicsList.cc 70268 2013-05-28 14:17:50Z maire $
30 
31 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
32 
33 #include "PhysicsList.hh"
34 
35 #include "G4SystemOfUnits.hh"
36 #include "G4UnitsTable.hh"
37 
38 #include "G4EmStandardPhysics.hh"
39 #include "G4EmExtraPhysics.hh"
40 #include "G4EmParameters.hh"
41 #include "G4DecayPhysics.hh"
42 #include "G4NuclideTable.hh"
44 
48 #include "G4HadronInelasticQBBC.hh"
49 #include "G4HadronPhysicsINCLXX.hh"
50 #include "G4IonElasticPhysics.hh"
51 #include "G4IonPhysics.hh"
52 #include "G4IonINCLXXPhysics.hh"
53 
54 // particles
55 
56 #include "G4BosonConstructor.hh"
57 #include "G4LeptonConstructor.hh"
58 #include "G4MesonConstructor.hh"
59 #include "G4BosonConstructor.hh"
60 #include "G4BaryonConstructor.hh"
61 #include "G4IonConstructor.hh"
63 
64 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
65 
68 {
69  G4int verb = 1;
70  SetVerboseLevel(verb);
71 
72  //add new units for radioActive decays
73  //
74  new G4UnitDefinition( "millielectronVolt", "meV", "Energy", 1.e-3*eV);
75  //
76  const G4double minute = 60*second;
77  const G4double hour = 60*minute;
78  const G4double day = 24*hour;
79  const G4double year = 365*day;
80  new G4UnitDefinition("minute", "min", "Time", minute);
81  new G4UnitDefinition("hour", "h", "Time", hour);
82  new G4UnitDefinition("day", "d", "Time", day);
83  new G4UnitDefinition("year", "y", "Time", year);
84 
85  // Mandatory for G4NuclideTable
86  // Half-life threshold must be set small or many short-lived isomers
87  // will not be assigned life times (default to 0)
90 
91  // EM physics
92  RegisterPhysics(new G4EmStandardPhysics());
94  param->SetAugerCascade(true);
95  param->SetStepFunction(1., 1*CLHEP::mm);
96  param->SetStepFunctionMuHad(1., 1*CLHEP::mm);
97 
98  // Decay
99  RegisterPhysics(new G4DecayPhysics());
100 
101  // Radioactive decay
102  RegisterPhysics(new G4RadioactiveDecayPhysics());
103 
104  // Hadron Elastic scattering
105  RegisterPhysics( new G4HadronElasticPhysicsHP(verb) );
106 
107  // Hadron Inelastic physics
108  RegisterPhysics( new G4HadronPhysicsFTFP_BERT_HP(verb));
112 
113  // Ion Elastic scattering
114  RegisterPhysics( new G4IonElasticPhysics(verb));
115 
116  // Ion Inelastic physics
117  RegisterPhysics( new G4IonPhysics(verb));
119 
120  // Gamma-Nuclear Physics
121  G4EmExtraPhysics* gnuc = new G4EmExtraPhysics(verb);
122  gnuc->ElectroNuclear(false);
123  gnuc->MuonNuclear(false);
124  RegisterPhysics(gnuc);
125 }
126 
127 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
128 
130 { }
131 
132 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
133 
135 {
136  G4BosonConstructor pBosonConstructor;
137  pBosonConstructor.ConstructParticle();
138 
139  G4LeptonConstructor pLeptonConstructor;
140  pLeptonConstructor.ConstructParticle();
141 
142  G4MesonConstructor pMesonConstructor;
143  pMesonConstructor.ConstructParticle();
144 
145  G4BaryonConstructor pBaryonConstructor;
146  pBaryonConstructor.ConstructParticle();
147 
148  G4IonConstructor pIonConstructor;
149  pIonConstructor.ConstructParticle();
150 
151  G4ShortLivedConstructor pShortLivedConstructor;
152  pShortLivedConstructor.ConstructParticle();
153 }
154 
155 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
156 
158 {
159  SetCutValue(0*mm, "proton");
160  SetCutValue(10*km, "e-");
161  SetCutValue(10*km, "e+");
162  SetCutValue(10*km, "gamma");
163 }
164 
165 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
void ElectroNuclear(G4bool val)
static void ConstructParticle()
static constexpr double mm
Definition: G4SIunits.hh:115
static void ConstructParticle()
static void ConstructParticle()
void SetStepFunctionMuHad(G4double v1, G4double v2)
static constexpr double second
Definition: G4SIunits.hh:157
double G4double
Definition: G4Types.hh:76
void SetStepFunction(G4double v1, G4double v2)
PhysicsList()
Implementation of the PhysicsList class.
static constexpr double eV
Definition: G4SIunits.hh:215
static void ConstructParticle()
static void ConstructParticle()
void SetThresholdOfHalfLife(G4double)
void SetAugerCascade(G4bool val)
int G4int
Definition: G4Types.hh:78
static constexpr double mm
Definition: SystemOfUnits.h:95
void SetLevelTolerance(G4double x)
void SetCutValue(G4double aCut, const G4String &pname)
static constexpr double picosecond
Definition: G4SIunits.hh:161
void MuonNuclear(G4bool val)
static G4NuclideTable * GetInstance()
static constexpr double km
Definition: G4SIunits.hh:133
static G4EmParameters * Instance()