ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EICPhysicsList.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file EICPhysicsList.cc
1 // $Id: $
3 // //
4 // File: EICPhysicsList.hh //
5 // Description: Geant4 physics list for Electron Ion Collider detectors //
6 // //
7 // Author: Dennis H. Wright (SLAC) //
8 // Date: 21 June 2018 //
9 // //
11 
12 #include "EICPhysicsList.hh"
13 
14 #include "ProtonPhysics.hh"
15 #include "NeutronPhysics.hh"
16 #include "PionPhysics.hh"
17 #include "KaonPhysics.hh"
18 #include "HyperonPhysics.hh"
19 #include "AntiBaryonPhysics.hh"
20 #include "IonPhysics.hh"
22 
23 #include <Geant4/G4SystemOfUnits.hh>
24 #include <Geant4/G4UnitsTable.hh>
25 
26 #include <Geant4/G4EmStandardPhysics.hh>
27 #include <Geant4/G4EmExtraPhysics.hh>
28 #include <Geant4/G4OpticalPhysics.hh>
29 #include <Geant4/G4EmParameters.hh>
30 #include <Geant4/G4DecayPhysics.hh>
31 #include <Geant4/G4NuclideTable.hh>
32 // #include <Geant4/G4RadioactiveDecayPhysics.hh>
33 
34 // particles
35 
36 #include <Geant4/G4BosonConstructor.hh>
37 #include <Geant4/G4LeptonConstructor.hh>
38 #include <Geant4/G4MesonConstructor.hh>
39 #include <Geant4/G4BaryonConstructor.hh>
40 #include <Geant4/G4IonConstructor.hh>
41 #include <Geant4/G4ShortLivedConstructor.hh>
42 
43 
46 {
47  G4int verb = 1;
48  SetVerboseLevel(verb);
49 
50  //add new units for radioActive decays
51  //
52  new G4UnitDefinition( "millielectronVolt", "meV", "Energy", 1.e-3*eV);
53  //
54  const G4double minute = 60*second;
55  const G4double hour = 60*minute;
56  const G4double day = 24*hour;
57  const G4double year = 365*day;
58  new G4UnitDefinition("minute", "min", "Time", minute);
59  new G4UnitDefinition("hour", "h", "Time", hour);
60  new G4UnitDefinition("day", "d", "Time", day);
61  new G4UnitDefinition("year", "y", "Time", year);
62 
63  // Mandatory for G4NuclideTable
64  // Half-life threshold must be set small or many short-lived isomers
65  // will not be assigned life times (default to 0)
68 
69  // EM physics
72  param->SetAugerCascade(true);
73 #if G4VERSION_NUMBER >= 1004
74  param->SetStepFunction(1., 1*CLHEP::mm);
75  param->SetStepFunctionMuHad(1., 1*CLHEP::mm);
76 #endif
77 
78  // Decay
80 
81  // Radioactive decay
82 // RegisterPhysics(new G4RadioactiveDecayPhysics());
83 
84  // Hadronic physics
93 
94  // Gamma-Nuclear Physics
95 // G4EmExtraPhysics* gnuc = new G4EmExtraPhysics(verb);
96 // gnuc->ElectroNuclear(false);
97 // gnuc->MuonNuclear(false);
98 // RegisterPhysics(gnuc);
99 
100  // Optical physics
102 }
103 
104 
106 {}
107 
108 
110 {
111  G4BosonConstructor pBosonConstructor;
112  pBosonConstructor.ConstructParticle();
113 
114  G4LeptonConstructor pLeptonConstructor;
115  pLeptonConstructor.ConstructParticle();
116 
117  G4MesonConstructor pMesonConstructor;
118  pMesonConstructor.ConstructParticle();
119 
120  G4BaryonConstructor pBaryonConstructor;
121  pBaryonConstructor.ConstructParticle();
122 
123  G4IonConstructor pIonConstructor;
124  pIonConstructor.ConstructParticle();
125 
126  G4ShortLivedConstructor pShortLivedConstructor;
127  pShortLivedConstructor.ConstructParticle();
128 }
129 
130 
132 {
133  SetCutValue(0.7*mm, "proton");
134  SetCutValue(0.7*mm, "e-");
135  SetCutValue(0.7*mm, "e+");
136  SetCutValue(0.7*mm, "gamma");
137 }
138