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