ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Materials.cc
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Materials.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 //
29 
30 #include "G4Material.hh"
31 #include "G4PhysicalConstants.hh"
32 #include "G4SystemOfUnits.hh"
33 #include "Materials.hh"
34 
35 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
37 {
38 }
39 
40 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
42 {
43 }
44 
45 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
47 {
48  G4double A, Z;
49 
50  // ------------------------------------------------------------------------
51  // Elements
52  // ------------------------------------------------------------------------
53  G4Element* elH = new G4Element("Hydrogen","H", Z=1., A=1.00794*g/mole);
54  G4Element* elC = new G4Element("Carbon", "C", Z=6., A= 12.011 *g/mole);
55  G4Element* elN = new G4Element("Nitrogen","N", Z=7., A= 14.00674*g/mole);
56  G4Element* elO = new G4Element("Oxygen", "O", Z=8., A= 15.9994*g/mole);
57  G4Element* elNa = new G4Element("Sodium", "Na", Z=11., A= 22.989768*g/mole);
58  G4Element* elSi = new G4Element("Silicon", "Si", Z=14., A= 28.0855*g/mole);
59  G4Element* elAr = new G4Element("Argon", "Ar", Z=18., A= 39.948*g/mole);
60  G4Element* elI = new G4Element("Iodine", "I", Z=53., A= 126.90447*g/mole);
61  G4Element* elCs = new G4Element("Cesium", "Cs", Z=55., A= 132.90543*g/mole);
62 
63  // ------------------------------------------------------------------------
64  // Materials
65  // ------------------------------------------------------------------------
66  G4double density, massfraction;
67  G4int natoms, nel;
68 
69  // temperature of experimental hall is controlled at 20 degree.
70  const G4double expTemp = STP_Temperature+20.*kelvin;
71 
72  // vacuum
73  density = universe_mean_density;
74  G4Material* Vacuum = new G4Material("Vacuum", density, nel=2);
75  Vacuum-> AddElement(elN, .7);
76  Vacuum-> AddElement(elO, .3);
77 
78  // air
79  density = 1.2929e-03 *g/cm3; // at 20 degree
80  G4Material* Air = new G4Material("Air", density, nel=3,
81  kStateGas, expTemp);
82  G4double ttt = 75.47+23.20+1.28;
83  Air-> AddElement(elN, massfraction= 75.47/ttt);
84  Air-> AddElement(elO, massfraction= 23.20/ttt);
85  Air-> AddElement(elAr, massfraction= 1.28/ttt);
86 
87  // Ar gas
88  A = 39.948 *g/mole;
89  const G4double denAr = 1.782e-03 *g/cm3 * STP_Temperature/expTemp;
90  G4Material* Ar= new G4Material("ArgonGas", Z=18., A, denAr,
91  kStateGas, expTemp);
92 
93  // ethane (C2H6)
94  const G4double denEthane = 1.356e-3 *g/cm3 * STP_Temperature/expTemp;
95  G4Material* Ethane= new G4Material("Ethane", denEthane, nel=2,
96  kStateGas, expTemp);
97  Ethane-> AddElement(elC, natoms=2);
98  Ethane-> AddElement(elH, natoms=6);
99 
100  // Ar(50%) + ethane(50%) mixture
101  density = (denAr+denEthane)/2.;
102  G4Material* ArEthane = new G4Material("ArEthane", density, nel=2,
103  kStateGas, expTemp);
104  ArEthane-> AddMaterial(Ar, massfraction= denAr/density/2.);
105  ArEthane-> AddMaterial(Ethane, massfraction= denEthane/density/2.);
106 
107  // silicon
108  A = 28.0855 *g/mole;
109  density = 2.33 *g/cm3;
110  new G4Material("SiliconWafer", Z=14., A, density);
111 
112  // alminium
113  A = 26.98 *g/mole;
114  density = 2.70 *g/cm3;
115  new G4Material("Al", Z=13., A, density);
116 
117  // iron
118  A = 55.847 *g/mole;
119  density = 7.87 *g/cm3;
120  new G4Material("Iron", Z=26., A, density);
121 
122  // lead
123  A = 207.2 *g/mole;
124  density = 11.35 *g/cm3;
125  new G4Material("Lead", Z=82., A, density);
126 
127  // scintillator (Polystyene(C6H5CH=CH2))
128  density = 1.032 *g/cm3;
129  G4Material* Scinti = new G4Material("Scinti", density, nel=2);
130  Scinti-> AddElement(elC, natoms=8);
131  Scinti-> AddElement(elH, natoms=8);
132 
133  // quartz (SiO2, crystalline)
134  density = 2.64 *g/cm3;
135  G4Material* Quartz = new G4Material("Quartz", density, nel= 2);
136  Quartz-> AddElement(elSi, natoms=1);
137  Quartz-> AddElement(elO, natoms=2);
138 
139  // NaI crystal
140  density = 3.67 *g/cm3;
141  G4Material* NaI = new G4Material("NaI", density, nel= 2);
142  NaI-> AddElement(elNa, natoms=1);
143  NaI-> AddElement(elI, natoms=1);
144 
145  // CsI crystal
146  density = 4.51 *g/cm3;
147  G4Material* CsI = new G4Material("CsI", density, nel= 2);
148  CsI-> AddElement(elCs, natoms=1);
149  CsI-> AddElement(elI, natoms=1);
150 
151 }