72#if G4VERSION_NUMBER < 1011
73 G4double NTP_Temperature = 293.15;
96 std::list<int> singleElement = {1};
97 AddMaterial(
"graphite", 2.265, kStateSolid, NTP_Temperature, 1, {
"C"}, singleElement);
98 AddMaterial(
"graphitefoam", 0.61, kStateSolid, NTP_Temperature, 1, {
"C"}, singleElement);
99 AddMaterial(
"solidhydrogen",8.96, kStateSolid, NTP_Temperature, 1, {
"H"}, singleElement);
100 AddMaterial(
"solidnitrogen",8.96, kStateSolid, NTP_Temperature, 1, {
"N"}, singleElement);
101 AddMaterial(
"solidoxygen", 8.96, kStateSolid, NTP_Temperature, 1, {
"O"}, singleElement);
102 AddMaterial(
"weightiron", 7.87, kStateSolid, NTP_Temperature, 1, {
"Fe"}, singleElement);
107 kStateSolid, NTP_Temperature, 1,
109 std::list<int>{1, 1, 4});
115 std::list<double>{0.338, 0.662});
122 std::list<double>{0.025, 0.03, 0.945});
128 {
"C",
"Mn",
"P",
"S",
"Fe"},
129 std::list<double>{0.0017, 0.0045, 0.0004, 0.0005, 0.9929});
135 {
"Cu",
"Be",
"Co",
"Al",
"Fe",
"Ni"},
136 std::list<double>{0.991, 0.0031, 0.00500, 0.0004, 0.0003, 0.0002});
142 {
"C",
"Mn",
"Si",
"P",
"S",
"Cr",
"Mo",
"Ni",
"N",
"Fe"},
143 std::list<double>{0.0003, 0.02, 0.0075, 0.00045, 0.0003, 0.17, 0.025, 0.12, 0.001, 0.65545});
149 {
"Fe",
"Cr",
"Ni",
"Mn",
"Si",
"P",
"S",
"C"},
150 std::list<double>{0.67145, 0.185, 0.1125, 0.02, 0.01, 0.00045, 0.0003, 0.0003});
156 {
"Fe",
"Cr",
"Ni",
"Mn",
"Si",
"P",
"S",
"C"},
157 std::list<double>{0.67145, 0.185, 0.1125, 0.02, 0.01, 0.00045, 0.0003, 0.0003});
163 {
"Fe",
"Cr",
"Ni",
"Mn",
"Si",
"P",
"S",
"C"},
164 std::list<double>{0.67145, 0.185, 0.1125, 0.02, 0.01, 0.00045, 0.0003, 0.0003});
171 {
"Fe",
"Cr",
"Ni",
"Mo",
"Mn",
"Si",
"Ti",
"N",
"Nb",
172 "Cu",
"Co",
"P",
"C",
"S",
"Ta",
"B"},
173 std::list<double>{0.65093, 0.1700, 0.12000, 0.02500, 0.0200, 0.00750,
174 0.00150, 0.0014, 0.00100, 0.00100, 0.0005, 0.00045,
175 0.00030, 0.0003, 0.00010, 0.00002});
182 {
"Fe",
"Cr",
"Ni",
"Mo",
"Mn",
"Si",
"Ti",
"N",
183 "Nb",
"Cu",
"Co",
"P",
"C",
"S",
"Ta",
"B"},
184 std::list<double>{0.65093, 0.1700, 0.12000, 0.02500, 0.0200,
185 0.00750, 0.00150, 0.0014, 0.00100, 0.00100,
186 0.0005, 0.00045, 0.00030, 0.0003, 0.00010,
194 {
"Fe",
"Cr",
"Ni",
"Mo",
"Mn",
"Si",
"Ti",
"N",
195 "Nb",
"Cu",
"Co",
"P",
"C",
"S",
"Ta",
"B"},
196 std::list<double>{0.65093, 0.1700, 0.12000, 0.02500, 0.0200,
197 0.00750, 0.00150, 0.0014, 0.00100, 0.00100,
198 0.0005, 0.00045, 0.00030, 0.0003, 0.00010,
203 AddMaterial(
"mild_steel", 8.000, kStateSolid, 295, 1,
204 {
"C",
"Mn",
"Si",
"Fe"},
205 std::list<double>{0.002, 0.005, 0.0015, 0.99150});
214 std::list<double>{0.97, 0.02, 0.01});
221 std::list<double>{0.90, 0.05, 0.05});
228 std::list<double>{0.925, 0.0375, 0.0375});
235 std::list<double>{0.95, 0.025, 0.025});
253 {
"B",
"Ni",
"O",
"Ca",
"Si"},
254 std::list<double>{0.383249242, 0.472071387, 0.0366276887, 0.0228923054, 0.0851593762});
261 std::list<int>{1,3,1});
268 std::list<int>{1,9,2,4});
272 kStateSolid, 300, 1, {
"Si",
"O",
"H",
"Ca",
"Al",
"Fe"},
273 std::list<double>{0.227915, 0.60541, 0.09972, 0.04986, 0.014245, 0.00285});
277 G4Material* tmpMaterial =
new G4Material(
"fusedsilica",
278 1.032*CLHEP::g/CLHEP::cm3,
283 const G4int FusedSilica_NUMENTRIES = 3;
284 G4double FusedSilica_RIND[FusedSilica_NUMENTRIES]={1.49,1.49,1.49};
285 G4double FusedSilica_AbsLength[FusedSilica_NUMENTRIES]={420.*CLHEP::cm,420.*CLHEP::cm,420.*CLHEP::cm};
286 G4double FusedSilica_Energy[FusedSilica_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
288 fsMaterialPropertiesTable->AddProperty(
"ABSLENGTH",FusedSilica_Energy,FusedSilica_AbsLength,FusedSilica_NUMENTRIES);
289 fsMaterialPropertiesTable->AddProperty(
"RINDEX",FusedSilica_Energy,FusedSilica_RIND,FusedSilica_NUMENTRIES);
290 tmpMaterial->SetMaterialPropertiesTable(fsMaterialPropertiesTable);
300 std::list<double>{0.59984,0.31961,0.08055});
307 std::list<double>{0.35,0.65});
314 std::list<double>{0.026362,0.691133,0.073270,0.209235});
317 tmpMaterial =
new G4Material(
"n-bk7", 1.032*CLHEP::g/CLHEP::cm3, 2, kStateSolid);
320 const G4int N_Bk7_NUMENTRIES = 3;
321 G4double N_Bk7_RIND[N_Bk7_NUMENTRIES]={1.51680,1.51680,1.51680};
322 G4double N_Bk7_AbsLength[N_Bk7_NUMENTRIES]={420.*CLHEP::cm,420.*CLHEP::cm,420.*CLHEP::cm};
323 G4double N_Bk7_Energy[N_Bk7_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
325 nbk7MaterialPropertiesTable->AddProperty(
"ABSLENGTH",N_Bk7_Energy,N_Bk7_AbsLength,N_Bk7_NUMENTRIES);
326 nbk7MaterialPropertiesTable->AddProperty(
"RINDEX",N_Bk7_Energy,N_Bk7_RIND,N_Bk7_NUMENTRIES);
327 tmpMaterial->SetMaterialPropertiesTable(nbk7MaterialPropertiesTable);
331 AddMaterial(
"quartz", 2.655, kStateSolid, 300, 1, {
"Si",
"O"}, std::list<int>{1,2});
337 {
"clay",
"calciumCarbonate"},
338 std::list<double>{0.5,0.5});
344 {
"clay",
"calciumCarbonate"},
345 std::list<double>{0.65,0.35});
351 {
"clay",
"calciumCarbonate"},
352 std::list<double>{0.35,0.65});
359 std::list<double>{0.33377483443708611, 0.57218543046357617, 0.022516556291390728, 0.071523178807947022});
363 AddMaterial(
"aralditef", 1.175, kStateSolid, 300, 1, {
"C",
"H",
"O"},std::list<int>{12,18,4});
366 AddMaterial(
"hy906", 1.225, kStateSolid, 300, 1, {
"C",
"H",
"O"},std::list<int>{10,5,3});
369 AddMaterial(
"dy061", 1.025, kStateSolid, 300, 1, {
"C",
"H",
"O",
"N"},std::list<int>{15,25,1,3});
376 {
"aralditef",
"hy906",
"dy061"},
377 std::list<double>{0.497512,0.497512,0.004976});
380 tmpMaterial = G4NistManager::Instance()->FindOrBuildMaterial(
"G4_CELLULOSE_CELLOPHANE",
true,
true);
381 const G4int Cellulose_NUMENTRIES = 3;
382 G4double Cellulose_RIND[Cellulose_NUMENTRIES] = {1.532,1.532,1.532};
383 G4double Cellulose_Energy[Cellulose_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
385 celluloseMaterialPropertiesTable->AddProperty(
"RINDEX",Cellulose_Energy, Cellulose_RIND, Cellulose_NUMENTRIES);
386 tmpMaterial->SetMaterialPropertiesTable(celluloseMaterialPropertiesTable);
392 kStateSolid, NTP_Temperature, 1,
394 std::list<int>{6,10,2,4});
402 std::list<int>{2,4});
408 G4Material* tmpMaterial =
new G4Material(
"yag", 4.56*CLHEP::g/CLHEP::cm3, 3);
411 tmpMaterial->AddElement(
GetElement(
"O") , 12);
412 G4double birks = 0.08*CLHEP::mm/CLHEP::MeV;
413 tmpMaterial->GetIonisation()->SetBirksConstant(birks);
416 const G4int nEntries = 9;
417 G4double PhotonEnergyYAG[nEntries];
418 G4double dNEntries2=(G4double)nEntries;
419 G4double energyMin=1.91*CLHEP::eV;
420 G4double energyMax=2.76*CLHEP::eV;
421 G4double deltaEnergy=(energyMax-energyMin)/(dNEntries2-1.0);
422 G4double energy=energyMin;
423 for (G4int i=0; i<nEntries; energy += deltaEnergy, i++)
424 {PhotonEnergyYAG[i]=energy;}
426 G4double RefractiveIndexYAG[nEntries] =
427 { 1.82, 1.82, 1.82, 1.82, 1.82, 1.82, 1.82,
430 mpt_YAG->AddProperty(
"RINDEX",PhotonEnergyYAG, RefractiveIndexYAG, nEntries);
431#if G4VERSION_NUMBER < 1079
432 G4double scintFastYAG[nEntries] =
433 { 0, 0.25, 2.0, 14.0, 13.0, 7.0, 4.0, 2.0, 0.0 };
435 mpt_YAG->AddProperty(
"FASTCOMPONENT",PhotonEnergyYAG, scintFastYAG, nEntries)->SetSpline(
true);
436 mpt_YAG->AddConstProperty(
"FASTTIMECONSTANT",70.*CLHEP::ns);
437 mpt_YAG->AddConstProperty(
"YIELDRATIO",1.0);
439 mpt_YAG->AddConstProperty(
"SCINTILLATIONYIELD",8000./CLHEP::MeV);
440 mpt_YAG->AddConstProperty(
"RESOLUTIONSCALE",2.0);
441 tmpMaterial->SetMaterialPropertiesTable(mpt_YAG);
446 G4NistManager* nistManager = G4NistManager::Instance();
447 G4Material* polystyrene = nistManager->FindOrBuildMaterial(
"G4_POLYSTYRENE",
true,
true);
448 tmpMaterial =
new G4Material(
"ups923a",polystyrene->GetDensity(),1);
449 tmpMaterial->AddMaterial(polystyrene,1);
450 tmpMaterial->SetName(
"ups923a");
451 std::vector<G4double> ups923a_PhotonEnergy = {
452 3.35, 3.31, 3.28, 3.26, 3.25, 3.23, 3.23,
453 3.22, 3.21, 3.19, 3.18, 3.17, 3.16, 3.15,
454 3.14, 3.14, 3.13, 3.11, 3.1, 3.09, 3.09,
455 3.08, 3.07, 3.04, 3.02, 3.02, 3.01, 2.99,
456 2.98, 2.97, 2.97, 2.95, 2.95, 2.93, 2.93,
457 2.92, 2.92, 2.91, 2.89, 2.88, 2.87, 2.86,
458 2.85, 2.83, 2.81, 2.8, 2.79, 2.78, 2.76,
459 2.74, 2.72, 2.71, 2.68, 2.66, 2.64, 2.62,
460 2.61, 2.58, 2.55, 2.53, 2.5, 2.48, 2.46,
461 2.44, 2.41, 2.38, 2.35 };
462 std::reverse(ups923a_PhotonEnergy.begin(), ups923a_PhotonEnergy.end());
466 std::vector<G4double> ups923a_RINDEX(ups923a_PhotonEnergy.size(), 1.52);
467 std::vector<G4double> ups923a_ABSLENGTH(ups923a_PhotonEnergy.size(), 1*CLHEP::m);
470#if G4VERSION_NUMBER < 1070
471 ups923a_mt->AddProperty(
"RINDEX", ups923a_PhotonEnergy.data(), ups923a_RINDEX.data(), (
int)ups923a_PhotonEnergy.size());
472 ups923a_mt->AddProperty(
"ABSLENGTH", ups923a_PhotonEnergy.data(), ups923a_ABSLENGTH.data(), (
int)ups923a_PhotonEnergy.size());
474 ups923a_mt->AddProperty(
"RINDEX", ups923a_PhotonEnergy, ups923a_RINDEX);
475 ups923a_mt->AddProperty(
"ABSLENGTH", ups923a_PhotonEnergy, ups923a_ABSLENGTH);
478 birks = (0.014/1.06)*CLHEP::cm/CLHEP::MeV;
479 tmpMaterial->GetIonisation()->SetBirksConstant(birks);
480#if G4VERSION_NUMBER < 1079
481 const G4int ups923a_numentries = 67;
482 G4double ups923a_emission[ups923a_numentries] = {
483 0, 0.04, 0.11, 0.2, 0.3, 0.4, 0.52,
484 0.62, 0.67, 0.68, 0.67, 0.62, 0.53, 0.48,
485 0.44, 0.42, 0.4, 0.41, 0.42, 0.51, 0.46,
486 0.57, 0.67, 0.78, 0.91, 0.93, 0.95, 0.96,
487 0.94, 0.91, 0.85, 0.76, 0.67, 0.61, 0.57,
488 0.55, 0.52, 0.51, 0.52, 0.54, 0.57, 0.58,
489 0.6, 0.6, 0.59, 0.58, 0.55, 0.48, 0.42,
490 0.37, 0.33, 0.31, 0.29, 0.28, 0.26, 0.24,
491 0.2, 0.17, 0.12, 0.09, 0.08, 0.07,
492 0.06, 0.04, 0.02, 0.01, 0.01 };
493 ups923a_mt->AddConstProperty(
"FASTTIMECONSTANT",3.3*CLHEP::ns);
494 ups923a_mt->AddProperty(
"FASTCOMPONENT",ups923a_PhotonEnergy.data(), ups923a_emission, ups923a_numentries)->SetSpline(
true);
495 ups923a_mt->AddConstProperty(
"YIELDRATIO",1.0);
497 ups923a_mt->AddConstProperty(
"RESOLUTIONSCALE",2.0);
498 G4double scintYieldAnthracene=14200;
499 G4double scintYieldUPS923A=scintYieldAnthracene*0.60;
500 ups923a_mt->AddConstProperty(
"SCINTILLATIONYIELD",scintYieldUPS923A/CLHEP::MeV);
502 tmpMaterial->SetMaterialPropertiesTable(ups923a_mt);
506 G4double pet_density=1.4*CLHEP::g/CLHEP::cm3;
507 G4int pet_nelements=3;
508 G4State pet_state=kStateSolid;
509 tmpMaterial=
new G4Material(
"pet",
513 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"C",
true),10);
514 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"H",
true),8);
515 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"O",
true),4);
516 const G4int Pet_NUMENTRIES = 3;
517 G4double Pet_RIND[Pet_NUMENTRIES] = {1.570,1.570,1.570};
518 G4double Pet_Energy[Pet_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
520 petMaterialPropertiesTable->AddProperty(
"RINDEX",Pet_Energy, Pet_RIND, Pet_NUMENTRIES);
521 tmpMaterial->SetMaterialPropertiesTable(petMaterialPropertiesTable);
525 tmpMaterial=
new G4Material(
"pet_opaque",
529 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"C",
true),10);
530 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"H",
true),8);
531 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"O",
true),4);
532 const G4int Pet_Opaque_NUMENTRIES = 3;
533 G4double Pet_Opaque_RIND[Pet_Opaque_NUMENTRIES] = {1.570,1.570,1.570};
534 G4double Pet_Opaque_Energy[Pet_Opaque_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
535 G4double Pet_Opaque_abslen[]={1*CLHEP::um, 1*CLHEP::um, 1*CLHEP::um};
537 pet_opaqueMaterialPropertiesTable->AddProperty(
"RINDEX",Pet_Opaque_Energy, Pet_Opaque_RIND, Pet_Opaque_NUMENTRIES);
538 pet_opaqueMaterialPropertiesTable->AddProperty(
"ABSLENGTH",Pet_Opaque_Energy, Pet_Opaque_abslen, Pet_Opaque_NUMENTRIES);
539 tmpMaterial->SetMaterialPropertiesTable(pet_opaqueMaterialPropertiesTable);
543 G4Material* GOS = nistManager->FindOrBuildMaterial(
"G4_GADOLINIUM_OXYSULFIDE",
true,
true);
546 G4double fill_factor=0.5;
547 G4double lanex_density=fill_factor*GOS->GetDensity()+(1-fill_factor)*
GetMaterial(
"polyurethane")->GetDensity();
548 G4double gos_fraction_by_mass=fill_factor*GOS->GetDensity()/lanex_density;
549 G4double pur_fraction_by_mass=1-gos_fraction_by_mass;
551 tmpMaterial =
new G4Material(
"lanex", lanex_density, 2);
552 tmpMaterial->AddMaterial(GOS, gos_fraction_by_mass);
553 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), pur_fraction_by_mass);
556 const G4int nentLanex=2;
557 G4double rindex=1.50;
558 G4double energytab[]={2.239*CLHEP::eV, 2.241*CLHEP::eV};
559 G4double rindextab[]={rindex, rindex};
560 G4double abslen[]={7*CLHEP::mm, 7*CLHEP::mm};
561 mptLanex->AddProperty(
"RINDEX",energytab, rindextab, nentLanex);
562 mptLanex->AddProperty(
"ABSLENGTH", energytab, abslen, nentLanex);
563#if G4VERSION_NUMBER < 1079
564 mptLanex->AddConstProperty(
"MIEHG", 60.3e-3*CLHEP::mm);
565 G4double emitspec[]={1.0, 1.0};
566 mptLanex->AddProperty(
"FASTCOMPONENT",energytab, emitspec, nentLanex);
567 mptLanex->AddConstProperty(
"FASTTIMECONSTANT", 1.*CLHEP::ns);
569 G4double scintScalingFactor=1;
570 mptLanex->AddConstProperty(
"SCINTILLATIONYIELD",7.8e4/CLHEP::MeV);
571 mptLanex->AddConstProperty(
"RESOLUTIONSCALE",1.0);
572 mptLanex->AddConstProperty(
"MIEHG_FORWARD", 0.91);
573 mptLanex->AddConstProperty(
"MIEHG_BACKWARD", 0.91);
574 mptLanex->AddConstProperty(
"MIEHG_FORWARD_RATIO", 1.0);
575 tmpMaterial->SetMaterialPropertiesTable(mptLanex);
579 tmpMaterial =
new G4Material(
"lanex2", lanex_density, 2);
580 tmpMaterial->AddMaterial(GOS, gos_fraction_by_mass);
581 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), pur_fraction_by_mass);
583 mptLanex2->AddProperty(
"RINDEX",energytab, rindextab, nentLanex);
584 mptLanex2->AddProperty(
"ABSLENGTH", energytab, abslen, nentLanex);
585#if G4VERSION_NUMBER < 1079
586 mptLanex2->AddConstProperty(
"MIEHG", 60.3e-3*CLHEP::mm);
587 mptLanex2->AddProperty(
"FASTCOMPONENT",energytab, emitspec, nentLanex);
588 mptLanex2->AddConstProperty(
"FASTTIMECONSTANT", 1.*CLHEP::ns);
590 mptLanex2->AddConstProperty(
"SCINTILLATIONYIELD",8.9e4/CLHEP::MeV);
591 mptLanex2->AddConstProperty(
"RESOLUTIONSCALE",1.0);
592 mptLanex2->AddConstProperty(
"MIEHG_FORWARD", 0.91);
593 mptLanex2->AddConstProperty(
"MIEHG_BACKWARD", 0.91);
594 mptLanex2->AddConstProperty(
"MIEHG_FORWARD_RATIO", 0.5);
595 tmpMaterial->SetMaterialPropertiesTable(mptLanex);
599 G4double gos_lanex_density=GOS->GetDensity();
600 tmpMaterial =
new G4Material(
"gos_lanex", gos_lanex_density, 1);
601 tmpMaterial->AddMaterial(GOS, 1.0);
603 const G4int nentGOSLanex=2;
604 G4double rindexGOSLanex=1.50;
605 G4double energyGOSLanexTab[]={2.239*CLHEP::eV, 2.241*CLHEP::eV};
606 G4double rindexGOSLanexTab[]={rindexGOSLanex, rindexGOSLanex};
607 G4double abslenGOSLanex[]={7*CLHEP::mm, 7*CLHEP::mm};
608 G4double gosLanexMiehgForward=0.911;
609 G4double gosLanexMiehgBackward=0.911;
610 G4double gosLanexMiehgForwardRatio=0.5;
611#if G4VERSION_NUMBER < 1079
612 G4double mieHgTimeConst=1.0*CLHEP::ns;
613 G4double emitspecGOSLanex[]={1.0, 1.0};
614 G4double mieScatteringLengthGOSLanex=60.3*CLHEP::um;
615 mptGOSLanex->AddProperty(
"FASTCOMPONENT",energyGOSLanexTab, emitspecGOSLanex, nentGOSLanex);
616 mptGOSLanex->AddConstProperty(
"FASTTIMECONSTANT", mieHgTimeConst);
617 mptGOSLanex->AddConstProperty(
"YIELDRATIO", 1.0);
618 mptGOSLanex->AddConstProperty(
"MIEHG", mieScatteringLengthGOSLanex);
620 mptGOSLanex->AddConstProperty(
"SCINTILLATIONYIELD",8.9e4/CLHEP::MeV);
621 mptGOSLanex->AddConstProperty(
"RESOLUTIONSCALE", 1.0);
622 mptGOSLanex->AddConstProperty(
"MIEHG_FORWARD", gosLanexMiehgForward);
623 mptGOSLanex->AddConstProperty(
"MIEHG_BACKWARD", gosLanexMiehgBackward);
624 mptGOSLanex->AddConstProperty(
"MIEHG_FORWARD_RATIO", gosLanexMiehgForwardRatio);
625 mptGOSLanex->AddProperty(
"RINDEX",energyGOSLanexTab, rindexGOSLanexTab, nentGOSLanex);
626 mptGOSLanex->AddProperty(
"ABSLENGTH", energyGOSLanexTab, abslenGOSLanex, nentGOSLanex);
627 tmpMaterial->SetMaterialPropertiesTable(mptGOSLanex);
631 tmpMaterial =
new G4Material(
"gos_ri1", gos_lanex_density, 1);
632 tmpMaterial->AddMaterial(GOS, 1.0);
634 G4double rindexGOSLanexRi1Tab[]={1.0, 1.0};
635#if G4VERSION_NUMBER < 1079
636 mptGOSLanexRi1->AddProperty(
"FASTCOMPONENT",energyGOSLanexTab, emitspecGOSLanex, nentGOSLanex);
637 mptGOSLanexRi1->AddConstProperty(
"FASTTIMECONSTANT", mieHgTimeConst);
638 mptGOSLanexRi1->AddConstProperty(
"YIELDRATIO", 1.0);
639 mptGOSLanexRi1->AddConstProperty(
"MIEHG", mieScatteringLengthGOSLanex);
641 mptGOSLanexRi1->AddConstProperty(
"SCINTILLATIONYIELD",8.9e4/CLHEP::MeV);
642 mptGOSLanexRi1->AddConstProperty(
"RESOLUTIONSCALE", 1.0);
643 mptGOSLanexRi1->AddConstProperty(
"MIEHG_FORWARD", gosLanexMiehgForward);
644 mptGOSLanexRi1->AddConstProperty(
"MIEHG_BACKWARD", gosLanexMiehgBackward);
645 mptGOSLanexRi1->AddConstProperty(
"MIEHG_FORWARD_RATIO", gosLanexMiehgForwardRatio);
646 mptGOSLanexRi1->AddProperty(
"RINDEX",energyGOSLanexTab, rindexGOSLanexRi1Tab, nentGOSLanex);
647 mptGOSLanexRi1->AddProperty(
"ABSLENGTH", energyGOSLanexTab, abslenGOSLanex, nentGOSLanex);
648 tmpMaterial->SetMaterialPropertiesTable(mptGOSLanexRi1);
652 G4double pet_lanex_density=
GetMaterial(
"polyurethane")->GetDensity();
653 tmpMaterial =
new G4Material(
"pet_lanex", pet_lanex_density, 1);
654 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), 1.0);
656 mptPETLanex->AddConstProperty(
"MIEHG_FORWARD", gosLanexMiehgForward);
657 mptPETLanex->AddConstProperty(
"MIEHG_BACKWARD", gosLanexMiehgBackward);
658 mptPETLanex->AddConstProperty(
"MIEHG_FORWARD_RATIO", gosLanexMiehgForwardRatio);
659#if G4VERSION_NUMBER < 1079
660 mptPETLanex->AddConstProperty(
"MIEHG", mieScatteringLengthGOSLanex);
662 mptPETLanex->AddProperty(
"RINDEX",energyGOSLanexTab, rindexGOSLanexTab, nentGOSLanex);
663 mptPETLanex->AddProperty(
"ABSLENGTH", energyGOSLanexTab, abslenGOSLanex, nentGOSLanex);
664 tmpMaterial->SetMaterialPropertiesTable(mptPETLanex);
669 G4double medex_density=fill_factor*GOS->GetDensity()+(1-fill_factor)*
GetMaterial(
"polyurethane")->GetDensity();
670 G4double medex_gos_fraction_by_mass=fill_factor*GOS->GetDensity()/medex_density;
671 G4double medex_pur_fraction_by_mass=1-medex_gos_fraction_by_mass;
672 tmpMaterial =
new G4Material(
"medex", medex_density, 2);
673 tmpMaterial->AddMaterial(GOS, medex_gos_fraction_by_mass);
674 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), medex_pur_fraction_by_mass);
676 const G4int nentMedex=2;
679 G4double medexRindextab[]={rindex, rindex};
681 G4double medexAbslen[]={7*CLHEP::mm, 7*CLHEP::mm};
682 mptMedex->AddProperty(
"RINDEX",energytab, medexRindextab, nentMedex);
683 mptMedex->AddProperty(
"ABSLENGTH", energytab, medexAbslen, nentMedex);
684#if G4VERSION_NUMBER < 1079
685 mptMedex->AddConstProperty(
"MIEHG", 230e-3*CLHEP::mm);
686 G4double medexEmitspec[]={1.0, 1.0};
687 mptMedex->AddProperty(
"FASTCOMPONENT",energytab, medexEmitspec, nentMedex);
688 mptMedex->AddConstProperty(
"FASTTIMECONSTANT", 1.*CLHEP::ns);
690 mptMedex->AddConstProperty(
"SCINTILLATIONYIELD",scintScalingFactor*2.94e4/CLHEP::MeV);
691 mptMedex->AddConstProperty(
"RESOLUTIONSCALE",1.0);
692 mptMedex->AddConstProperty(
"MIEHG_FORWARD", 0.93);
693 mptMedex->AddConstProperty(
"MIEHG_BACKWARD", 0.93);
694 mptMedex->AddConstProperty(
"MIEHG_FORWARD_RATIO", 1.0);
695 tmpMaterial->SetMaterialPropertiesTable(mptMedex);
699 G4double frac_graph=0.5;
700 G4double frac_poly=0.5;
702 G4Material* poly=
GetMaterial(
"G4_POLYACRYLONITRILE");
703 G4double dens_graph=graph->GetDensity();
704 G4double dens_poly=poly->GetDensity();
706 G4double dens_cf =frac_graph*dens_graph+frac_poly*dens_poly;
707 G4double frac_graph_bw=frac_graph*dens_graph/dens_cf;
708 G4double frac_poly_bw=frac_poly*dens_poly/dens_cf;
709 tmpMaterial =
new G4Material(
"carbonfiber", dens_cf, 2);
710 tmpMaterial->AddMaterial(graph, frac_graph_bw);
711 tmpMaterial->AddMaterial(poly, frac_poly_bw);
713 const G4int nentCarbonfiber=2;
714 G4double energytab_cf[]={2.239*CLHEP::eV, 2.241*CLHEP::eV};
715 G4double carbonfiberRindextab[]={2.6, 2.6};
716 G4double carbonfiberAbslen[]={2.1*CLHEP::um, 2.1*CLHEP::um};
717 mptCarbonfiber->AddProperty(
"RINDEX",energytab_cf, carbonfiberRindextab, nentCarbonfiber);
718 mptCarbonfiber->AddProperty(
"ABSLENGTH", energytab_cf, carbonfiberAbslen, nentCarbonfiber);
719 tmpMaterial->SetMaterialPropertiesTable(mptCarbonfiber);