71#if G4VERSION_NUMBER < 1011
72 G4double NTP_Temperature = 293.15;
95 std::list<int> singleElement = {1};
96 AddMaterial(
"graphite", 2.265, kStateSolid, NTP_Temperature, 1, {
"C"}, singleElement);
97 AddMaterial(
"graphitefoam", 0.61, kStateSolid, NTP_Temperature, 1, {
"C"}, singleElement);
98 AddMaterial(
"solidhydrogen",8.96, kStateSolid, NTP_Temperature, 1, {
"H"}, singleElement);
99 AddMaterial(
"solidnitrogen",8.96, kStateSolid, NTP_Temperature, 1, {
"N"}, singleElement);
100 AddMaterial(
"solidoxygen", 8.96, kStateSolid, NTP_Temperature, 1, {
"O"}, singleElement);
101 AddMaterial(
"weightiron", 7.87, kStateSolid, NTP_Temperature, 1, {
"Fe"}, singleElement);
106 kStateSolid, NTP_Temperature, 1,
108 std::list<int>{1, 1, 4});
114 std::list<double>{0.338, 0.662});
121 std::list<double>{0.025, 0.03, 0.945});
127 {
"C",
"Mn",
"P",
"S",
"Fe"},
128 std::list<double>{0.0017, 0.0045, 0.0004, 0.0005, 0.9929});
134 {
"Cu",
"Be",
"Co",
"Al",
"Fe",
"Ni"},
135 std::list<double>{0.991, 0.0031, 0.00500, 0.0004, 0.0003, 0.0002});
141 {
"C",
"Mn",
"Si",
"P",
"S",
"Cr",
"Mo",
"Ni",
"N",
"Fe"},
142 std::list<double>{0.0003, 0.02, 0.0075, 0.00045, 0.0003, 0.17, 0.025, 0.12, 0.001, 0.65545});
148 {
"Fe",
"Cr",
"Ni",
"Mn",
"Si",
"P",
"S",
"C"},
149 std::list<double>{0.67145, 0.185, 0.1125, 0.02, 0.01, 0.00045, 0.0003, 0.0003});
155 {
"Fe",
"Cr",
"Ni",
"Mn",
"Si",
"P",
"S",
"C"},
156 std::list<double>{0.67145, 0.185, 0.1125, 0.02, 0.01, 0.00045, 0.0003, 0.0003});
162 {
"Fe",
"Cr",
"Ni",
"Mn",
"Si",
"P",
"S",
"C"},
163 std::list<double>{0.67145, 0.185, 0.1125, 0.02, 0.01, 0.00045, 0.0003, 0.0003});
170 {
"Fe",
"Cr",
"Ni",
"Mo",
"Mn",
"Si",
"Ti",
"N",
"Nb",
171 "Cu",
"Co",
"P",
"C",
"S",
"Ta",
"B"},
172 std::list<double>{0.65093, 0.1700, 0.12000, 0.02500, 0.0200, 0.00750,
173 0.00150, 0.0014, 0.00100, 0.00100, 0.0005, 0.00045,
174 0.00030, 0.0003, 0.00010, 0.00002});
181 {
"Fe",
"Cr",
"Ni",
"Mo",
"Mn",
"Si",
"Ti",
"N",
182 "Nb",
"Cu",
"Co",
"P",
"C",
"S",
"Ta",
"B"},
183 std::list<double>{0.65093, 0.1700, 0.12000, 0.02500, 0.0200,
184 0.00750, 0.00150, 0.0014, 0.00100, 0.00100,
185 0.0005, 0.00045, 0.00030, 0.0003, 0.00010,
193 {
"Fe",
"Cr",
"Ni",
"Mo",
"Mn",
"Si",
"Ti",
"N",
194 "Nb",
"Cu",
"Co",
"P",
"C",
"S",
"Ta",
"B"},
195 std::list<double>{0.65093, 0.1700, 0.12000, 0.02500, 0.0200,
196 0.00750, 0.00150, 0.0014, 0.00100, 0.00100,
197 0.0005, 0.00045, 0.00030, 0.0003, 0.00010,
202 AddMaterial(
"mild_steel", 8.000, kStateSolid, 295, 1,
203 {
"C",
"Mn",
"Si",
"Fe"},
204 std::list<double>{0.002, 0.005, 0.0015, 0.99150});
213 std::list<double>{0.97, 0.02, 0.01});
220 std::list<double>{0.90, 0.05, 0.05});
227 std::list<double>{0.925, 0.0375, 0.0375});
234 std::list<double>{0.95, 0.025, 0.025});
252 {
"B",
"Ni",
"O",
"Ca",
"Si"},
253 std::list<double>{0.383249242, 0.472071387, 0.0366276887, 0.0228923054, 0.0851593762});
260 std::list<int>{1,3,1});
267 std::list<int>{1,9,2,4});
271 kStateSolid, 300, 1, {
"Si",
"O",
"H",
"Ca",
"Al",
"Fe"},
272 std::list<double>{0.227915, 0.60541, 0.09972, 0.04986, 0.014245, 0.00285});
276 G4Material* tmpMaterial =
new G4Material(
"fusedsilica",
277 1.032*CLHEP::g/CLHEP::cm3,
282 const G4int FusedSilica_NUMENTRIES = 3;
283 G4double FusedSilica_RIND[FusedSilica_NUMENTRIES]={1.49,1.49,1.49};
284 G4double FusedSilica_AbsLength[FusedSilica_NUMENTRIES]={420.*CLHEP::cm,420.*CLHEP::cm,420.*CLHEP::cm};
285 G4double FusedSilica_Energy[FusedSilica_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
287 fsMaterialPropertiesTable->AddProperty(
"ABSLENGTH",FusedSilica_Energy,FusedSilica_AbsLength,FusedSilica_NUMENTRIES);
288 fsMaterialPropertiesTable->AddProperty(
"RINDEX",FusedSilica_Energy,FusedSilica_RIND,FusedSilica_NUMENTRIES);
289 tmpMaterial->SetMaterialPropertiesTable(fsMaterialPropertiesTable);
299 std::list<double>{0.59984,0.31961,0.08055});
306 std::list<double>{0.35,0.65});
313 std::list<double>{0.026362,0.691133,0.073270,0.209235});
316 tmpMaterial =
new G4Material(
"n-bk7", 1.032*CLHEP::g/CLHEP::cm3, 2, kStateSolid);
319 const G4int N_Bk7_NUMENTRIES = 3;
320 G4double N_Bk7_RIND[N_Bk7_NUMENTRIES]={1.51680,1.51680,1.51680};
321 G4double N_Bk7_AbsLength[N_Bk7_NUMENTRIES]={420.*CLHEP::cm,420.*CLHEP::cm,420.*CLHEP::cm};
322 G4double N_Bk7_Energy[N_Bk7_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
324 nbk7MaterialPropertiesTable->AddProperty(
"ABSLENGTH",N_Bk7_Energy,N_Bk7_AbsLength,N_Bk7_NUMENTRIES);
325 nbk7MaterialPropertiesTable->AddProperty(
"RINDEX",N_Bk7_Energy,N_Bk7_RIND,N_Bk7_NUMENTRIES);
326 tmpMaterial->SetMaterialPropertiesTable(nbk7MaterialPropertiesTable);
330 AddMaterial(
"quartz", 2.655, kStateSolid, 300, 1, {
"Si",
"O"}, std::list<int>{1,2});
336 {
"clay",
"calciumCarbonate"},
337 std::list<double>{0.5,0.5});
343 {
"clay",
"calciumCarbonate"},
344 std::list<double>{0.65,0.35});
350 {
"clay",
"calciumCarbonate"},
351 std::list<double>{0.35,0.65});
358 std::list<double>{0.33377483443708611, 0.57218543046357617, 0.022516556291390728, 0.071523178807947022});
362 AddMaterial(
"aralditef", 1.175, kStateSolid, 300, 1, {
"C",
"H",
"O"},std::list<int>{12,18,4});
365 AddMaterial(
"hy906", 1.225, kStateSolid, 300, 1, {
"C",
"H",
"O"},std::list<int>{10,5,3});
368 AddMaterial(
"dy061", 1.025, kStateSolid, 300, 1, {
"C",
"H",
"O",
"N"},std::list<int>{15,25,1,3});
375 {
"aralditef",
"hy906",
"dy061"},
376 std::list<double>{0.497512,0.497512,0.004976});
379 tmpMaterial = G4NistManager::Instance()->FindOrBuildMaterial(
"G4_CELLULOSE_CELLOPHANE",
true,
true);
380 const G4int Cellulose_NUMENTRIES = 3;
381 G4double Cellulose_RIND[Cellulose_NUMENTRIES] = {1.532,1.532,1.532};
382 G4double Cellulose_Energy[Cellulose_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
384 celluloseMaterialPropertiesTable->AddProperty(
"RINDEX",Cellulose_Energy, Cellulose_RIND, Cellulose_NUMENTRIES);
385 tmpMaterial->SetMaterialPropertiesTable(celluloseMaterialPropertiesTable);
391 kStateSolid, NTP_Temperature, 1,
393 std::list<int>{6,10,2,4});
401 std::list<int>{2,4});
407 G4Material* tmpMaterial =
new G4Material(
"yag", 4.56*CLHEP::g/CLHEP::cm3, 3);
410 tmpMaterial->AddElement(
GetElement(
"O") , 12);
411 G4double birks = 0.08*CLHEP::mm/CLHEP::MeV;
412 tmpMaterial->GetIonisation()->SetBirksConstant(birks);
415 const G4int nEntries = 9;
416 G4double PhotonEnergyYAG[nEntries];
417 G4double dNEntries2=(G4double)nEntries;
418 G4double energyMin=1.91*CLHEP::eV;
419 G4double energyMax=2.76*CLHEP::eV;
420 G4double deltaEnergy=(energyMax-energyMin)/(dNEntries2-1.0);
421 G4double energy=energyMin;
422 for (G4int i=0; i<nEntries; energy += deltaEnergy, i++)
423 {PhotonEnergyYAG[i]=energy;}
425 G4double RefractiveIndexYAG[nEntries] =
426 { 1.82, 1.82, 1.82, 1.82, 1.82, 1.82, 1.82,
429 mpt_YAG->AddProperty(
"RINDEX",PhotonEnergyYAG, RefractiveIndexYAG, nEntries);
430#if G4VERSION_NUMBER < 1079
431 G4double scintFastYAG[nEntries] =
432 { 0, 0.25, 2.0, 14.0, 13.0, 7.0, 4.0, 2.0, 0.0 };
434 mpt_YAG->AddProperty(
"FASTCOMPONENT",PhotonEnergyYAG, scintFastYAG, nEntries)->SetSpline(
true);
435 mpt_YAG->AddConstProperty(
"FASTTIMECONSTANT",70.*CLHEP::ns);
436 mpt_YAG->AddConstProperty(
"YIELDRATIO",1.0);
438 mpt_YAG->AddConstProperty(
"SCINTILLATIONYIELD",8000./CLHEP::MeV);
439 mpt_YAG->AddConstProperty(
"RESOLUTIONSCALE",2.0);
440 tmpMaterial->SetMaterialPropertiesTable(mpt_YAG);
445 G4NistManager* nistManager = G4NistManager::Instance();
446 G4Material* polystyrene = nistManager->FindOrBuildMaterial(
"G4_POLYSTYRENE",
true,
true);
447 tmpMaterial =
new G4Material(
"ups923a",polystyrene->GetDensity(),1);
448 tmpMaterial->AddMaterial(polystyrene,1);
449 tmpMaterial->SetName(
"ups923a");
450 std::vector<G4double> ups923a_PhotonEnergy = {
451 3.35, 3.31, 3.28, 3.26, 3.25, 3.23, 3.23,
452 3.22, 3.21, 3.19, 3.18, 3.17, 3.16, 3.15,
453 3.14, 3.14, 3.13, 3.11, 3.1, 3.09, 3.09,
454 3.08, 3.07, 3.04, 3.02, 3.02, 3.01, 2.99,
455 2.98, 2.97, 2.97, 2.95, 2.95, 2.93, 2.93,
456 2.92, 2.92, 2.91, 2.89, 2.88, 2.87, 2.86,
457 2.85, 2.83, 2.81, 2.8, 2.79, 2.78, 2.76,
458 2.74, 2.72, 2.71, 2.68, 2.66, 2.64, 2.62,
459 2.61, 2.58, 2.55, 2.53, 2.5, 2.48, 2.46,
460 2.44, 2.41, 2.38, 2.35 };
461 std::reverse(ups923a_PhotonEnergy.begin(), ups923a_PhotonEnergy.end());
465 std::vector<G4double> ups923a_RINDEX(ups923a_PhotonEnergy.size(), 1.52);
466 std::vector<G4double> ups923a_ABSLENGTH(ups923a_PhotonEnergy.size(), 1*CLHEP::m);
469#if G4VERSION_NUMBER < 1070
470 ups923a_mt->AddProperty(
"RINDEX", ups923a_PhotonEnergy.data(), ups923a_RINDEX.data(), (
int)ups923a_PhotonEnergy.size());
471 ups923a_mt->AddProperty(
"ABSLENGTH", ups923a_PhotonEnergy.data(), ups923a_ABSLENGTH.data(), (
int)ups923a_PhotonEnergy.size());
473 ups923a_mt->AddProperty(
"RINDEX", ups923a_PhotonEnergy, ups923a_RINDEX);
474 ups923a_mt->AddProperty(
"ABSLENGTH", ups923a_PhotonEnergy, ups923a_ABSLENGTH);
477 birks = (0.014/1.06)*CLHEP::cm/CLHEP::MeV;
478 tmpMaterial->GetIonisation()->SetBirksConstant(birks);
479#if G4VERSION_NUMBER < 1079
480 const G4int ups923a_numentries = 67;
481 G4double ups923a_emission[ups923a_numentries] = {
482 0, 0.04, 0.11, 0.2, 0.3, 0.4, 0.52,
483 0.62, 0.67, 0.68, 0.67, 0.62, 0.53, 0.48,
484 0.44, 0.42, 0.4, 0.41, 0.42, 0.51, 0.46,
485 0.57, 0.67, 0.78, 0.91, 0.93, 0.95, 0.96,
486 0.94, 0.91, 0.85, 0.76, 0.67, 0.61, 0.57,
487 0.55, 0.52, 0.51, 0.52, 0.54, 0.57, 0.58,
488 0.6, 0.6, 0.59, 0.58, 0.55, 0.48, 0.42,
489 0.37, 0.33, 0.31, 0.29, 0.28, 0.26, 0.24,
490 0.2, 0.17, 0.12, 0.09, 0.08, 0.07,
491 0.06, 0.04, 0.02, 0.01, 0.01 };
492 ups923a_mt->AddConstProperty(
"FASTTIMECONSTANT",3.3*CLHEP::ns);
493 ups923a_mt->AddProperty(
"FASTCOMPONENT",ups923a_PhotonEnergy.data(), ups923a_emission, ups923a_numentries)->SetSpline(
true);
494 ups923a_mt->AddConstProperty(
"YIELDRATIO",1.0);
496 ups923a_mt->AddConstProperty(
"RESOLUTIONSCALE",2.0);
497 G4double scintYieldAnthracene=14200;
498 G4double scintYieldUPS923A=scintYieldAnthracene*0.60;
499 ups923a_mt->AddConstProperty(
"SCINTILLATIONYIELD",scintYieldUPS923A/CLHEP::MeV);
501 tmpMaterial->SetMaterialPropertiesTable(ups923a_mt);
505 G4double pet_density=1.4*CLHEP::g/CLHEP::cm3;
506 G4int pet_nelements=3;
507 G4State pet_state=kStateSolid;
508 tmpMaterial=
new G4Material(
"pet",
512 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"C",
true),10);
513 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"H",
true),8);
514 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"O",
true),4);
515 const G4int Pet_NUMENTRIES = 3;
516 G4double Pet_RIND[Pet_NUMENTRIES] = {1.570,1.570,1.570};
517 G4double Pet_Energy[Pet_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
519 petMaterialPropertiesTable->AddProperty(
"RINDEX",Pet_Energy, Pet_RIND, Pet_NUMENTRIES);
520 tmpMaterial->SetMaterialPropertiesTable(petMaterialPropertiesTable);
524 tmpMaterial=
new G4Material(
"pet_opaque",
528 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"C",
true),10);
529 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"H",
true),8);
530 tmpMaterial->AddElement(nistManager->FindOrBuildElement(
"O",
true),4);
531 const G4int Pet_Opaque_NUMENTRIES = 3;
532 G4double Pet_Opaque_RIND[Pet_Opaque_NUMENTRIES] = {1.570,1.570,1.570};
533 G4double Pet_Opaque_Energy[Pet_Opaque_NUMENTRIES] = {2.0*CLHEP::eV,7.0*CLHEP::eV,7.14*CLHEP::eV};
534 G4double Pet_Opaque_abslen[]={1*CLHEP::um, 1*CLHEP::um, 1*CLHEP::um};
536 pet_opaqueMaterialPropertiesTable->AddProperty(
"RINDEX",Pet_Opaque_Energy, Pet_Opaque_RIND, Pet_Opaque_NUMENTRIES);
537 pet_opaqueMaterialPropertiesTable->AddProperty(
"ABSLENGTH",Pet_Opaque_Energy, Pet_Opaque_abslen, Pet_Opaque_NUMENTRIES);
538 tmpMaterial->SetMaterialPropertiesTable(pet_opaqueMaterialPropertiesTable);
542 G4Material* GOS = nistManager->FindOrBuildMaterial(
"G4_GADOLINIUM_OXYSULFIDE",
true,
true);
545 G4double fill_factor=0.5;
546 G4double lanex_density=fill_factor*GOS->GetDensity()+(1-fill_factor)*
GetMaterial(
"polyurethane")->GetDensity();
547 G4double gos_fraction_by_mass=fill_factor*GOS->GetDensity()/lanex_density;
548 G4double pur_fraction_by_mass=1-gos_fraction_by_mass;
550 tmpMaterial =
new G4Material(
"lanex", lanex_density, 2);
551 tmpMaterial->AddMaterial(GOS, gos_fraction_by_mass);
552 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), pur_fraction_by_mass);
555 const G4int nentLanex=2;
556 G4double rindex=1.50;
557 G4double energytab[]={2.239*CLHEP::eV, 2.241*CLHEP::eV};
558 G4double rindextab[]={rindex, rindex};
559 G4double abslen[]={7*CLHEP::mm, 7*CLHEP::mm};
560 mptLanex->AddProperty(
"RINDEX",energytab, rindextab, nentLanex);
561 mptLanex->AddProperty(
"ABSLENGTH", energytab, abslen, nentLanex);
562#if G4VERSION_NUMBER < 1079
563 mptLanex->AddConstProperty(
"MIEHG", 60.3e-3*CLHEP::mm);
564 G4double emitspec[]={1.0, 1.0};
565 mptLanex->AddProperty(
"FASTCOMPONENT",energytab, emitspec, nentLanex);
566 mptLanex->AddConstProperty(
"FASTTIMECONSTANT", 1.*CLHEP::ns);
568 G4double scintScalingFactor=1;
569 mptLanex->AddConstProperty(
"SCINTILLATIONYIELD",7.8e4/CLHEP::MeV);
570 mptLanex->AddConstProperty(
"RESOLUTIONSCALE",1.0);
571 mptLanex->AddConstProperty(
"MIEHG_FORWARD", 0.91);
572 mptLanex->AddConstProperty(
"MIEHG_BACKWARD", 0.91);
573 mptLanex->AddConstProperty(
"MIEHG_FORWARD_RATIO", 1.0);
574 tmpMaterial->SetMaterialPropertiesTable(mptLanex);
578 tmpMaterial =
new G4Material(
"lanex2", lanex_density, 2);
579 tmpMaterial->AddMaterial(GOS, gos_fraction_by_mass);
580 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), pur_fraction_by_mass);
582 mptLanex2->AddProperty(
"RINDEX",energytab, rindextab, nentLanex);
583 mptLanex2->AddProperty(
"ABSLENGTH", energytab, abslen, nentLanex);
584#if G4VERSION_NUMBER < 1079
585 mptLanex2->AddConstProperty(
"MIEHG", 60.3e-3*CLHEP::mm);
586 mptLanex2->AddProperty(
"FASTCOMPONENT",energytab, emitspec, nentLanex);
587 mptLanex2->AddConstProperty(
"FASTTIMECONSTANT", 1.*CLHEP::ns);
589 mptLanex2->AddConstProperty(
"SCINTILLATIONYIELD",8.9e4/CLHEP::MeV);
590 mptLanex2->AddConstProperty(
"RESOLUTIONSCALE",1.0);
591 mptLanex2->AddConstProperty(
"MIEHG_FORWARD", 0.91);
592 mptLanex2->AddConstProperty(
"MIEHG_BACKWARD", 0.91);
593 mptLanex2->AddConstProperty(
"MIEHG_FORWARD_RATIO", 0.5);
594 tmpMaterial->SetMaterialPropertiesTable(mptLanex);
598 G4double gos_lanex_density=GOS->GetDensity();
599 tmpMaterial =
new G4Material(
"gos_lanex", gos_lanex_density, 1);
600 tmpMaterial->AddMaterial(GOS, 1.0);
602 const G4int nentGOSLanex=2;
603 G4double rindexGOSLanex=1.50;
604 G4double energyGOSLanexTab[]={2.239*CLHEP::eV, 2.241*CLHEP::eV};
605 G4double rindexGOSLanexTab[]={rindexGOSLanex, rindexGOSLanex};
606 G4double abslenGOSLanex[]={7*CLHEP::mm, 7*CLHEP::mm};
607 G4double gosLanexMiehgForward=0.911;
608 G4double gosLanexMiehgBackward=0.911;
609 G4double gosLanexMiehgForwardRatio=0.5;
610#if G4VERSION_NUMBER < 1079
611 G4double mieHgTimeConst=1.0*CLHEP::ns;
612 G4double emitspecGOSLanex[]={1.0, 1.0};
613 G4double mieScatteringLengthGOSLanex=60.3*CLHEP::um;
614 mptGOSLanex->AddProperty(
"FASTCOMPONENT",energyGOSLanexTab, emitspecGOSLanex, nentGOSLanex);
615 mptGOSLanex->AddConstProperty(
"FASTTIMECONSTANT", mieHgTimeConst);
616 mptGOSLanex->AddConstProperty(
"YIELDRATIO", 1.0);
617 mptGOSLanex->AddConstProperty(
"MIEHG", mieScatteringLengthGOSLanex);
619 mptGOSLanex->AddConstProperty(
"SCINTILLATIONYIELD",8.9e4/CLHEP::MeV);
620 mptGOSLanex->AddConstProperty(
"RESOLUTIONSCALE", 1.0);
621 mptGOSLanex->AddConstProperty(
"MIEHG_FORWARD", gosLanexMiehgForward);
622 mptGOSLanex->AddConstProperty(
"MIEHG_BACKWARD", gosLanexMiehgBackward);
623 mptGOSLanex->AddConstProperty(
"MIEHG_FORWARD_RATIO", gosLanexMiehgForwardRatio);
624 mptGOSLanex->AddProperty(
"RINDEX",energyGOSLanexTab, rindexGOSLanexTab, nentGOSLanex);
625 mptGOSLanex->AddProperty(
"ABSLENGTH", energyGOSLanexTab, abslenGOSLanex, nentGOSLanex);
626 tmpMaterial->SetMaterialPropertiesTable(mptGOSLanex);
630 tmpMaterial =
new G4Material(
"gos_ri1", gos_lanex_density, 1);
631 tmpMaterial->AddMaterial(GOS, 1.0);
633 G4double rindexGOSLanexRi1Tab[]={1.0, 1.0};
634#if G4VERSION_NUMBER < 1079
635 mptGOSLanexRi1->AddProperty(
"FASTCOMPONENT",energyGOSLanexTab, emitspecGOSLanex, nentGOSLanex);
636 mptGOSLanexRi1->AddConstProperty(
"FASTTIMECONSTANT", mieHgTimeConst);
637 mptGOSLanexRi1->AddConstProperty(
"YIELDRATIO", 1.0);
638 mptGOSLanexRi1->AddConstProperty(
"MIEHG", mieScatteringLengthGOSLanex);
640 mptGOSLanexRi1->AddConstProperty(
"SCINTILLATIONYIELD",8.9e4/CLHEP::MeV);
641 mptGOSLanexRi1->AddConstProperty(
"RESOLUTIONSCALE", 1.0);
642 mptGOSLanexRi1->AddConstProperty(
"MIEHG_FORWARD", gosLanexMiehgForward);
643 mptGOSLanexRi1->AddConstProperty(
"MIEHG_BACKWARD", gosLanexMiehgBackward);
644 mptGOSLanexRi1->AddConstProperty(
"MIEHG_FORWARD_RATIO", gosLanexMiehgForwardRatio);
645 mptGOSLanexRi1->AddProperty(
"RINDEX",energyGOSLanexTab, rindexGOSLanexRi1Tab, nentGOSLanex);
646 mptGOSLanexRi1->AddProperty(
"ABSLENGTH", energyGOSLanexTab, abslenGOSLanex, nentGOSLanex);
647 tmpMaterial->SetMaterialPropertiesTable(mptGOSLanexRi1);
651 G4double pet_lanex_density=
GetMaterial(
"polyurethane")->GetDensity();
652 tmpMaterial =
new G4Material(
"pet_lanex", pet_lanex_density, 1);
653 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), 1.0);
655 mptPETLanex->AddConstProperty(
"MIEHG_FORWARD", gosLanexMiehgForward);
656 mptPETLanex->AddConstProperty(
"MIEHG_BACKWARD", gosLanexMiehgBackward);
657 mptPETLanex->AddConstProperty(
"MIEHG_FORWARD_RATIO", gosLanexMiehgForwardRatio);
658#if G4VERSION_NUMBER < 1079
659 mptPETLanex->AddConstProperty(
"MIEHG", mieScatteringLengthGOSLanex);
661 mptPETLanex->AddProperty(
"RINDEX",energyGOSLanexTab, rindexGOSLanexTab, nentGOSLanex);
662 mptPETLanex->AddProperty(
"ABSLENGTH", energyGOSLanexTab, abslenGOSLanex, nentGOSLanex);
663 tmpMaterial->SetMaterialPropertiesTable(mptPETLanex);
668 G4double medex_density=fill_factor*GOS->GetDensity()+(1-fill_factor)*
GetMaterial(
"polyurethane")->GetDensity();
669 G4double medex_gos_fraction_by_mass=fill_factor*GOS->GetDensity()/medex_density;
670 G4double medex_pur_fraction_by_mass=1-medex_gos_fraction_by_mass;
671 tmpMaterial =
new G4Material(
"medex", medex_density, 2);
672 tmpMaterial->AddMaterial(GOS, medex_gos_fraction_by_mass);
673 tmpMaterial->AddMaterial(
GetMaterial(
"polyurethane"), medex_pur_fraction_by_mass);
675 const G4int nentMedex=2;
678 G4double medexRindextab[]={rindex, rindex};
680 G4double medexAbslen[]={7*CLHEP::mm, 7*CLHEP::mm};
681 mptMedex->AddProperty(
"RINDEX",energytab, medexRindextab, nentMedex);
682 mptMedex->AddProperty(
"ABSLENGTH", energytab, medexAbslen, nentMedex);
683#if G4VERSION_NUMBER < 1079
684 mptMedex->AddConstProperty(
"MIEHG", 230e-3*CLHEP::mm);
685 G4double medexEmitspec[]={1.0, 1.0};
686 mptMedex->AddProperty(
"FASTCOMPONENT",energytab, medexEmitspec, nentMedex);
687 mptMedex->AddConstProperty(
"FASTTIMECONSTANT", 1.*CLHEP::ns);
689 mptMedex->AddConstProperty(
"SCINTILLATIONYIELD",scintScalingFactor*2.94e4/CLHEP::MeV);
690 mptMedex->AddConstProperty(
"RESOLUTIONSCALE",1.0);
691 mptMedex->AddConstProperty(
"MIEHG_FORWARD", 0.93);
692 mptMedex->AddConstProperty(
"MIEHG_BACKWARD", 0.93);
693 mptMedex->AddConstProperty(
"MIEHG_FORWARD_RATIO", 1.0);
694 tmpMaterial->SetMaterialPropertiesTable(mptMedex);
698 G4double frac_graph=0.5;
699 G4double frac_poly=0.5;
701 G4Material* poly=
GetMaterial(
"G4_POLYACRYLONITRILE");
702 G4double dens_graph=graph->GetDensity();
703 G4double dens_poly=poly->GetDensity();
705 G4double dens_cf =frac_graph*dens_graph+frac_poly*dens_poly;
706 G4double frac_graph_bw=frac_graph*dens_graph/dens_cf;
707 G4double frac_poly_bw=frac_poly*dens_poly/dens_cf;
708 tmpMaterial =
new G4Material(
"carbonfiber", dens_cf, 2);
709 tmpMaterial->AddMaterial(graph, frac_graph_bw);
710 tmpMaterial->AddMaterial(poly, frac_poly_bw);
712 const G4int nentCarbonfiber=2;
713 G4double energytab_cf[]={2.239*CLHEP::eV, 2.241*CLHEP::eV};
714 G4double carbonfiberRindextab[]={2.6, 2.6};
715 G4double carbonfiberAbslen[]={2.1*CLHEP::um, 2.1*CLHEP::um};
716 mptCarbonfiber->AddProperty(
"RINDEX",energytab_cf, carbonfiberRindextab, nentCarbonfiber);
717 mptCarbonfiber->AddProperty(
"ABSLENGTH", energytab_cf, carbonfiberAbslen, nentCarbonfiber);
718 tmpMaterial->SetMaterialPropertiesTable(mptCarbonfiber);