GEMC  1.8
Geant4 Monte-Carlo Framework
cpp_materials.cc
Go to the documentation of this file.
1 // %%%%%%%%%%%%%
2 // gemc headers
3 // %%%%%%%%%%%%%
4 #include "material_factory.h"
5 #include "cpp_materials.h"
6 
7 // %%%%%%%%%%
8 // G4 headers
9 // %%%%%%%%%%
10 #include "G4Element.hh"
11 #include "G4NistManager.hh"
12 #include "G4OpBoundaryProcess.hh"
13 
14 
15 map<string, G4Material*> cpp_materials::initMaterials(run_conditions runConditions, gemc_opts opts)
16 {
17 
18  // TODO:
19  // Many of these elements are already in the G4 Material Database:
20  // http://geant4.cern.ch/UserDocumentation/UsersGuides/ForApplicationDeveloper/html/apas10.html#sect.G4MatrDb.PurMat
21  // When building materials using fractional masses, one can use the G4 Materials Database
22  //
23  // Elements are still needed when materials are formed using
24  // molecular components
25  // Example for Water:
26  // H2O->AddElement(elH, natoms=2);
27  // H2O->AddElement(elO, natoms=1);
28 
29 
30  map<string, G4Material*> MMats;
31 
32 
33  G4double a, z, density;
34  G4int nel;
35  G4int zz;
36  G4int nn;
37  G4int natoms;
38  G4double abundance;
39  G4String symbol;
40  G4int nIso;
41 
42 
43  G4Element* As = new G4Element("Arsen" , "As", z=33, a= 74.92*g/mole);
44  G4Element* Ar = new G4Element("Argon", "Ar", z=18, a= 39.95*g/mole);
45  G4Element* Al = new G4Element("Aluminum", "Al", z=13, a= 26.982*g/mole);
46  G4Element* Ba = new G4Element("Barium", "Ba", z=56, a= 137.327*g/mole);
47  G4Element* C = new G4Element("Carbon", "C", z=6, a= 12.01*g/mole);
48  G4Element* Cr = new G4Element("Chromium", "Cr", z=24, a= 52.00*g/mole);
49  G4Element* Cl = new G4Element("Chlorine", "Cl", z=17, a= 35.453*g/mole);
50  G4Element* F = new G4Element("Fluorine", "F", z=9, a= 18.9984*g/mole);
51  G4Element* H = new G4Element("Hydrogen", "H", z=1, a= 1.01*g/mole);
52  G4Element* He = new G4Element("Helium", "He", z=2, a= 4.0026*g/mole);
53  G4Element* He3 = new G4Element("Helium3", "He3", z=2, a=3.0160293*g/mole);
54  G4Element* Mn = new G4Element("Manganese", "Mn", z=25, a= 54.94*g/mole);
55  G4Element* N = new G4Element("Nitrogen", "N", z=7, a= 14.01*g/mole);
56  G4Element* O = new G4Element("Oxygen", "O", z=8, a= 16.00*g/mole);
57  G4Element* Ox = new G4Element("Ox", "Ox", z=8, a= 16.0*g/mole);
58  G4Element* Ni = new G4Element("Nickel", "Ni", z=28, a= 58.70*g/mole);
59  G4Element* Pb = new G4Element("Lead", "Pb", z=82, a= 207.19*g/mole);
60  G4Element* Si = new G4Element("Silicon", "Si", z=14, a= 28.09*g/mole);
61  G4Element* Sr = new G4Element("Strontium", "Sr", z=38, a= 87.62*g/mole);
62  G4Element* W = new G4Element("Tungsten", "W", z=74, a= 183.85*g/mole);
63  G4Element* Wf = new G4Element("Wf", "Wf", z=74, a= 183.85*g/mole);
64 
65  G4NistManager* matman = G4NistManager::Instance();
66 
67 
68  // common materials
69  G4Material *Air = new G4Material("Air", density= 1.29*mg/cm3, nel=2);
70  Air->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 70.*perCent);
71  Air->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 30.*perCent);
72 
73  G4Material *Air_Opt = new G4Material("Air_Opt", density= 1.29*mg/cm3, nel=2);
74  Air_Opt->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 70.*perCent);
75  Air_Opt->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 30.*perCent);
76 
77  G4Material *Air_Opt2 = new G4Material("Air_Opt2", density= 1.29*mg/cm3, nel=2);
78  Air_Opt2->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 70.*perCent);
79  Air_Opt2->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 30.*perCent);
80 
81  // this material will kill every tracks that touch it
82  G4Material *Kryptonite = new G4Material("Kryptonite", density= 0.00000001*mg/cm3, nel=1);
83  Kryptonite->AddElement(Ar, 100.*perCent);
84 
85 
86 
87 
88  // Materials Below are organized by detector
89  // Each detector have names and email associated with it
90 
91 
92  // %%%%%%%%%%%%%%%%%%%%%%%%%%
93  // Barrel Silicon Tracker BST
94  // By Maurizio Ungaro
95  // ungaro@jlab.org
96  // %%%%%%%%%%%%%%%%%%%%%%%%%%
97 
98  // TDR 1100 is 100parts Bisphenol A and 42parts hardener (Polyamide resin)
99  // Bisphenol A is (CH3)2C(C6H4OH)2 or 5C H14 O2
100  // Hardnerer is 46H 4N 5O 24C (source: http://www.britannica.com/EBchecked/topic/468270/polyamide)
101  // so the total is, accounting for the parts:
102  // 32H
103  // 2N
104  // 4O
105  // 15C
106  // specific gravity - or density is 1.16
107  // Epoxy->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 80.26*perCent); // Carbon
108  // Epoxy->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 7.86*perCent); // Hydrogen
109  // Epoxy->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 11.88*perCent); // Oxygen
110 
111  G4Element* elH = new G4Element("Hydrogen",symbol="H" , 1., 1.01*g/mole);
112  G4Element* elC = new G4Element("Carbon" ,symbol="C" , 6., 12.01*g/mole);
113  G4Element* elN = new G4Element("Nitrogen",symbol="N" , 7., 14.01*g/mole);
114  G4Element* elO = new G4Element("Oxygen" ,symbol="O" , 8., 16.00*g/mole);
115 
116 
117 
118  G4Material *Epoxy = new G4Material("Epoxy", density = 1.16*g/cm3, nel=4);
119  Epoxy->AddElement(elH, 32); // Hydrogen
120  Epoxy->AddElement(elN, 2); // Nitrogen
121  Epoxy->AddElement(elO, 4); // Oxygen
122  Epoxy->AddElement(elC, 15); // Carbon
123  MMats["Epoxy"] = Epoxy;
124 
125 
126  // glue + polyiamide coverlay
127  // 12.7 microns of p.c.
128  // 65 microns of epoxy
129  G4Material *EpoxyPolyI = new G4Material("EpoxyPolyI", density = 3.608*g/cm3, nel=2);
130  EpoxyPolyI->AddMaterial(Epoxy, 83*perCent); // TDR 1100
131  EpoxyPolyI->AddMaterial(matman->FindOrBuildMaterial("G4_POLYETHYLENE"), 17*perCent); // polyiamide coverlay
132  MMats["EpoxyPolyI"] = EpoxyPolyI;
133 
134 
135 
136  // silver epoxy, density based on percentages - silver is 9.32 g/cm3
137  G4Material *SilverEpoxy = new G4Material("SilverEpoxy", density = 3.608*g/cm3, nel=2);
138  SilverEpoxy->AddMaterial(Epoxy, 70*perCent); // TDR 1100
139  SilverEpoxy->AddMaterial(matman->FindOrBuildMaterial("G4_Ag"), 30*perCent); // silver
140  MMats["SilverEpoxy"] = SilverEpoxy;
141 
142 
143 
144  // bus cable with mesh, is a mix of copper and kapton
145  // the mesh is 0.381mm width with a pitch of 6mm
146  // so the percentage of actual copper is 0.381*4 / 6 (4 sides on the square)
147  // that's 25.4% of the 3 microns thikness. The polyimide is 25.4 microns.
148  // copper density is 8.94 polyiamide density is 0.94
149  // percentage of poly: 25.4*0.94 / (25.4*0.94 + 25% * 3 *8.94) = / 30.581
150  // percentage of Cu: 25% * 3 *8.94 / (25.4*0.94 + 25% * 3 *8.94) = / 30.581
151  G4Material *BusCable = new G4Material("BusCable", density=2.692*g/cm3, nel=2);
152  BusCable->AddMaterial(matman->FindOrBuildMaterial("G4_Cu"), 21.9*perCent); // Copper
153  BusCable->AddMaterial(matman->FindOrBuildMaterial("G4_POLYETHYLENE"), 78.1*perCent); // POLYETHYLENE
154  MMats["BusCable"] = BusCable;
155 
156 
157  // the pad is made of:
158  // 0.2 microns Au
159  // 3.81 microns Ni
160  // 25.4 microns Cu
161  // total is 29.41 microns
162  // 50 microns is epoxy
163  // so total thickness is 79.41
164  // gold density is 19.3
165  // nickel density is 7.8
166  // copper density is 8.94
167  // S.E density is 3.608
168  // total rad thickness is sum (d_i * l*i) = 0.2*19.3 + 3.81*7.8 + 25.4*8.94 + 50*3.608 = 412.098
169  // thickness of average material is tot rad thick / thickness (in microns)
170  // individual thicknesses are d_i*l_i / sum
171  G4Material *BusCableCopperAndNickelAndGold = new G4Material("BusCableCopperAndNickelAndGold", density=5.16*g/cm3, nel=4);
172  BusCableCopperAndNickelAndGold->AddMaterial(matman->FindOrBuildMaterial("G4_Cu"), 55.2*perCent); // Copper
173  BusCableCopperAndNickelAndGold->AddMaterial(matman->FindOrBuildMaterial("G4_Ni"), 7.2*perCent); // Nickel
174  BusCableCopperAndNickelAndGold->AddMaterial(matman->FindOrBuildMaterial("G4_Au"), 0.9*perCent); // Gold
175  BusCableCopperAndNickelAndGold->AddMaterial(SilverEpoxy, 36.7*perCent); // Silver Epoxy
176  MMats["BusCableCopperAndNickelAndGold"] = BusCableCopperAndNickelAndGold;
177 
178 
179 
180 
181 
182  // Carbon fiber 190 width + 65 microns scotch , overall 255 microns
183  G4Material *CarbonFiber = new G4Material("CarbonFiber", density = 1.750*g/cm3, nel=2);
184  CarbonFiber->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 74.5*perCent); // Carbon
185  CarbonFiber->AddMaterial(Epoxy, 25.50*perCent); // Epoxy (scotch)
186  MMats["CarbonFiber"] = CarbonFiber;
187 
188  G4Material *PCBoardM = new G4Material("PCBoardM", density = 1.860*g/cm3, nel=3);
189  PCBoardM->AddMaterial(matman->FindOrBuildMaterial("G4_Fe"), 30*perCent); // Iron
190  PCBoardM->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 40*perCent); // Carbon
191  PCBoardM->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 30*perCent); // Silicon
192  MMats["PCBoardM"] = PCBoardM ;
193 
194  G4Material *Rohacell = new G4Material("Rohacell", density = 100*mg/cm3, nel=4);
195  Rohacell->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 64.65*perCent);
196  Rohacell->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 7.84*perCent);
197  Rohacell->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 8.39*perCent);
198  Rohacell->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 19.14*perCent);
199  MMats["Rohacell"] = Rohacell ;
200 
201  // BST Support Material: Copper + HFCB
202  // All dimensions in mm
203  // Size %
204  // Gold: 0.0600 1.6
205  // Copper: 0.1397 + 2.5 68.9
206  // Polymide 0.2154 5.6 (Kapton)
207  // FR4 0.9144 23.9
208  // Total: 1.3295 + 2.5 = 3.8925
209  // G4Material *BSTSupport = new G4Material("BSTSupport", density = 9.0*g/cm3, nel=3);
210  // BSTSupport->AddElement(G4_Au, 1.6*perCent);
211  // BSTSupport->AddElement(G4_Cu, 68.9*perCent);
212  // BSTSupport->AddElement(Kapton, 5.6*perCent);
213  // BSTSupport->AddElement(CarbonFiber, 23.9*perCent);
214 
215  // Peek chemical formula (C19H12O3)
216  // C 114/150 = 76
217  // H 12/150 = 8
218  // O 24/150 = 16
219  G4Material *Peek = new G4Material("Peek", density = 1.31*g/cm3, nel=3);
220  Peek->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 76*perCent);
221  Peek->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 8*perCent);
222  Peek->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 16*perCent);
223  MMats["Peek"] = Peek ;
224 
225 
226 
227  // BST aluminized mylar
228  // 2% aluminum and the rest mylar
229  G4Material *BSTMMylar = new G4Material("BSTMMylar", density = 1.40*g/cm3, nel=4);
230  BSTMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 0.03);
231  BSTMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 0.63);
232  BSTMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 0.32);
233  BSTMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_Al"), 0.02);
234 
235 
236 
237  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
238  // High Threshold Cerenkov Counter (HTCC)
239  // By Andrew Puckett
240  // puckett@jlab.org
241  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
242 
243  const G4int nEntries_HTCCGas = 47;
244  const G4int nEntries_HTCCmirr = 46;
245 
246  // Table of optical photon energies (wavelengths) from 190-650 nm:
247  G4double PhotonEnergy_HTCCGas[nEntries_HTCCGas] =
248  { 1.9074494*eV, 1.9372533*eV, 1.9680033*eV, 1.9997453*eV, 2.0325280*eV,
249  2.0664035*eV, 2.1014273*eV, 2.1376588*eV, 2.1751616*eV, 2.2140038*eV,
250  2.2542584*eV, 2.2960039*eV, 2.3393247*eV, 2.3843117*eV, 2.4310630*eV,
251  2.4796842*eV, 2.5302900*eV, 2.5830044*eV, 2.6379619*eV, 2.6953089*eV,
252  2.7552047*eV, 2.8178230*eV, 2.8833537*eV, 2.9520050*eV, 3.0240051*eV,
253  3.0996053*eV, 3.1790823*eV, 3.2627424*eV, 3.3509246*eV, 3.4440059*eV,
254  3.5424060*eV, 3.6465944*eV, 3.7570973*eV, 3.8745066*eV, 3.9994907*eV,
255  4.1328070*eV, 4.2753176*eV, 4.4280075*eV, 4.5920078*eV, 4.7686235*eV,
256  4.9593684*eV, 5.1660088*eV, 5.3906179*eV, 5.6356459*eV, 5.9040100*eV,
257  6.1992105*eV, 6.5254848*eV };
258 
259  // Index of refraction of CO2 gas at STP:
260  G4double IndexOfRefraction_HTCCGas[nEntries_HTCCGas] =
261  { 1.0004473, 1.0004475, 1.0004477, 1.0004480, 1.0004483,
262  1.0004486, 1.0004489, 1.0004492, 1.0004495, 1.0004498,
263  1.0004502, 1.0004506, 1.0004510, 1.0004514, 1.0004518,
264  1.0004523, 1.0004528, 1.0004534, 1.0004539, 1.0004545,
265  1.0004552, 1.0004559, 1.0004566, 1.0004574, 1.0004583,
266  1.0004592, 1.0004602, 1.0004613, 1.0004625, 1.0004638,
267  1.0004652, 1.0004668, 1.0004685, 1.0004704, 1.0004724,
268  1.0004748, 1.0004773, 1.0004803, 1.0004835, 1.0004873,
269  1.0004915, 1.0004964, 1.0005021, 1.0005088, 1.0005167,
270  1.0005262, 1.0005378 };
271 
272  // Transparency of CO2 gas at STP:
273  // (completely transparent except at very short wavelengths below ~200 nm)
274  G4double AbsorptionLength_HTCCGas[nEntries_HTCCGas] =
275  { 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
276  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
277  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
278  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
279  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
280  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
281  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
282  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m,
283  1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 1000.0000000*m, 82.8323273*m,
284  4.6101432*m, 0.7465970*m };
285 
286  // Quantum efficiency of HTCC PMT with quartz window:
287  G4double QuantumEfficiency_HTCCPMT[nEntries_HTCCGas] =
288  { 0.0000000, 0.0014000, 0.0024000, 0.0040000, 0.0065000,
289  0.0105000, 0.0149000, 0.0216000, 0.0289000, 0.0376000,
290  0.0482000, 0.0609000, 0.0753000, 0.0916000, 0.1116000,
291  0.1265000, 0.1435000, 0.1602000, 0.1725000, 0.1892000,
292  0.2017000, 0.2122000, 0.2249000, 0.2344000, 0.2401000,
293  0.2418000, 0.2394000, 0.2372000, 0.2309000, 0.2291000,
294  0.2275000, 0.2301000, 0.2288000, 0.2236000, 0.2268000,
295  0.2240000, 0.2219000, 0.2219000, 0.2223000, 0.2189000,
296  0.2158000, 0.2093000, 0.2038000, 0.1950000, 0.1836000,
297  0.1612000, 0.1305000 };
298 
299  // Index of refraction of HTCC PMT quartz window:
300  G4double Rindex_HTCCPMT[nEntries_HTCCGas] =
301  { 1.5420481, 1.5423678, 1.5427003, 1.5430465, 1.5434074,
302  1.5437840, 1.5441775, 1.5445893, 1.5450206, 1.5454731,
303  1.5459484, 1.5464485, 1.5469752, 1.5475310, 1.5481182,
304  1.5487396, 1.5493983, 1.5500977, 1.5508417, 1.5516344,
305  1.5524807, 1.5533859, 1.5543562, 1.5553983, 1.5565202,
306  1.5577308, 1.5590402, 1.5604602, 1.5620045, 1.5636888,
307  1.5655313, 1.5675538, 1.5697816, 1.5722449, 1.5749797,
308  1.5780296, 1.5814472, 1.5852971, 1.5896593, 1.5946337,
309  1.6003470, 1.6069618, 1.6146902, 1.6238138, 1.6347145,
310  1.6479224, 1.6641955 };
311 
312  // Reflectivity of Al-MgF2 HTCC mirror coating:
313  G4double Reflectivity_HTCCMirror[nEntries_HTCCGas] =
314  { 0.8860000, 0.8880000, 0.8890000, 0.8900000, 0.8930000,
315  0.8960000, 0.8970000, 0.9000000, 0.9010000, 0.9020000,
316  0.9030000, 0.9040000, 0.9040000, 0.9040000, 0.9040000,
317  0.9040000, 0.9040000, 0.9040000, 0.9050000, 0.9050000,
318  0.9050000, 0.9050000, 0.9040000, 0.9040000, 0.9040000,
319  0.9040000, 0.9030000, 0.9030000, 0.9030000, 0.9020000,
320  0.9020000, 0.9010000, 0.9010000, 0.9000000, 0.8970000,
321  0.8930000, 0.8890000, 0.8830000, 0.8780000, 0.8660000,
322  0.8520000, 0.8360000, 0.8190000, 0.7950000, 0.7660000,
323  0.7370000, 0.6950000 };
324 
325  //AJRP 1/29/2013:
326  //Array of photon energies corresponding to wavelengths from 200-650 nm
327  //This omits the point at lambda = 190 nm that is used in the other arrays above
328  //Used to define mirror reflectivity based on Andrew's measurements in Fall 2012:
329  G4double PhotonEnergy_HTCC_mirr[nEntries_HTCCmirr] =
330  { 1.907449*eV, 1.937253*eV, 1.968003*eV, 1.999745*eV, 2.032528*eV,
331  2.066404*eV, 2.101427*eV, 2.137659*eV, 2.175162*eV, 2.214004*eV,
332  2.254258*eV, 2.296004*eV, 2.339325*eV, 2.384312*eV, 2.431063*eV,
333  2.479684*eV, 2.53029*eV, 2.583004*eV, 2.637962*eV, 2.695309*eV,
334  2.755205*eV, 2.817823*eV, 2.883354*eV, 2.952005*eV, 3.024005*eV,
335  3.099605*eV, 3.179082*eV, 3.262742*eV, 3.350925*eV, 3.444006*eV,
336  3.542406*eV, 3.646594*eV, 3.757097*eV, 3.874507*eV, 3.999491*eV,
337  4.132807*eV, 4.275318*eV, 4.428008*eV, 4.592008*eV, 4.768623*eV,
338  4.959368*eV, 5.166009*eV, 5.390618*eV, 5.635646*eV, 5.90401*eV,
339  6.199211*eV };
340 
341  //Reflectivity of AlMgF2 coated on thermally shaped acrylic sheets, measured by AJRP, 10/01/2012:
342  G4double Reflectivity_HTCC_AlMgF2_mirr[nEntries_HTCCmirr] =
343  { 0.8722925, 0.8725418, 0.8724854, 0.8719032, 0.8735628,
344  0.8733527, 0.8728732, 0.8769834, 0.8794382, 0.8790207,
345  0.8762184, 0.8800928, 0.8808256, 0.8812256, 0.8801459,
346  0.876982, 0.8786141, 0.8790666, 0.8786467, 0.8802601,
347  0.8824032, 0.8805016, 0.8733517, 0.8705232, 0.8753389,
348  0.8739763, 0.87137, 0.8754125, 0.8802811, 0.8616457,
349  0.8677598, 0.8684776, 0.8629656, 0.856517, 0.8539165,
350  0.8502238, 0.8450355, 0.8342837, 0.8257114, 0.8160133,
351  0.8036618, 0.783193, 0.7541341, 0.7498343, 0.6969729,
352  0.6854251 };
353 
354  //Reflectivity of AlMgF2 coated on Winston Cones, measured by AJRP on 10/04/2012:
355  G4double Reflectivity_HTCC_AlMgF2_WC[nEntries_HTCCmirr] =
356  { 0.8331038, 0.8309071, 0.8279127, 0.8280742, 0.8322623,
357  0.837572, 0.8396875, 0.8481834, 0.8660284, 0.8611336,
358  0.8566167, 0.8667431, 0.86955, 0.8722481, 0.8728122,
359  0.8771635, 0.879907, 0.879761, 0.8831943, 0.8894673,
360  0.8984234, 0.9009531, 0.8910166, 0.8887382, 0.8869093,
361  0.8941976, 0.8948479, 0.8877356, 0.9026919, 0.8999685,
362  0.9101617, 0.8983005, 0.8991694, 0.8990987, 0.9000493,
363  0.9065833, 0.9028855, 0.8985184, 0.9009736, 0.9086968,
364  0.9015145, 0.8914838, 0.8816829, 0.8666895, 0.8496298,
365  0.9042583 };
366 
367 
368  // CO2 gas with optical properties for HTCC gas:
369  // - refractive index
370  // - absorption length (transparency)
371  G4Material *HTCCGas = new G4Material("HTCCGas", density = 0.00184*g/cm3, nel=1);
372  HTCCGas->AddMaterial(matman->FindOrBuildMaterial("G4_CARBON_DIOXIDE"), 100.0*perCent);
373  MMats["HTCCGas"] = HTCCGas;
374  G4MaterialPropertiesTable* HTCCGas_MPT = new G4MaterialPropertiesTable();
375  HTCCGas_MPT->AddProperty("RINDEX", PhotonEnergy_HTCCGas, IndexOfRefraction_HTCCGas, nEntries_HTCCGas );
376  HTCCGas_MPT->AddProperty("ABSLENGTH", PhotonEnergy_HTCCGas, AbsorptionLength_HTCCGas, nEntries_HTCCGas );
377  MMats["HTCCGas"]->SetMaterialPropertiesTable(HTCCGas_MPT);
378 
379  // AlMgF2 mirror reflective coating for HTCC.
380  // Mass fractions and density are calculated assuming 27.5 nm thickness
381  // of Al and 50 nm thickness of MgF2.
382  // However, this information is largely irrelevant, because:
383  // For optics purposes, we put in the reflectivity by hand,
384  // while the material thickness is negligible for Eloss/multiple
385  // scattering purposes.
386  // Furthermore, the only place this material will be used
387  // (in principle) is as the "Mirror skin" surface for the HTCC mirrors
388  // and Winston Cones (as a G4LogicalSkinSurface)
389  G4Material *HTCCAlMgF2 = new G4Material("HTCCAlMgF2", density = 2.9007*g/cm3, nel = 3);
390  HTCCAlMgF2->AddMaterial(matman->FindOrBuildMaterial("G4_Al"), 33.1*perCent );
391  HTCCAlMgF2->AddMaterial(matman->FindOrBuildMaterial("G4_Mg"), 26.1*perCent );
392  HTCCAlMgF2->AddMaterial(matman->FindOrBuildMaterial("G4_F"), 40.8*perCent );
393  MMats["HTCCAlMgF2"] = HTCCAlMgF2;
394  G4MaterialPropertiesTable* HTCCAlMgF2_MPT = new G4MaterialPropertiesTable();
395  HTCCAlMgF2_MPT->AddProperty("REFLECTIVITY", PhotonEnergy_HTCCGas, Reflectivity_HTCCMirror, nEntries_HTCCGas );
396  MMats["HTCCAlMgF2"]->SetMaterialPropertiesTable(HTCCAlMgF2_MPT);
397 
398 
399 
400  // Rohacell 31 HF = copy of "Rohacell", but with density = 0.032 g/cc,
401  // this is the material of HTCC mirror foam substrates.
402  // Warning: I do not know if these mass fractions are correct
403  // for Rohacell31, I just changed the density!!!!
404  G4Material *Rohacell31 = new G4Material("Rohacell31", density = 0.032*g/cm3, nel=4);
405  Rohacell31->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 64.63*perCent);
406  Rohacell31->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 7.84*perCent);
407  Rohacell31->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 8.39*perCent);
408  Rohacell31->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 19.14*perCent);
409  MMats["Rohacell31"] = Rohacell31;
410 
411 
412  // Quartz window of HTCC PMT:
413  // - refractive index (required for tracking of optical photons)
414  // - efficiency (for quantum efficiency of photocathode)
415  // NOTE: in principle the quantum efficiency data of the photocathode
416  // already includes the effects of reflection and transmission
417  // at the interface between the window and the surrounding environment.
418  // Therefore, it is possible that we are "double-counting" such effects
419  // on the photo-electron yield by including the refractive index here.
420  // However, only a small fraction of the light will be reflected by the
421  // window in any case so we don't need to worry too much.
422  G4Material *HTCCPMTquartz = new G4Material("HTCCPMTquartz", density=2.32*g/cm3, nel=1);
423  HTCCPMTquartz->AddMaterial(matman->FindOrBuildMaterial("G4_SILICON_DIOXIDE"), 100.0*perCent );
424  MMats["HTCCPMTquartz"] = HTCCPMTquartz;
425  G4MaterialPropertiesTable* HTCCPMTquartz_MPT = new G4MaterialPropertiesTable();
426  HTCCPMTquartz_MPT->AddProperty("EFFICIENCY", PhotonEnergy_HTCCGas, QuantumEfficiency_HTCCPMT, nEntries_HTCCGas );
427  HTCCPMTquartz_MPT->AddProperty("RINDEX", PhotonEnergy_HTCCGas, Rindex_HTCCPMT, nEntries_HTCCGas );
428  MMats["HTCCPMTquartz"]->SetMaterialPropertiesTable(HTCCPMTquartz_MPT);
429 
430  //Below we add new material definitions which include the actual measured reflectivity of thermally shaped sheets of acryl
431  //coated with Aluminum and "MgF2" by ECI (Actually, "MgF2" is ECI's proprietary protective overcoat material, we do not know its composition.
432  // We only measured its reflectivity.).
433  // ECI = Evaporated Coatings, Inc.
434 
435  //New material definition with actual reflectivity measured for Al+MgF2 coated on acryl sheets, AJRP 10/08/2012:
436  G4Material *HTCC_ECI_Mirr = new G4Material("HTCC_ECI_Mirr", density = 2.9007*g/cm3, nel = 3);
437  HTCC_ECI_Mirr->AddMaterial(matman->FindOrBuildMaterial("G4_Al"), 33.1*perCent );
438  HTCC_ECI_Mirr->AddMaterial(matman->FindOrBuildMaterial("G4_Mg"), 26.1*perCent );
439  HTCC_ECI_Mirr->AddMaterial(matman->FindOrBuildMaterial("G4_F"), 40.8*perCent );
440  MMats["HTCC_ECI_Mirr"] = HTCC_ECI_Mirr;
441  G4MaterialPropertiesTable *HTCC_ECI_Mirr_MPT = new G4MaterialPropertiesTable();
442  HTCC_ECI_Mirr_MPT->AddProperty("REFLECTIVITY", PhotonEnergy_HTCC_mirr, Reflectivity_HTCC_AlMgF2_mirr, nEntries_HTCCmirr );
443  MMats["HTCC_ECI_Mirr"]->SetMaterialPropertiesTable( HTCC_ECI_Mirr_MPT );
444 
445  //Below is a new material definition which is the same as above, except this time we use the measured reflectivity of
446  //the same coating applied to a Winston cone and measured with the test beam incident parallel to the axis of the cone at a "grazing"
447  // angle-of-incidence:
448  //New material definition with actual reflectivity measured for Al+MgF2 coated on Winston cone, AJRP 10/08/2012:
449  G4Material *HTCC_ECI_WC = new G4Material("HTCC_ECI_WC", density = 2.9007*g/cm3, nel = 3);
450  HTCC_ECI_WC->AddMaterial(matman->FindOrBuildMaterial("G4_Al"), 33.1*perCent );
451  HTCC_ECI_WC->AddMaterial(matman->FindOrBuildMaterial("G4_Mg"), 26.1*perCent );
452  HTCC_ECI_WC->AddMaterial(matman->FindOrBuildMaterial("G4_F"), 40.8*perCent );
453  MMats["HTCC_ECI_WC"] = HTCC_ECI_WC;
454  G4MaterialPropertiesTable *HTCC_ECI_WC_MPT = new G4MaterialPropertiesTable();
455  HTCC_ECI_WC_MPT->AddProperty("REFLECTIVITY", PhotonEnergy_HTCC_mirr, Reflectivity_HTCC_AlMgF2_WC, nEntries_HTCCmirr );
456  MMats["HTCC_ECI_WC"]->SetMaterialPropertiesTable( HTCC_ECI_WC_MPT );
457 
458 
459 
460 
461 
462 
463  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
464  // Ring Imaging CHerenkov (RICH)
465  // By Marco Contalbrigo,
466  // Amhed
467  // mcontalb@fe.infn.it
468  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
469 
470 
471 
472 
473 
474 
475 
476 
477 
478 
479 
480 
481  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
482  // Electromagnetic Calorimeter (EC)
483  // By Jerry Gilfoyle
484  // ggilfoyl@richmond.edu
485  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
486 
487 
488  // From $CLAS_PACK/gsim/init_ec.F
489  // See also http://galileo.phys.Virginia.EDU/~lcs1h/gsim/archive/ecsim.html
490  // note 240 mg/cm3 is 15 lb/ft3, which is the recommended density for bulkheads
491  // See: http://www.generalplastics.com/products/rigid-foams/fr-7100
492 
493  G4Material *LastaFoam = new G4Material("LastaFoam", density = 240*mg/cm3, nel=4);
494  LastaFoam->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 40.45*perCent);
495  LastaFoam->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 7.86*perCent);
496  LastaFoam->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 15.73*perCent);
497  LastaFoam->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 35.96*perCent);
498 
499 
500  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
501  // Forward Time-of-Flight (FTOF)
502  // By Dan Carman,
503  // Maurizio Ungaro
504  // carman@jlab.org
505  // ungaro@jlab.org
506  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
507 
508 
509 
510 
511 
512 
513 
514 
515 
516 
517  G4Material *Aerogel = new G4Material("Aerogel", density= 0.14*g/cm3, nel=2);
518  Aerogel->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 30.*perCent);
519  Aerogel->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 70.*perCent);
520 
521  G4Material *CCGas = new G4Material("CCGas", density= 0.01012*g/cm3, nel=2);
522  CCGas->AddElement(F, 70.*perCent);
523  CCGas->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 30.*perCent);
524 
525 
526 
527 
528 
529 
530 
531 
532  G4double temp = 22.0*kelvin;
533  G4Isotope* D = new G4Isotope("Deuteron", zz=1, nn=2, a= 2.0141018*g/mole);
534  G4Element* elD = new G4Element("Deuterium",symbol="elD", nIso = 1);
535  elD->AddIsotope(D, abundance=100.*perCent);
536  G4Material* LD2 = new G4Material("LD2", density= 0.169*g/cm3, nel=1, kStateLiquid, temp);
537  LD2->AddElement(elD, natoms=2);
538 
539  G4Material *Carbon = new G4Material("Carbon", z=6, a= 12.011*g/mole, density = 2.265*g/cm3);
540  G4Material *LHe = new G4Material("LHe", z=2, a= 4.0026*g/mole, density = 0.125*g/cm3);
541 
542  // aluminum honeycomb core (it is actually made of alloy Alu-Alloy 3003 (AlMnCu)
543  G4Material *AlHoneycomb = new G4Material("AlHoneycomb", z=13, a= 26.982*g/mole, density = 0.13*g/cm3);
544 
545  // a denser aluminum honeycomb core for comparison
546  G4Material *AlHoneycomb2 = new G4Material("AlHoneycomb2", z=13, a= 26.982*g/mole, density = 1.00*g/cm3);
547 
548  // Densimet-180 alloy (roughly)
549  G4Material *Densimet = new G4Material("Densimet", density = 18.0*g/cm3, nel=3);
550  Densimet->AddElement(W, 90*perCent);
551  Densimet->AddElement(Ni, 5*perCent);
552  Densimet->AddMaterial(matman->FindOrBuildMaterial("G4_Fe"), 5*perCent);
553 
554 
555 
556 
557  G4Material *LeadTungsten = new G4Material("LeadTungsten", density = 8.28*g/cm3, nel=3);
558  LeadTungsten->AddElement(Pb,1);
559  LeadTungsten->AddElement(W, 1);
560  LeadTungsten->AddElement(O, 4);
561 
562 
563  G4Material* LeadOxide = matman->FindOrBuildMaterial("G4_LEAD_OXIDE"); // PbO
564  G4Material* SilicOxide = matman->FindOrBuildMaterial("G4_SILICON_DIOXIDE"); // SiO2 2.32g/cm3
565  G4Material* PotasOxide = matman->FindOrBuildMaterial("G4_POTASSIUM_OXIDE"); // K2O
566  G4Material* SodMonOxide = matman->FindOrBuildMaterial("G4_SODIUM_MONOXIDE"); // Na2O
567 
568  G4Material* As2O3 = new G4Material("As2O3", density= 3.738*g/cm3, nel=2); // As2O3
569  As2O3->AddElement( As, 2 );
570  As2O3->AddElement( O, 3 );
571 
572  G4Material* LgTF1 = new G4Material("LgTF1", density= 3.86*g/cm3 , nel=5 ); // Lead-Glass
573  LgTF1->AddMaterial( LeadOxide , 0.5120 );
574  LgTF1->AddMaterial( SilicOxide , 0.4130 );
575  LgTF1->AddMaterial( PotasOxide , 0.0422 );
576  LgTF1->AddMaterial( SodMonOxide , 0.0278 );
577  LgTF1->AddMaterial( As2O3 , 0.0050 );
578 
579  G4Material *Scintillator = new G4Material("Scintillator", density = 1.032*g/cm3, nel=2);
580  Scintillator->AddElement(C, 9);
581  Scintillator->AddElement(H, 10);
582 
583  G4Material *ScintillatorB = new G4Material("ScintillatorB", density = 1.032*g/cm3, nel=2);
584  ScintillatorB->AddElement(C, 9);
585  ScintillatorB->AddElement(H, 10);
586  ScintillatorB->GetIonisation()->SetBirksConstant(0.126*mm/MeV);
587 
588  G4Material *StainlessSteel = new G4Material("StainlessSteel", density = 8.02*g/cm3, nel=5);
589  StainlessSteel->AddElement(Mn, 0.02);
590  StainlessSteel->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 0.01);
591  StainlessSteel->AddElement(Cr, 0.19);
592  StainlessSteel->AddElement(Ni, 0.10);
593  StainlessSteel->AddMaterial(matman->FindOrBuildMaterial("G4_Fe"), 0.68);
594 
595  G4Material *Kapton = new G4Material("Kapton", density = 1.42*g/cm3, nel=4);
596  Kapton->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 0.026362);
597  Kapton->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 0.691133);
598  Kapton->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 0.073270);
599  Kapton->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 0.209235);
600 
601 
602  G4Material *OptScint = new G4Material("OptScint", density = 1.032*g/cm3, nel=2);
603  OptScint->AddElement(C, 9);
604  OptScint->AddElement(H, 10);
605 
606  G4Material *DCgas = new G4Material("DCgas", density = 1.8*mg/cm3, nel=3);
607  DCgas->AddElement(Ar, 90*perCent);
608  DCgas->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 6.6*perCent);
609  DCgas->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 3.4*perCent);
610 
611 
612 
613  G4Material *FTinsfoam = new G4Material("FTinsfoam", density = 34*kg/m3, nel=4);
614  FTinsfoam->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 60.*perCent);
615  FTinsfoam->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 10.*perCent);
616  FTinsfoam->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 10.*perCent);
617  FTinsfoam->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 20.*perCent);
618 
619  G4Material *Noryl = new G4Material("Noryl", density = 1.06*g/cm3, nel=3);
620  Noryl->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 47.06*perCent );
621  Noryl->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 47.06*perCent );
622  Noryl->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 5.88*perCent );
623 
624 
625  G4Material *svtwirebond = new G4Material("svtwirebond", density = 2.69*g/cm3, nel=2);
626  svtwirebond->AddElement(Al, 99*perCent);
627  svtwirebond->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 1*perCent);
628 
629  G4Material *MMGas = new G4Material("MMGas", density = (1.662*0.95+2.489*0.05)*mg/cm3, nel=3);
630  MMGas->AddElement(Ar, 95.0*perCent);
631  MMGas->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 0.173414*5.0*perCent);
632  MMGas->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 0.826586*5.0*perCent);
633 
634 
635 
636 
637  /*
638  G4Material *MMGas = new G4Material("MMGas", density = 1.17*mg/cm3, nel=4);
639  MMGas->AddElement(Ne, 79.0*perCent);
640  MMGas->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 0.2011*11.0*perCent);
641  MMGas->AddElement(C, (0.7989*11.0+0.1365*10.0)*perCent);
642  MMGas->AddElement(F, 0.8635*10.0*perCent);
643  */
644  /*
645  G4Material *MMGas = new G4Material("MMGas", density = 1.87*mg/cm3, nel=4);
646  MMGas->AddElement(Ar, 95.0*perCent);
647  MMGas->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 0.1734*2.0*perCent);
648  MMGas->AddElement(C, (0.8266*2.0+0.1365*3.0)*perCent);
649  MMGas->AddElement(F, 0.8635*3.0*perCent);
650  */
651 
652  G4double MMStripTransparency = 300./400.;
653  G4Material *MMStrips = new G4Material("Copper", z=29, a= 63.55*g/mole, density = 8.960*MMStripTransparency*g/cm3);
654 
655  //G4double MMMeshTransparency = (19./50.)*(19./50.);
656  G4double MMMeshTransparency = 1.0;
657 
658  G4Material *MMMesh = new G4Material("MMMesh", density = 8.02*MMMeshTransparency*g/cm3, nel=5);
659  MMMesh->AddElement(Mn, 0.02);
660  MMMesh->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 0.01);
661  MMMesh->AddElement(Cr, 0.19);
662  MMMesh->AddElement(Ni, 0.10);
663  MMMesh->AddMaterial(matman->FindOrBuildMaterial("G4_Fe"), 0.68);
664 
665  /*
666  G4Material *MMMesh = new G4Material("MMMesh", z=28, a= 58.70*g/mole, density = 8.902*MMMeshTransparency*g/cm3);
667  */
668 
669  G4Material *MMMylar = new G4Material("MMMylar", density = 1.40*g/cm3, nel=3);
670  MMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 0.041958);
671  MMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 0.625017);
672  MMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 0.333025);
673 
674  /*
675  G4Material *MMMylar = new G4Material("MMMylar", density = 8.02*MMMeshTransparency*g/cm3, nel=5);
676  MMMylar->AddElement(Mn, 0.02);
677  MMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 0.01);
678  MMMylar->AddElement(Cr, 0.19);
679  MMMylar->AddElement(Ni, 0.10);
680  MMMylar->AddMaterial(matman->FindOrBuildMaterial("G4_Fe"), 0.68);
681  */
682  //G4Material *MMMylar = new G4Material("MMMylar", z=28, a= 58.70*g/mole, density = 8.902*g/cm3);
683  G4Material* He4_1atm = new G4Material( "He4_1atm", density = 1.*0.1786*mg/cm3, nel=1 );
684  He4_1atm->AddElement( He, 100.0*perCent );
685  G4Material* He4_2atm = new G4Material( "He4_2atm", density = 2.*0.1786*mg/cm3, nel=1 );
686  He4_2atm->AddElement( He, 100.0*perCent );
687  G4Material* He4_3atm = new G4Material( "He4_3atm", density = 3.*0.1786*mg/cm3, nel=1 );
688  He4_3atm->AddElement( He, 100.0*perCent );
689  G4Material* He4_7atm = new G4Material( "He4_7atm", density = 7.*0.1786*mg/cm3, nel=1 );
690  He4_7atm->AddElement( He, 100.0*perCent );
691 
692  G4Material* PbWO4 = new G4Material( "PbWO4", density = 8.28*g/cm3, nel=3 );
693  PbWO4->AddElement( Pb, 1./6.*100.*perCent );
694  PbWO4->AddElement( Wf, 1./6.*100.*perCent );
695  PbWO4->AddElement( Ox, 4./6.*100.*perCent );
696 
697  G4Material* SemiMirror = new G4Material( "SemiMirror", density = 8.28*g/cm3, nel=3 );
698  SemiMirror->AddElement( Pb, 1./6.*100.*perCent );
699  SemiMirror->AddElement( Wf, 1./6.*100.*perCent );
700  SemiMirror->AddElement( Ox, 4./6.*100.*perCent );
701 
702  //for pol He3 target
703  //He3 gas target
704  G4Material* He3_10amg = new G4Material( "He3_10amg", density = 10.*0.1345*mg/cm3, nel=1 );
705  //0.1345=44.6(amg=mol/m3)*3.016(g/mol)
706  He3_10amg->AddElement( He3, 100.0*perCent );
707 
708  //He3 cell glass
709  G4Material *BariumOxide = new G4Material("BariumOxide", density=5.72*g/cm3, nel=2);
710  BariumOxide->AddElement(Ba, 1);
711  BariumOxide->AddElement(O, 1);
712 
713  G4Material *StrontiumOxide = new G4Material("StrontiumOxide", density=4.7*g/cm3, nel=2);
714  StrontiumOxide->AddElement(Sr, 1);
715  StrontiumOxide->AddElement(O, 1);
716 
717  G4Material *AluminiumOxide = matman->FindOrBuildMaterial("G4_ALUMINUM_OXIDE"); // Al2O3 3.97g/cm3
718  G4Material *CalciumOxide = matman->FindOrBuildMaterial("G4_CALCIUM_OXIDE"); // CaO 3.3g/cm3
719 
720  G4Material *Glass_GE180 = new G4Material("Glass_GE180", density=2.76*g/cm3, nel=5);
721  Glass_GE180->AddMaterial(SilicOxide, 60.8*perCent); //add 0.5 to make total as 1
722  Glass_GE180->AddMaterial(BariumOxide, 18.2*perCent);
723  Glass_GE180->AddMaterial(AluminiumOxide, 14.3*perCent);
724  Glass_GE180->AddMaterial(CalciumOxide, 6.5*perCent);
725  Glass_GE180->AddMaterial(StrontiumOxide, 0.25*perCent);
726  //http://galileo.phys.virginia.edu/research/groups/spinphysics/glass_properties.html
727 
728  // G4Material *Glass_GE180 = new G4Material("Glass_GE180", density=2.76*g/cm3, nel=6);
729  // Glass_GE180->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 1./3.*60.3*perCent);
730  // Glass_GE180->AddElement(Ba, 1./2.*18.2*perCent);
731  // Glass_GE180->AddElement(Al, 2./5.*14.3*perCent);
732  // Glass_GE180->AddElement(Ca, 1./2.*6.5*perCent);
733  // Glass_GE180->AddElement(Sr, 1./2.*0.25*perCent);
734  // Glass_GE180->AddMaterial(matman->FindOrBuildMaterial("G4_O"), (2./3.*60.3+1./2.*18.2+3./5.*14.3+1./2.*6.5+1./2.*0.25)*perCent);
735 
736  //proton pol target NH3
737  //solid NH3
738  G4double density_NH3_solid = 0.817*g/cm3;
739  G4Material *NH3_solid = new G4Material("NH3_solid", density_NH3_solid, nel=2);
740  NH3_solid->AddElement(H, 3);
741  NH3_solid->AddElement(N, 1);
742 
743  G4Material *He4_liquid = new G4Material( "He4_liquid", density = 0.145*g/cm3, nel=1 );
744  He4_liquid->AddElement( He, 100.0*perCent );
745 
746  //SolidNH3(55%)+LiquidHe(45%) in volumn?
747  //density = mLiquidHeD*(1.0-mNH3VolumnRatio)+mSolidNH3D*mNH3VolumnRatio;
748  //density_NH3He = 1.0/((1.0-mNH3WeightRatio)/mLiquidHeD+mNH3WeightRatio/mSolidNH3D);
749  G4double density_NH3He = (0.817*0.55+0.145*0.45)*g/cm3;
750  G4Material *NH3He = new G4Material("NH3He", density_NH3He, nel=2);
751  NH3He->AddMaterial(NH3_solid, 0.8732);
752  NH3He->AddMaterial(He4_liquid, 1-0.8732);
753 
754  //Beryllium oxide
755  G4Material *BerylliumOxide = matman->FindOrBuildMaterial("G4_BERYLLIUM_OXIDE"); // BeO 3.02g/cm3
756 
757  // polyethylene
758 
759  // for GEM
760  // NOMEX:
761  G4Material* NOMEX_pure = new G4Material("NOMEX_pure", density = 1.38*g/cm3, 5);
762  NOMEX_pure -> AddMaterial(matman->FindOrBuildMaterial("G4_H"),0.04);
763  NOMEX_pure -> AddMaterial(matman->FindOrBuildMaterial("G4_C"),0.54);
764  NOMEX_pure -> AddMaterial(matman->FindOrBuildMaterial("G4_N"),0.09);
765  NOMEX_pure -> AddMaterial(matman->FindOrBuildMaterial("G4_O"),0.10);
766  NOMEX_pure -> AddElement(Cl,0.23);
767 
768  G4Material* NOMEX = new G4Material("NOMEX",density = 0.04*g/cm3, 2);
769  NOMEX -> AddMaterial(NOMEX_pure,0.45);
770  NOMEX -> AddMaterial(Air,0.55);
771 
772  // Nema G10:
773  G4Material* NEMAG10 = new G4Material("NEMAG10", 1.70*g/cm3, nel=4);
774  NEMAG10 -> AddElement(Si, 1);
775  NEMAG10 -> AddElement(O , 2);
776  NEMAG10 -> AddElement(C , 3);
777  NEMAG10 -> AddElement(H , 3);
778 
779  // Ar (70) CO2 (30) STP
780  G4double density_Ar = 1.7823*mg/cm3 ;
781  G4Material* Argon = new G4Material("Argon" , density_Ar, nel=1);
782  Argon->AddElement(Ar, 1);
783 
784  G4double density_CO2 = 1.977*mg/cm3;
785  G4Material* CO2 = new G4Material("CO2", density_CO2, nel=2);
786  CO2->AddElement(C, 1);
787  CO2->AddElement(O, 2);
788 
789  G4double density_ArCO2 = .7*density_Ar + .3*density_CO2;
790  G4Material *ArCO2 = new G4Material("GEMgas", density_ArCO2, nel=2);
791  ArCO2->AddMaterial(Argon, 0.7*density_Ar/density_ArCO2) ;
792  ArCO2->AddMaterial(CO2, 0.3*density_CO2/density_ArCO2) ;
793 
794 
795  //RICH MATERIAL
796  G4Material *C6F14 = new G4Material("C6F14", density=1.680*g/cm3, nel=2);
797  C6F14->AddElement(C, 6);
798  C6F14->AddElement(F, 14);
799 
800  G4Material *C5F12 = new G4Material("C5F12", density=1.680*g/cm3, nel=2);
801  C5F12->AddElement(C , 5);
802  C5F12->AddElement(F , 12);
803 
804  G4Material* H2O = new G4Material("H20", density=1.000*g/cm3, nel=2);
805  H2O->AddElement(H, 2);
806  H2O->AddElement(O, 1);
807 
808  G4Material *AerogelQuartz = new G4Material("AerogelQuartz", density=2.200*g/cm3, nel=2);
809  AerogelQuartz->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 1);
810  AerogelQuartz->AddElement(O, 2);
811 
812  G4Material *RichAerogel3 = new G4Material("RichAerogel3", density=0.158*g/cm3, nel=2);
813  RichAerogel3->AddMaterial(AerogelQuartz, 97.0*perCent);
814  RichAerogel3->AddMaterial(H2O, 3.0*perCent);
815 
816  G4Material *RichAerogel5 = new G4Material("RichAerogel5", density=0.25*g/cm3, nel=2);
817  RichAerogel5->AddMaterial(AerogelQuartz, 97.0*perCent);
818  RichAerogel5->AddMaterial(H2O, 3.0*perCent);
819 
820  G4Material *Quartz = new G4Material("Quartz", density= 4.400*g/cm3, nel=2);
821  Quartz->AddMaterial(matman->FindOrBuildMaterial("G4_Si"), 1);
822  Quartz->AddElement(O, 2);
823 
824  //G4Material *Methane = new G4Material("Methane", density= 0.422*g/cm3, nel=2); //liquid
825  //G4Material *Methane = new G4Material("Methane", density= 0.717*kg/m3, nel=2); //gas at 0 degree, 1atm
826  G4Material *Methane = new G4Material("Methane", density= 0.667*kg/m3, nel=2); //gas at 20 degree, 1atm
827  Methane->AddElement(C, 1);
828  Methane->AddElement(H, 4);
829 
830  G4Material *Alumi = new G4Material("Alumi", density=2.7*g/cm3, nel=1);
831  Alumi->AddElement(Al, 1);
832 
833  G4Material *Glass = new G4Material("Glass", density=1.032*g/cm3, nel=2);
834  Glass->AddMaterial(matman->FindOrBuildMaterial("G4_C"), 91.533*perCent);
835  Glass->AddMaterial(matman->FindOrBuildMaterial("G4_H"), 8.467*perCent);
836 
837 
838  // END OF RICH MATERIAL
839 
840 
841 
842  // Various Vacuums
843  // 1 torr is 1/760 atmospheric pressure, that is 1.29*mg/cm3
844  G4Material *vacuum_m9 = new G4Material("vacuum_m9", density= 1.68e-12*mg/cm3, nel=2);
845  vacuum_m9->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 70.*perCent);
846  vacuum_m9->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 30.*perCent);
847 
848  G4Material *vacuum_m3 = new G4Material("vacuum_m3", density= 1.68e-6*mg/cm3, nel=2);
849  vacuum_m3->AddMaterial(matman->FindOrBuildMaterial("G4_N"), 70.*perCent);
850  vacuum_m3->AddMaterial(matman->FindOrBuildMaterial("G4_O"), 30.*perCent);
851 
852 
853 
854 
855 
856  MMats["AerogelQuartz"] = AerogelQuartz;
857  MMats["Air"] = Air;
858  MMats["Air_Opt"] = Air_Opt;
859  MMats["Air_Opt2"] = Air_Opt2;
860  MMats["Alumi"] = Alumi;
861  MMats["Aluminum"] = matman->FindOrBuildMaterial("G4_Al");
862  MMats["Aerogel"] = Aerogel;
863  MMats["C5F12"] = C5F12;
864  MMats["C6F14"] = C6F14;
865  MMats["Carbon"] = Carbon;
866  MMats["CCGas"] = CCGas;
867  MMats["Concrete"] = matman->FindOrBuildMaterial("G4_CONCRETE"); // concrete
868  MMats["Copper"] = matman->FindOrBuildMaterial("G4_Cu");
869  MMats["DCgas"] = DCgas;
870  MMats["FTinsfoam"] = FTinsfoam;
871  MMats["Glass"] = Glass;
872  MMats["Glass_GE180"] = Glass_GE180;
873  MMats["Gold"] = matman->FindOrBuildMaterial("G4_Au");
874  MMats["H2O"] = H2O;
875  MMats["He4_1atm"] = He4_1atm ;
876  MMats["He4_2atm"] = He4_2atm ;
877  MMats["He4_3atm"] = He4_3atm ;
878  MMats["He4_7atm"] = He4_7atm ;
879  MMats["He3_10amg"] = He3_10amg ;
880  MMats["Iron"] = matman->FindOrBuildMaterial("G4_Fe");
881  MMats["Kapton"] = Kapton;
882  MMats["Kryptonite"] = matman->FindOrBuildMaterial("Kryptonite");
883  MMats["LD2"] = LD2;
884  MMats["Lead"] = matman->FindOrBuildMaterial("G4_Pb");
885  MMats["LeadTungsten"] = LeadTungsten;
886  MMats["LgTF1"] = LgTF1; // Lead-Glass
887  MMats["LH2"] = matman->FindOrBuildMaterial("G4_lH2");;
888  MMats["LHe"] = LHe;
889  MMats["Methane"] = Methane;
890  MMats["MMGas"] = MMGas;
891  MMats["MMStrips"] = MMStrips;
892  MMats["MMMesh"] = MMMesh;
893  MMats["MMMylar"] = MMMylar;
894  MMats["Nickel"] = matman->FindOrBuildMaterial("G4_Ni");
895  MMats["Noryl"] = Noryl ;
896  MMats["PbWO4"] = PbWO4 ;
897  MMats["Quartz"] = Quartz;
898  MMats["OptScint"] = OptScint;
899  MMats["RichAerogel3"] = RichAerogel3;
900  MMats["RichAerogel5"] = RichAerogel5;
901  MMats["Scintillator"] = Scintillator;
902  MMats["ScintillatorB"] = ScintillatorB;
903  MMats["SemiMirror"] = SemiMirror ;
904  MMats["Silicium"] = matman->FindOrBuildMaterial("G4_Si");
905  MMats["Silicon"] = matman->FindOrBuildMaterial("G4_Si");
906  MMats["StainlessSteel"] = StainlessSteel;
907  MMats["svtwirebond"] = svtwirebond;
908  MMats["Teflon"] = matman->FindOrBuildMaterial("G4_TEFLON");
909  MMats["Tungsten"] = matman->FindOrBuildMaterial("G4_W");
910  MMats["Vacuum"] = matman->FindOrBuildMaterial("G4_Galactic");
911  MMats["vacuum_m9"] = vacuum_m9;
912  MMats["vacuum_m3"] = vacuum_m3;
913  MMats["Water"] = matman->FindOrBuildMaterial("G4_WATER");
914  MMats["AlHoneycomb"] = AlHoneycomb;
915  MMats["AlHoneycomb2"] = AlHoneycomb2;
916  MMats["Densimet"] = Densimet;
917  MMats["NOMEX_pure"] = NOMEX_pure;
918  MMats["NOMEX"] = NOMEX;
919  MMats["NEMAG10"] = NEMAG10;
920  MMats["Argon"] = Argon;
921  MMats["CO2"] = CO2;
922  MMats["ArCO2"] = ArCO2;
923  MMats["NH3_solid"] = NH3_solid;
924  MMats["He4_liquid"] = He4_liquid;
925  MMats["NH3He"] = NH3He;
926  MMats["BerylliumOxide"] = BerylliumOxide;
927 
928 
929  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%
930  // Materials Optical Properties
931  // %%%%%%%%%%%%%%%%%%%%%%%%%%%%
932 
933  // Optical Scintillator
934  const G4int nEntries_OptScint = 2;
935 
936  G4double PhotonEnergy_OptScint[nEntries_OptScint] = { 2.034*eV , 4.136*eV };
937  G4double RefractiveIndex_OptScint[nEntries_OptScint] = { 1.49 , 1.49 };
938  G4double Absorption_OptScint[nEntries_OptScint] = { 4.5*m , 4.5*m };
939  G4double ScintilFast_OptScint[nEntries_OptScint] = { 1.00 , 1.00 };
940  G4double ScintilSlow_OptScint[nEntries_OptScint] = { 10.00 , 10.00 };
941 
942  G4MaterialPropertiesTable* OptScint_MPT = new G4MaterialPropertiesTable();
943  OptScint_MPT->AddProperty("RINDEX", PhotonEnergy_OptScint, RefractiveIndex_OptScint, nEntries_OptScint);
944  OptScint_MPT->AddProperty("ABSLENGTH", PhotonEnergy_OptScint, Absorption_OptScint, nEntries_OptScint);
945  OptScint_MPT->AddProperty("FASTCOMPONENT", PhotonEnergy_OptScint, ScintilFast_OptScint, nEntries_OptScint);
946  OptScint_MPT->AddProperty("SLOWCOMPONENT", PhotonEnergy_OptScint, ScintilSlow_OptScint, nEntries_OptScint);
947 
948  OptScint_MPT->AddConstProperty("SCINTILLATIONYIELD", 1./MeV);
949  OptScint_MPT->AddConstProperty("RESOLUTIONSCALE", 1.0);
950  OptScint_MPT->AddConstProperty("FASTTIMECONSTANT", 2.1*ns);
951  OptScint_MPT->AddConstProperty("SLOWTIMECONSTANT", 10.*ns);
952  OptScint_MPT->AddConstProperty("YIELDRATIO", 0.1);
953  MMats["OptScint"]->SetMaterialPropertiesTable(OptScint_MPT);
954 
955  // Lead Glass
956  const G4int nEntries = 15;
957  G4double PhotonEnergyTF1[nEntries] =
958  { 1.99988723*eV, 2.06655002*eV, 2.13781047*eV,
959  2.21416092*eV, 2.29616666*eV, 2.38448095*eV,
960  2.47986007*eV, 2.58318758*eV, 2.69550014*eV,
961  2.81802297*eV, 2.95221448*eV, 3.09982514*eV,
962  3.26297379*eV, 3.44425011*eV, 3.64685321*eV };
963 
964  G4double RefractiveIndex1[nEntries] =
965  { 1.6436, 1.6454, 1.6474, 1.6496, 1.6521,
966  1.6548, 1.6579, 1.6614, 1.6653, 1.6697,
967  1.6748, 1.6806, 1.6874, 1.6952, 1.7045 };
968 
969  G4double Absorption1[nEntries] =
970  { 7.0*m, 7.0*m, 7.0*m, 7.0 *m, 7.0 *m,
971  7.0*m, 6.0*m, 5.0*m, 3.5 *m, 2.75*m,
972  1.8*m, 1.0*m, 0.5*m, 0.15*m, 0.08*m };
973 
974  G4MaterialPropertiesTable* TF1glass = new G4MaterialPropertiesTable();
975  TF1glass->AddProperty("RINDEX", PhotonEnergyTF1, RefractiveIndex1, nEntries);
976  TF1glass->AddProperty("ABSLENGTH", PhotonEnergyTF1, Absorption1, nEntries);
977  MMats["LgTF1"]->SetMaterialPropertiesTable(TF1glass);
978 
979 
980  // Air Reflection
981  const G4int nEntries_Air = 2;
982  G4double PhotonEnergy_Air[nEntries_Air] = { 2.034*eV , 4.136*eV };
983  G4double RefractiveIndex_Air[nEntries_Air] = { 1.00, 1.00 };
984 
985  G4MaterialPropertiesTable* Air_MPT = new G4MaterialPropertiesTable();
986  Air_MPT->AddProperty("RINDEX", PhotonEnergy_Air, RefractiveIndex_Air, nEntries_Air);
987  MMats["Air_Opt"]->SetMaterialPropertiesTable(Air_MPT);
988  // MMats["Air"]->SetMaterialPropertiesTable(Air_MPT);
989 
990 
991  // Air2 Reflection
992  G4double RefractiveIndex_Air2[nEntries_Air] = { 1.00, 1.00 };
993  G4double Absorption_Air2[nEntries_Air] = { 0.0*mm , 0.0*mm };
994 
995  G4MaterialPropertiesTable* Air_MPT2 = new G4MaterialPropertiesTable();
996  Air_MPT2->AddProperty("RINDEX", PhotonEnergy_Air, RefractiveIndex_Air2, nEntries_Air);
997  Air_MPT2->AddProperty("ABSLENGTH", PhotonEnergy_Air, Absorption_Air2, nEntries_Air);
998  MMats["Air_Opt2"]->SetMaterialPropertiesTable(Air_MPT2);
999 
1000  G4double PhotonEnergy_SemiMirror[nEntries_Air] = { 2.034*eV , 4.136*eV };
1001  G4double RefractiveIndex_SemiMirror[nEntries_Air] = { 5.00, 5.00 };
1002  G4double Absorption_SemiMirror[nEntries_Air] = { 100.0*m , 100.0*m };
1003 
1004  G4MaterialPropertiesTable* SemiMirrorMPT = new G4MaterialPropertiesTable();
1005  SemiMirrorMPT->AddProperty("RINDEX", PhotonEnergy_SemiMirror, RefractiveIndex_SemiMirror, 2);
1006  SemiMirrorMPT->AddProperty("ABSLENGTH", PhotonEnergy_SemiMirror, Absorption_SemiMirror, 2);
1007  MMats["SemiMirror"]->SetMaterialPropertiesTable(SemiMirrorMPT);
1008 
1009 
1010 
1011 
1012  // Water Properties
1013  const G4int nEntries_Water = 32;
1014  G4double PhotonEnergy_Water[nEntries_Water] =
1015  { 2.034*eV, 2.068*eV, 2.103*eV, 2.139*eV,
1016  2.177*eV, 2.216*eV, 2.256*eV, 2.298*eV,
1017  2.341*eV, 2.386*eV, 2.433*eV, 2.481*eV,
1018  2.532*eV, 2.585*eV, 2.640*eV, 2.697*eV,
1019  2.757*eV, 2.820*eV, 2.885*eV, 2.954*eV,
1020  3.026*eV, 3.102*eV, 3.181*eV, 3.265*eV,
1021  3.353*eV, 3.446*eV, 3.545*eV, 3.649*eV,
1022  3.760*eV, 3.877*eV, 4.002*eV, 4.136*eV };
1023 
1024  G4double RefractiveIndex_Water[nEntries_Water] =
1025  { 1.3435 , 1.344 , 1.3445 , 1.345 ,
1026  1.3455 , 1.346 , 1.3465 , 1.347 ,
1027  1.3475 , 1.348 , 1.3485 , 1.3492 ,
1028  1.35 , 1.3505 , 1.351 , 1.3518 ,
1029  1.3522 , 1.3530 , 1.3535 , 1.354 ,
1030  1.3545 , 1.355 , 1.3555 , 1.356 ,
1031  1.3568 , 1.3572 , 1.358 , 1.3585 ,
1032  1.359 , 1.3595 , 1.36 , 1.3608 };
1033 
1034  G4double Absorption_Water[nEntries_Water] =
1035  { 3.448*m , 4.082*m, 6.329*m, 9.174*m,
1036  12.346*m , 13.889*m, 15.152*m, 17.241*m,
1037  18.868*m , 20.000*m, 26.316*m, 35.714*m,
1038  45.455*m , 47.619*m, 52.632*m, 52.632*m,
1039  55.556*m , 52.632*m, 52.632*m, 47.619*m,
1040  45.455*m , 41.667*m, 37.037*m, 33.333*m,
1041  30.000*m , 28.500*m, 27.000*m, 24.500*m,
1042  22.000*m , 19.500*m, 17.500*m, 14.500*m };
1043 
1044  G4double ScintilFast_Water[nEntries_Water] =
1045  { 1.00 , 1.00 , 1.00 , 1.00 ,
1046  1.00 , 1.00 , 1.00 , 1.00 ,
1047  1.00 , 1.00 , 1.00 , 1.00 ,
1048  1.00 , 1.00 , 1.00 , 1.00 ,
1049  1.00 , 1.00 , 1.00 , 1.00 ,
1050  1.00 , 1.00 , 1.00 , 1.00 ,
1051  1.00 , 1.00 , 1.00 , 1.00 ,
1052  1.00 , 1.00 , 1.00 , 1.00 };
1053 
1054  G4double ScintilSlow_Water[nEntries_Water] =
1055  { 0.01 , 1.00 , 2.00 , 3.00 ,
1056  4.00 , 5.00 , 6.00 , 7.00 ,
1057  8.00 , 9.00 , 8.00 , 7.00 ,
1058  6.00 , 4.00 , 3.00 , 2.00 ,
1059  1.00 , 0.01 , 1.00 , 2.00 ,
1060  3.00 , 4.00 , 5.00 , 6.00 ,
1061  7.00 , 8.00 , 9.00 , 8.00 ,
1062  7.00 , 6.00 , 5.00 , 4.00 };
1063 
1064 
1065  G4MaterialPropertiesTable* Water_MPT = new G4MaterialPropertiesTable();
1066  Water_MPT->AddProperty("RINDEX", PhotonEnergy_Water, RefractiveIndex_Water, nEntries_Water);
1067  Water_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Water, Absorption_Water, nEntries_Water);
1068  Water_MPT->AddProperty("FASTCOMPONENT", PhotonEnergy_Water, ScintilFast_Water, nEntries_Water);
1069  Water_MPT->AddProperty("SLOWCOMPONENT", PhotonEnergy_Water, ScintilSlow_Water, nEntries_Water);
1070 
1071  Water_MPT->AddConstProperty("SCINTILLATIONYIELD", 10./MeV);
1072  Water_MPT->AddConstProperty("RESOLUTIONSCALE", 1.0);
1073  Water_MPT->AddConstProperty("FASTTIMECONSTANT", 1.*ns);
1074  Water_MPT->AddConstProperty("SLOWTIMECONSTANT", 10.*ns);
1075  Water_MPT->AddConstProperty("YIELDRATIO", 0.8);
1076 
1077  MMats["Water"]->SetMaterialPropertiesTable(Water_MPT);
1078  MMats["H2O"]->SetMaterialPropertiesTable(Water_MPT);
1079 
1080 
1081  // Cerenkov Gas properties
1082  const G4int nEntries_CCGas = 2;
1083  G4double PhotonEnergy_CCGas[nEntries_CCGas] = { 2.034*eV, 4.136*eV };
1084  G4double RefractiveIndex_CCGas[nEntries_CCGas] = { 1.001331 , 1.00143 };
1085  G4double Absorption_CCGas[nEntries_CCGas] = { 10*m , 3*m };
1086 
1087  G4MaterialPropertiesTable* CCGas_MPT = new G4MaterialPropertiesTable();
1088  CCGas_MPT->AddProperty("RINDEX", PhotonEnergy_CCGas, RefractiveIndex_CCGas, nEntries_CCGas);
1089  CCGas_MPT->AddProperty("ABSLENGTH", PhotonEnergy_CCGas, Absorption_CCGas, nEntries_CCGas);
1090  CCGas_MPT->AddConstProperty("SCINTILLATIONYIELD", 10./MeV);
1091  CCGas_MPT->AddConstProperty("RESOLUTIONSCALE", 1.0);
1092  CCGas_MPT->AddConstProperty("YIELDRATIO", 0.8);
1093  MMats["CCGas"]->SetMaterialPropertiesTable(CCGas_MPT);
1094 
1095 
1096  // Aerogel properties
1097  const G4int nEntries_Aerogel = 2;
1098  G4double PhotonEnergy_Aerogel[nEntries_Aerogel] = { 2.034*eV, 4.136*eV };
1099  G4double RefractiveIndex_Aerogel[nEntries_Aerogel] = { 1.03 , 1.03 };
1100  G4double Absorption_Aerogel[nEntries_Aerogel] = { 10*m , 3*cm };
1101 
1102  G4MaterialPropertiesTable* Aerogel_MPT = new G4MaterialPropertiesTable();
1103  Aerogel_MPT->AddProperty("RINDEX", PhotonEnergy_Aerogel, RefractiveIndex_Aerogel, nEntries_Aerogel);
1104  Aerogel_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Aerogel, Absorption_Aerogel, nEntries_Aerogel);
1105  Aerogel_MPT->AddConstProperty("SCINTILLATIONYIELD", 10./MeV);
1106  Aerogel_MPT->AddConstProperty("RESOLUTIONSCALE", 1.0);
1107  Aerogel_MPT->AddConstProperty("YIELDRATIO", 0.8);
1108  MMats["Aerogel"]->SetMaterialPropertiesTable(Aerogel_MPT);
1109 
1110 
1111  // RICH
1112  const G4int nEntries_Rich = 14;
1113 
1114  G4double PhotonEnergy_Rich[nEntries_Rich] =
1115  { 2.21*eV, 2.30*eV, 2.38*eV, 2.48*eV,
1116  2.58*eV, 2.70*eV, 2.82*eV, 2.95*eV,
1117  3.10*eV, 3.26*eV, 3.44*eV, 3.65*eV,
1118  3.88*eV, 4.13*eV};
1119 
1120 
1121  G4double C5F12_Rind[nEntries_Rich] =
1122  { 1.23862, 1.23884, 1.23906, 1.23933,
1123  1.23962, 1.23998, 1.24035, 1.24078,
1124  1.24130, 1.24189, 1.24259, 1.24346,
1125  1.24448, 1.24567};
1126 
1127  G4double C5F12_Abs[nEntries_Rich] =
1128  { 2000.*mm, 2000.*mm, 2000.*mm, 2000.*mm,
1129  2000.*mm, 2000.*mm, 2000.*mm, 2000.*mm,
1130  2000.*mm, 2000.*mm, 2000.*mm, 2000.*mm,
1131  2000.*mm, 2000.*mm};
1132 
1133 
1134  G4MaterialPropertiesTable* C5F12_MPT = new G4MaterialPropertiesTable();
1135  C5F12_MPT->AddProperty("RINDEX", PhotonEnergy_Rich, C5F12_Rind, nEntries_Rich);
1136  C5F12_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Rich, C5F12_Abs, nEntries_Rich);
1137  MMats["C5F12"]->SetMaterialPropertiesTable(C5F12_MPT);
1138 
1139  const G4int RichAerogel_Len=50;
1140  G4double RichAerogel_PhoE[RichAerogel_Len]=
1141  { 1.87855*eV, 1.96673*eV, 2.05490*eV, 2.14308*eV, 2.23126*eV,
1142  2.31943*eV, 2.40761*eV, 2.49579*eV, 2.58396*eV, 2.67214*eV,
1143  2.76032*eV, 2.84849*eV, 2.93667*eV, 3.02485*eV, 3.11302*eV,
1144  3.20120*eV, 3.28938*eV, 3.37755*eV, 3.46573*eV, 3.55391*eV,
1145  3.64208*eV, 3.73026*eV, 3.81844*eV, 3.90661*eV, 3.99479*eV,
1146  4.08297*eV, 4.17114*eV, 4.25932*eV, 4.34750*eV, 4.43567*eV,
1147  4.52385*eV, 4.61203*eV, 4.70020*eV, 4.78838*eV, 4.87656*eV,
1148  4.96473*eV, 5.05291*eV, 5.14109*eV, 5.22927*eV, 5.31744*eV,
1149  5.40562*eV, 5.49380*eV, 5.58197*eV, 5.67015*eV, 5.75833*eV,
1150  5.84650*eV, 5.93468*eV, 6.02286*eV, 6.11103*eV, 6.19921*eV };
1151  G4double RichAerogel_Rind3[RichAerogel_Len]=
1152  { 1.02825, 1.02829, 1.02834, 1.02839, 1.02844,
1153  1.02849, 1.02854, 1.02860, 1.02866, 1.02872,
1154  1.02878, 1.02885, 1.02892, 1.02899, 1.02906,
1155  1.02914, 1.02921, 1.02929, 1.02938, 1.02946,
1156  1.02955, 1.02964, 1.02974, 1.02983, 1.02993,
1157  1.03003, 1.03014, 1.03025, 1.03036, 1.03047,
1158  1.03059, 1.03071, 1.03084, 1.03096, 1.03109,
1159  1.03123, 1.03137, 1.03151, 1.03166, 1.03181,
1160  1.03196, 1.03212, 1.03228, 1.03244, 1.03261,
1161  1.03279, 1.03297, 1.03315, 1.03334, 1.03354 };
1162  G4double RichAerogel_Abs[RichAerogel_Len]=
1163  { 17.5000*cm, 17.7466*cm, 17.9720*cm, 18.1789*cm, 18.3694*cm,
1164  18.5455*cm, 18.7086*cm, 18.8602*cm, 19.0015*cm, 19.1334*cm,
1165  19.2569*cm, 19.3728*cm, 19.4817*cm, 19.5843*cm, 19.6810*cm,
1166  19.7725*cm, 19.8590*cm, 19.9410*cm, 20.0188*cm, 20.0928*cm,
1167  18.4895*cm, 16.0174*cm, 13.9223*cm, 12.1401*cm, 10.6185*cm,
1168  9.3147*cm, 8.1940*cm, 7.2274*cm, 6.3913*cm, 5.6659*cm,
1169  5.0347*cm, 4.4841*cm, 4.0024*cm, 3.5801*cm, 3.2088*cm,
1170  2.8817*cm, 2.5928*cm, 2.3372*cm, 2.1105*cm, 1.9090*cm,
1171  1.7296*cm, 1.5696*cm, 1.4266*cm, 1.2986*cm, 1.1837*cm,
1172  1.0806*cm, 0.9877*cm, 0.9041*cm, 0.8286*cm, 0.7603*cm };
1173  G4double RichAerogel_Scat[RichAerogel_Len]=
1174  { 23.4256*cm, 19.4987*cm, 16.3612*cm, 13.8302*cm, 11.7702*cm,
1175  10.0798*cm, 8.6823*cm, 7.5188*cm, 6.5439*cm, 5.7219*cm,
1176  5.0251*cm, 4.4312*cm, 3.9225*cm, 3.4847*cm, 3.1064*cm,
1177  2.7780*cm, 2.4919*cm, 2.2417*cm, 2.0221*cm, 1.8288*cm,
1178  1.6580*cm, 1.5067*cm, 1.3723*cm, 1.2525*cm, 1.1455*cm,
1179  1.0497*cm, 0.9637*cm, 0.8864*cm, 0.8166*cm, 0.7536*cm,
1180  0.6965*cm, 0.6448*cm, 0.5977*cm, 0.5549*cm, 0.5159*cm,
1181  0.4802*cm, 0.4475*cm, 0.4176*cm, 0.3901*cm, 0.3649*cm,
1182  0.3417*cm, 0.3203*cm, 0.3005*cm, 0.2822*cm, 0.2653*cm,
1183  0.2497*cm, 0.2352*cm, 0.2217*cm, 0.2092*cm, 0.1975*cm };
1184 
1185  G4double RichAerogel_Rind5[RichAerogel_Len]; // shift rindex from 1.03 to 1.05
1186  for (int iii=0; iii<RichAerogel_Len; iii++)
1187  RichAerogel_Rind5[iii]=RichAerogel_Rind3[iii]+(1.05-1.03);
1188 
1189  G4MaterialPropertiesTable* RichAerogel3_MPT = new G4MaterialPropertiesTable();
1190  RichAerogel3_MPT->AddProperty("RINDEX", RichAerogel_PhoE, RichAerogel_Rind3, RichAerogel_Len);
1191  RichAerogel3_MPT->AddProperty("ABSLENGTH", RichAerogel_PhoE, RichAerogel_Abs, RichAerogel_Len);
1192  RichAerogel3_MPT->AddProperty("RAYLEIGH", RichAerogel_PhoE, RichAerogel_Scat, RichAerogel_Len);
1193  MMats["RichAerogel3"]->SetMaterialPropertiesTable(RichAerogel3_MPT);
1194 
1195  G4MaterialPropertiesTable* RichAerogel5_MPT = new G4MaterialPropertiesTable();
1196  RichAerogel5_MPT->AddProperty("RINDEX", RichAerogel_PhoE, RichAerogel_Rind5, RichAerogel_Len);
1197  RichAerogel5_MPT->AddProperty("ABSLENGTH", RichAerogel_PhoE, RichAerogel_Abs, RichAerogel_Len);
1198  RichAerogel5_MPT->AddProperty("RAYLEIGH", RichAerogel_PhoE, RichAerogel_Scat, RichAerogel_Len);
1199  MMats["RichAerogel5"]->SetMaterialPropertiesTable(RichAerogel5_MPT);
1200 
1201 
1202  G4double C6F14_Rind[nEntries_Rich] =
1203  { 1.21501, 1.21656, 1.21794, 1.21966,
1204  1.22138, 1.22344, 1.22550, 1.22774,
1205  1.23032, 1.23307, 1.23617, 1.23978,
1206  1.24374, 1.24804};
1207 
1208  G4double C6F14_Abs[nEntries_Rich] =
1209  { 2000.*mm, 2000.*mm, 2000.*mm, 2000.*mm,
1210  2000.*mm, 2000.*mm, 2000.*mm, 2000.*mm,
1211  2000.*mm, 2000.*mm, 2000.*mm, 2000.*mm,
1212  2000.*mm, 2000.*mm};
1213 
1214  G4MaterialPropertiesTable* C6F14_MPT = new G4MaterialPropertiesTable();
1215  C6F14_MPT->AddProperty("RINDEX", PhotonEnergy_Rich, C6F14_Rind, nEntries_Rich);
1216  C6F14_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Rich, C6F14_Abs, nEntries_Rich);
1217  MMats["C6F14"]->SetMaterialPropertiesTable(C6F14_MPT);
1218 
1219 
1220  G4double Quartz_Rind[nEntries_Rich] =
1221  { 1.505, 1.509, 1.511, 1.515,
1222  1.520, 1.525, 1.528, 1.527,
1223  1.522, 1.512, 1.505, 1.492,
1224  1.471, 1.503};
1225 
1226  G4double Quartz_Abs[nEntries_Rich] =
1227  { 550.7*mm, 530.7*mm, 590.1*mm, 490.7*mm,
1228  470.7*mm, 520.3*mm, 500.0*mm, 470.7*mm,
1229  450.5*mm, 270.5*mm, 190.1*mm, 60.9*mm,
1230  10.6*mm, 4.0*mm};
1231 
1232  G4MaterialPropertiesTable* Quartz_MPT = new G4MaterialPropertiesTable();
1233  Quartz_MPT->AddProperty("RINDEX", PhotonEnergy_Rich, Quartz_Rind, nEntries_Rich);
1234  Quartz_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Rich, Quartz_Abs, nEntries_Rich);
1235  MMats["Quartz"]->SetMaterialPropertiesTable(Quartz_MPT);
1236 
1237  G4double Methane_Rind[nEntries_Rich] =
1238  { 1., 1., 1., 1., 1., 1., 1.,
1239  1., 1., 1., 1., 1., 1., 1.};
1240 
1241  G4double Methane_Abs[nEntries_Rich] =
1242  {4000.*cm,4000.*cm,4000.*cm, 4000.*cm,
1243  4000.*cm,4000.*cm,4000.*cm, 4000.*cm,
1244  4000.*cm,4000.*cm};
1245 
1246 
1247  G4MaterialPropertiesTable* Methane_MPT = new G4MaterialPropertiesTable();
1248  Methane_MPT->AddProperty("RINDEX", PhotonEnergy_Rich, Methane_Rind, nEntries_Rich);
1249  Methane_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Rich, Methane_Abs, nEntries_Rich);
1250  MMats["Methane"]->SetMaterialPropertiesTable(Methane_MPT);
1251 
1252 
1253  G4double Alumi_Rind[nEntries_Rich] =
1254  { 1., 1., 1., 1., 1., 1., 1.,
1255  1., 1., 1., 1., 1., 1., 1.};
1256 
1257  G4double Alumi_Abs[nEntries_Rich] =
1258  {0., 0., 0., 0., 0., 0., 0.,
1259  0., 0., 0., 0., 0., 0., 0.};
1260 
1261  G4double Alumi_Effi[nEntries_Rich] =
1262  {0., 1., 1., 1., 1., 1., 1.,
1263  1., 1., 1., 1., 1., 1., 0.};
1264 
1265  G4double Alumi_Refl[nEntries_Rich] =
1266  {0., 0., 0., 0., 0., 0., 0.,
1267  0., 0., 0., 0., 0., 0., 0.};
1268 
1269  G4MaterialPropertiesTable* Alumi_MPT = new G4MaterialPropertiesTable();
1270  Alumi_MPT->AddProperty("RINDEX", PhotonEnergy_Rich, Alumi_Rind, nEntries_Rich);
1271  Alumi_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Rich, Alumi_Abs, nEntries_Rich);
1272  Alumi_MPT->AddProperty("EFFICIENCY", PhotonEnergy_Rich, Alumi_Effi, nEntries_Rich);
1273  Alumi_MPT->AddProperty("REFLECTIVITY", PhotonEnergy_Rich, Alumi_Refl, nEntries_Rich);
1274  MMats["Alumi"]->SetMaterialPropertiesTable(Alumi_MPT);
1275 
1276  G4double Glass_Rind[nEntries_Rich] =
1277  {1.49, 1.49, 1.49, 1.49,
1278  1.49, 1.49, 1.49, 1.49,
1279  1.49, 1.49, 1.49, 1.49,
1280  1.49, 1.49};
1281 
1282  G4double Glass_Abs[nEntries_Rich] =
1283  {4200.0*mm, 4200.0*mm, 4200.0*mm, 4200.0*mm,
1284  4200.0*mm, 4200.0*mm, 4200.0*mm, 4200.0*mm,
1285  4200.0*mm, 4200.0*mm, 4200.0*mm, 4200.0*mm,
1286  4200.0*mm, 4200.0*mm};
1287 
1288 
1289  G4MaterialPropertiesTable* Glass_MPT = new G4MaterialPropertiesTable();
1290  Glass_MPT->AddProperty("RINDEX", PhotonEnergy_Rich, Glass_Rind, nEntries_Rich);
1291  Glass_MPT->AddProperty("ABSLENGTH", PhotonEnergy_Rich, Glass_Abs, nEntries_Rich);
1292  MMats["Glass"]->SetMaterialPropertiesTable(Glass_MPT);
1293 
1294 
1295  return MMats;
1296 }
Definition: usage.h:43
map< string, G4Material * > initMaterials(run_conditions, gemc_opts)