96 G4double fractionmass;
97 std::vector<G4int> natoms;
98 std::vector<G4double> fractionMass;
99 std::vector<G4String> elements;
108 fNistMan->FindOrBuildMaterial(
"G4_Galactic");
120 elements.push_back(
"C");
122 elements.push_back(
"H");
124 elements.push_back(
"O");
127 density = 1.190 * g / cm3;
129 fPMMA =
fNistMan->ConstructNewMaterial(
"PMMA", elements, natoms, density);
138 elements.push_back(
"C");
140 elements.push_back(
"H");
143 density = 1.200 * g / cm3;
146 fNistMan->ConstructNewMaterial(
"Pethylene", elements, natoms, density);
155 elements.push_back(
"C");
157 elements.push_back(
"H");
160 density = 1.400 * g / cm3;
163 fNistMan->ConstructNewMaterial(
"FPethylene", elements, natoms, density);
172 elements.push_back(
"C");
174 elements.push_back(
"H");
177 density = 1.050 * g / cm3;
180 fNistMan->ConstructNewMaterial(
"Polystyrene", elements, natoms, density);
189 elements.push_back(
"C");
191 elements.push_back(
"H");
194 density = 1.060 * g / cm3;
197 fNistMan->ConstructNewMaterial(
"Silicone", elements, natoms, density);
206 fNistMan->FindOrBuildMaterial(
"G4_Al");
212 elements.push_back(
"Ti");
214 elements.push_back(
"O");
217 density = 4.26 * g / cm3;
220 fNistMan->ConstructNewMaterial(
"TiO2", elements, natoms, density);
229 density = 1.52 * g / cm3;
233 fCoating->AddMaterial(TiO2, fractionmass = 15 * perCent);
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,
251 std::vector<G4double> energySmall = { 2.0 * eV, 3.47 * eV };
257 std::vector<G4double> refractiveIndex = { 1.0, 1.0 };
260 mpt->AddProperty(
"RINDEX", energySmall, refractiveIndex);
262 fAir->SetMaterialPropertiesTable(mpt);
268 std::vector<G4double> refractiveIndexWLSfiber = { 1.60, 1.60 };
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,
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
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);
296 fPMMA->SetMaterialPropertiesTable(mptWLSfiber);
302 std::vector<G4double> refractiveIndexClad1 = { 1.49, 1.49 };
304 std::vector<G4double> absClad = { 20.0 * m, 20.0 * m };
308 mptClad1->AddProperty(
"RINDEX", energySmall, refractiveIndexClad1);
309 mptClad1->AddProperty(
"ABSLENGTH", energySmall, absClad);
311 fPethylene->SetMaterialPropertiesTable(mptClad1);
317 std::vector<G4double> refractiveIndexClad2 = { 1.42, 1.42 };
321 mptClad2->AddProperty(
"RINDEX", energySmall, refractiveIndexClad2);
322 mptClad2->AddProperty(
"ABSLENGTH", energySmall, absClad);
330 std::vector<G4double> refractiveIndexSilicone = { 1.46, 1.46 };
334 mptSilicone->AddProperty(
"RINDEX", energySmall, refractiveIndexSilicone);
335 mptSilicone->AddProperty(
"ABSLENGTH", energySmall, absClad);
337 fSilicone->SetMaterialPropertiesTable(mptSilicone);
343 std::vector<G4double> refractiveIndexPS = { 1.50, 1.50 };
345 std::vector<G4double> absPS = { 2. * cm, 2. * cm };
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
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);
363 fPolystyrene->SetMaterialPropertiesTable(mptPolystyrene);
366 fPolystyrene->GetIonisation()->SetBirksConstant(0.126 * mm / MeV);