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