93{
94 G4double density;
95 G4int ncomponents;
96 G4double fractionmass;
97 std::vector<G4int> natoms;
98 std::vector<G4double> fractionMass;
99 std::vector<G4String> elements;
100
101
102
103
104
105
106
107
108 fNistMan->FindOrBuildMaterial(
"G4_Galactic");
109
110
111
112
113
115
116
117
118
119
120 elements.push_back("C");
121 natoms.push_back(5);
122 elements.push_back("H");
123 natoms.push_back(8);
124 elements.push_back("O");
125 natoms.push_back(2);
126
127 density = 1.190 * g / cm3;
128
129 fPMMA =
fNistMan->ConstructNewMaterial(
"PMMA", elements, natoms, density);
130
131 elements.clear();
132 natoms.clear();
133
134
135
136
137
138 elements.push_back("C");
139 natoms.push_back(2);
140 elements.push_back("H");
141 natoms.push_back(4);
142
143 density = 1.200 * g / cm3;
144
146 fNistMan->ConstructNewMaterial(
"Pethylene", elements, natoms, density);
147
148 elements.clear();
149 natoms.clear();
150
151
152
153
154
155 elements.push_back("C");
156 natoms.push_back(2);
157 elements.push_back("H");
158 natoms.push_back(4);
159
160 density = 1.400 * g / cm3;
161
163 fNistMan->ConstructNewMaterial(
"FPethylene", elements, natoms, density);
164
165 elements.clear();
166 natoms.clear();
167
168
169
170
171
172 elements.push_back("C");
173 natoms.push_back(8);
174 elements.push_back("H");
175 natoms.push_back(8);
176
177 density = 1.050 * g / cm3;
178
180 fNistMan->ConstructNewMaterial(
"Polystyrene", elements, natoms, density);
181
182 elements.clear();
183 natoms.clear();
184
185
186
187
188
189 elements.push_back("C");
190 natoms.push_back(2);
191 elements.push_back("H");
192 natoms.push_back(6);
193
194 density = 1.060 * g / cm3;
195
197 fNistMan->ConstructNewMaterial(
"Silicone", elements, natoms, density);
198
199 elements.clear();
200 natoms.clear();
201
202
203
204
205
206 fNistMan->FindOrBuildMaterial(
"G4_Al");
207
208
209
210
211
212 elements.push_back("Ti");
213 natoms.push_back(1);
214 elements.push_back("O");
215 natoms.push_back(2);
216
217 density = 4.26 * g / cm3;
218
220 fNistMan->ConstructNewMaterial(
"TiO2", elements, natoms, density);
221
222 elements.clear();
223 natoms.clear();
224
225
226
227
228
229 density = 1.52 * g / cm3;
230
232
233 fCoating->AddMaterial(TiO2, fractionmass = 15 * perCent);
235
236
237
238
239
240 std::vector<G4double> energy = {
241 2.00 * eV, 2.03 * eV, 2.06 * eV, 2.09 * eV, 2.12 * eV, 2.15 * eV, 2.18 * eV,
242 2.21 * eV, 2.24 * eV, 2.27 * eV, 2.30 * eV, 2.33 * eV, 2.36 * eV, 2.39 * eV,
243 2.42 * eV, 2.45 * eV, 2.48 * eV, 2.51 * eV, 2.54 * eV, 2.57 * eV, 2.60 * eV,
244 2.63 * eV, 2.66 * eV, 2.69 * eV, 2.72 * eV, 2.75 * eV, 2.78 * eV, 2.81 * eV,
245 2.84 * eV, 2.87 * eV, 2.90 * eV, 2.93 * eV, 2.96 * eV, 2.99 * eV, 3.02 * eV,
246 3.05 * eV, 3.08 * eV, 3.11 * eV, 3.14 * eV, 3.17 * eV, 3.20 * eV, 3.23 * eV,
247 3.26 * eV, 3.29 * eV, 3.32 * eV, 3.35 * eV, 3.38 * eV, 3.41 * eV, 3.44 * eV,
248 3.47 * eV
249 };
250
251 std::vector<G4double> energySmall = { 2.0 * eV, 3.47 * eV };
252
253
254
255
256
257 std::vector<G4double> refractiveIndex = { 1.0, 1.0 };
258
260 mpt->AddProperty("RINDEX", energySmall, refractiveIndex);
261
262 fAir->SetMaterialPropertiesTable(mpt);
263
264
265
266
267
268 std::vector<G4double> refractiveIndexWLSfiber = { 1.60, 1.60 };
269
270 std::vector<G4double> absWLSfiber = {
271 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
272 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
273 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
274 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m, 5.40 * m,
275 5.40 * m, 1.10 * m, 1.10 * m, 1.10 * m, 1.10 * m, 1.10 * m, 1.10 * m,
276 1.10 * m, 1. * mm, 1. * mm, 1. * mm, 1. * mm, 1. * mm, 1. * mm,
277 1. * mm, 1. * mm, 1. * mm, 1. * mm, 1. * mm, 1. * mm, 1. * mm,
278 1. * mm
279 };
280
281 std::vector<G4double> emissionFib = {
282 0.05, 0.10, 0.30, 0.50, 0.75, 1.00, 1.50, 1.85, 2.30, 2.75,
283 3.25, 3.80, 4.50, 5.20, 6.00, 7.00, 8.50, 9.50, 11.1, 12.4,
284 12.9, 13.0, 12.8, 12.3, 11.1, 11.0, 12.0, 11.0, 17.0, 16.9,
285 15.0, 9.00, 2.50, 1.00, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00,
286 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00
287 };
288
289
291 mptWLSfiber->AddProperty("RINDEX", energySmall, refractiveIndexWLSfiber);
292 mptWLSfiber->AddProperty("WLSABSLENGTH", energy, absWLSfiber);
293 mptWLSfiber->AddProperty("WLSCOMPONENT", energy, emissionFib);
294 mptWLSfiber->AddConstProperty("WLSTIMECONSTANT", 0.5 * ns);
295
296 fPMMA->SetMaterialPropertiesTable(mptWLSfiber);
297
298
299
300
301
302 std::vector<G4double> refractiveIndexClad1 = { 1.49, 1.49 };
303
304 std::vector<G4double> absClad = { 20.0 * m, 20.0 * m };
305
306
308 mptClad1->AddProperty("RINDEX", energySmall, refractiveIndexClad1);
309 mptClad1->AddProperty("ABSLENGTH", energySmall, absClad);
310
311 fPethylene->SetMaterialPropertiesTable(mptClad1);
312
313
314
315
316
317 std::vector<G4double> refractiveIndexClad2 = { 1.42, 1.42 };
318
319
321 mptClad2->AddProperty("RINDEX", energySmall, refractiveIndexClad2);
322 mptClad2->AddProperty("ABSLENGTH", energySmall, absClad);
323
325
326
327
328
329
330 std::vector<G4double> refractiveIndexSilicone = { 1.46, 1.46 };
331
332
334 mptSilicone->AddProperty("RINDEX", energySmall, refractiveIndexSilicone);
335 mptSilicone->AddProperty("ABSLENGTH", energySmall, absClad);
336
337 fSilicone->SetMaterialPropertiesTable(mptSilicone);
338
339
340
341
342
343 std::vector<G4double> refractiveIndexPS = { 1.50, 1.50 };
344
345 std::vector<G4double> absPS = { 2. * cm, 2. * cm };
346
347 std::vector<G4double> scintilFast = {
348 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
349 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
350 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
351 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0
352 };
353
354
356 mptPolystyrene->AddProperty("RINDEX", energySmall, refractiveIndexPS);
357 mptPolystyrene->AddProperty("ABSLENGTH", energySmall, absPS);
358 mptPolystyrene->AddProperty("SCINTILLATIONCOMPONENT1", energy, scintilFast);
359 mptPolystyrene->AddConstProperty("SCINTILLATIONYIELD", 10. / keV);
360 mptPolystyrene->AddConstProperty("RESOLUTIONSCALE", 1.0);
361 mptPolystyrene->AddConstProperty("SCINTILLATIONTIMECONSTANT1", 10. * ns);
362
363 fPolystyrene->SetMaterialPropertiesTable(mptPolystyrene);
364
365
366 fPolystyrene->GetIonisation()->SetBirksConstant(0.126 * mm / MeV);
367}