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