Warning, file /geant4/examples/extended/electromagnetic/TestEm10/src/Materials.cc was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 
0023 
0024 
0025 
0026 
0027 
0028 
0029 
0030 
0031 
0032 
0033 
0034 
0035 
0036 
0037 
0038 
0039 
0040 
0041 #include "Materials.hh"
0042 
0043 #include "G4Material.hh"
0044 #include "G4MaterialTable.hh"
0045 #include "G4SystemOfUnits.hh"
0046 #include "G4UnitsTable.hh"
0047 
0048 
0049 
0050 Materials* Materials::fgInstance = 0;
0051 
0052 
0053 
0054 Materials* Materials::GetInstance()
0055 {
0056   if (!fgInstance) {
0057     fgInstance = new Materials();
0058   }
0059   return fgInstance;
0060 }
0061 
0062 
0063 
0064 Materials::Materials()
0065 {
0066   fgInstance = this;
0067   Initialise();
0068 }
0069 
0070 
0071 
0072 Materials::~Materials() {}
0073 
0074 
0075 
0076 void Materials::Initialise()
0077 {
0078   G4String name, symbol;
0079   G4double a, z;
0080   G4double density, fractionmass;
0081   G4int nel, ncomponents;
0082 
0083   
0084 
0085   a = 1.01 * g / mole;
0086   G4Element* elH = new G4Element(name = "Hydrogen", symbol = "H", z = 1., a);
0087 
0088   a = 6.94 * g / mole;
0089   G4Element* elLi = new G4Element(name = "Lithium", symbol = "Li", z = 3., a);
0090 
0091   a = 9.01 * g / mole;
0092   G4Element* elBe = new G4Element(name = "Berillium", symbol = "Be", z = 4., a);
0093 
0094   a = 12.01 * g / mole;
0095   G4Element* elC = new G4Element(name = "Carbon", symbol = "C", z = 6., a);
0096 
0097   a = 14.01 * g / mole;
0098   G4Element* elN = new G4Element(name = "Nitrogen", symbol = "N", z = 7., a);
0099 
0100   a = 16.00 * g / mole;
0101   G4Element* elO = new G4Element(name = "Oxygen", symbol = "O", z = 8., a);
0102 
0103   a = 39.948 * g / mole;
0104   G4Element* elAr = new G4Element(name = "Argon", symbol = "Ar", z = 18., a);
0105 
0106   
0107 
0108 
0109 
0110 
0111 
0112 
0113 
0114   
0115   
0116   
0117   
0118 
0119   density = 2.700 * g / cm3;
0120   a = 26.98 * g / mole;
0121   new G4Material(name = "Al", z = 13., a, density);
0122 
0123   
0124   
0125   
0126   
0127 
0128   
0129 
0130   density = 0.935 * g / cm3;
0131   G4Material* TRT_CH2 = new G4Material(name = "TRT_CH2", density, nel = 2);
0132   TRT_CH2->AddElement(elC, 1);
0133   TRT_CH2->AddElement(elH, 2);
0134 
0135   
0136 
0137   density = 0.059 * g / cm3;
0138   G4Material* Radiator = new G4Material(name = "Radiator", density, nel = 2);
0139   Radiator->AddElement(elC, 1);
0140   Radiator->AddElement(elH, 2);
0141 
0142   
0143 
0144   density = 0.145 * g / cm3;
0145   G4Material* CarbonFiber = new G4Material(name = "CarbonFiber", density, nel = 1);
0146   CarbonFiber->AddElement(elC, 1);
0147 
0148   
0149 
0150   density = 0.534 * g / cm3;
0151   G4Material* Li = new G4Material(name = "Li", density, nel = 1);
0152   Li->AddElement(elLi, 1);
0153 
0154   
0155 
0156   density = 1.848 * g / cm3;
0157   G4Material* Be = new G4Material(name = "Be", density, nel = 1);
0158   Be->AddElement(elBe, 1);
0159 
0160   
0161 
0162   density = 1.39 * g / cm3;
0163   G4Material* Mylar = new G4Material(name = "Mylar", density, nel = 3);
0164   Mylar->AddElement(elO, 2);
0165   Mylar->AddElement(elC, 5);
0166   Mylar->AddElement(elH, 4);
0167 
0168   
0169 
0170   density = 1.413 * g / cm3;
0171   G4Material* Kapton = new G4Material(name = "Kapton", density, nel = 4);
0172   Kapton->AddElement(elO, 5);
0173   Kapton->AddElement(elC, 22);
0174   Kapton->AddElement(elN, 2);
0175   Kapton->AddElement(elH, 10);
0176 
0177   
0178 
0179   
0180   
0181   
0182   
0183   
0184 
0185   
0186 
0187   G4Material* CH2 = new G4Material("CH2", 0.91 * g / cm3, 2);
0188   CH2->AddElement(elH, 2);
0189   CH2->AddElement(elC, 1);
0190 
0191   
0192   
0193   
0194 
0195   
0196 
0197   density = 0.178 * mg / cm3;
0198   a = 4.0026 * g / mole;
0199   G4Material* He = new G4Material(name = "He", z = 2., a, density);
0200 
0201   
0202 
0203   density = 0.900 * mg / cm3;
0204   a = 20.179 * g / mole;
0205   new G4Material(name = "Ne", z = 10., a, density);
0206 
0207   
0208 
0209   density = 1.7836 * mg / cm3;  
0210   G4Material* Argon = new G4Material(name = "Argon", density, ncomponents = 1);
0211   Argon->AddElement(elAr, 1);
0212 
0213   
0214 
0215   density = 3.700 * mg / cm3;
0216   a = 83.80 * g / mole;
0217   G4Material* Kr = new G4Material(name = "Kr", z = 36., a, density);
0218 
0219   
0220 
0221   density = 5.858 * mg / cm3;
0222   a = 131.29 * g / mole;
0223   G4Material* Xe = new G4Material(name = "Xenon", z = 54., a, density);
0224 
0225   
0226   
0227   
0228 
0229   
0230 
0231   density = 0.7174 * mg / cm3;
0232   G4Material* metane = new G4Material(name = "CH4", density, nel = 2);
0233   metane->AddElement(elC, 1);
0234   metane->AddElement(elH, 4);
0235 
0236   
0237 
0238   density = 2.005 * mg / cm3;
0239   G4Material* propane = new G4Material(name = "C3H8", density, nel = 2);
0240   propane->AddElement(elC, 3);
0241   propane->AddElement(elH, 8);
0242 
0243   
0244 
0245   density = 2.67 * mg / cm3;
0246   G4Material* isobutane = new G4Material(name = "isoC4H10", density, nel = 2);
0247   isobutane->AddElement(elC, 4);
0248   isobutane->AddElement(elH, 10);
0249 
0250   
0251   
0252   
0253 
0254   
0255 
0256   density = 1.977 * mg / cm3;
0257   G4Material* CO2 =
0258     new G4Material(name = "CO2", density, nel = 2, kStateGas, 273.15 * kelvin, 1. * atmosphere);
0259   CO2->AddElement(elC, 1);
0260   CO2->AddElement(elO, 2);
0261 
0262   
0263 
0264   density = 1.977 * 273. * mg / cm3 / 293.;
0265   G4Material* CarbonDioxide = new G4Material(name = "CO2_2", density, nel = 2);
0266   CarbonDioxide->AddElement(elC, 1);
0267   CarbonDioxide->AddElement(elO, 2);
0268 
0269   
0270 
0271   density = 1.25053 * mg / cm3;  
0272   G4Material* Nitrogen = new G4Material(name = "N2", density, ncomponents = 1);
0273   Nitrogen->AddElement(elN, 2);
0274 
0275   
0276 
0277   density = 1.4289 * mg / cm3;  
0278   G4Material* Oxygen = new G4Material(name = "O2", density, ncomponents = 1);
0279   Oxygen->AddElement(elO, 2);
0280 
0281   
0282 
0283 
0284 
0285 
0286 
0287 
0288 
0289 
0290 
0291 
0292 
0293 
0294 
0295 
0296 
0297 
0298 
0299 
0300   
0301 
0302   density = 1.2928 * mg / cm3;  
0303   G4Material* Air = new G4Material(name = "Air", density, ncomponents = 3);
0304   Air->AddMaterial(Nitrogen, fractionmass = 0.7557);
0305   Air->AddMaterial(Oxygen, fractionmass = 0.2315);
0306   Air->AddMaterial(Argon, fractionmass = 0.0128);
0307 
0308   
0309   
0310   
0311 
0312   
0313 
0314   density = 4.9 * mg / cm3;
0315   G4Material* Xe15CO2 = new G4Material(name = "Xe15CO2", density, ncomponents = 2);
0316   Xe15CO2->AddMaterial(Xe, fractionmass = 0.979);
0317   Xe15CO2->AddMaterial(CarbonDioxide, fractionmass = 0.021);
0318 
0319   
0320 
0321   density = 5.0818 * mg / cm3;
0322   G4Material* Xe20CO2 = new G4Material(name = "Xe20CO2", density, ncomponents = 2);
0323   Xe20CO2->AddMaterial(Xe, fractionmass = 0.922);
0324   Xe20CO2->AddMaterial(CarbonDioxide, fractionmass = 0.078);
0325 
0326   
0327 
0328   density = 4.358 * mg / cm3;
0329   G4Material* Xe27CO23O2 = new G4Material(name = "Xe27CO23O2", density, ncomponents = 3);
0330   Xe27CO23O2->AddMaterial(Xe, fractionmass = 0.87671);
0331   Xe27CO23O2->AddMaterial(CarbonDioxide, fractionmass = 0.11412);
0332   Xe27CO23O2->AddMaterial(Oxygen, fractionmass = 0.00917);
0333 
0334   
0335 
0336   density = 3.601 * mg / cm3;
0337   G4Material* Kr20CO2 = new G4Material(name = "Kr20CO2", density, ncomponents = 2);
0338   Kr20CO2->AddMaterial(Kr, fractionmass = 0.89);
0339   Kr20CO2->AddMaterial(CarbonDioxide, fractionmass = 0.11);
0340 
0341   
0342 
0343   density = 1.963 * 273. * mg / cm3 / 293.;
0344   G4Material* Xe55He15CH4 = new G4Material(name = "Xe55He15CH4", density, ncomponents = 3);
0345   Xe55He15CH4->AddMaterial(Xe, 0.895);
0346   Xe55He15CH4->AddMaterial(He, 0.050);
0347   Xe55He15CH4->AddMaterial(metane, 0.055);
0348 
0349   
0350 
0351   density = 5.344 * mg / cm3;
0352   G4Material* Xe10CH4 = new G4Material(name = "Xe10CH4", density, ncomponents = 2);
0353   Xe10CH4->AddMaterial(Xe, fractionmass = 0.987);
0354   Xe10CH4->AddMaterial(metane, fractionmass = 0.013);
0355 
0356   
0357 
0358   density = 5.601 * mg / cm3;
0359   G4Material* Xe5CH4 = new G4Material(name = "Xe5CH4", density, ncomponents = 2);
0360   Xe5CH4->AddMaterial(Xe, fractionmass = 0.994);
0361   Xe5CH4->AddMaterial(metane, fractionmass = 0.006);
0362 
0363   
0364 
0365   density = 4.83 * mg / cm3;
0366   G4Material* Xe20CH4 = new G4Material(name = "Xe20CH4", density, ncomponents = 2);
0367   Xe20CH4->AddMaterial(Xe, fractionmass = 0.97);
0368   Xe20CH4->AddMaterial(metane, fractionmass = 0.03);
0369 
0370   
0371 
0372   density = 1.709 * mg / cm3;
0373   G4Material* Ar7CH4 = new G4Material(name = "Ar7CH4", density, ncomponents = 2);
0374   Ar7CH4->AddMaterial(Argon, fractionmass = 0.971);
0375   Ar7CH4->AddMaterial(metane, fractionmass = 0.029);
0376 
0377   
0378 
0379   density = 3.491 * mg / cm3;
0380   G4Material* Kr7CH4 = new G4Material(name = "Kr7CH4", density, ncomponents = 2);
0381   Kr7CH4->AddMaterial(Kr, fractionmass = 0.986);
0382   Kr7CH4->AddMaterial(metane, fractionmass = 0.014);
0383 
0384   
0385 
0386   density = 3.655 * mg / cm3;
0387   G4Material* XeArCH4 = new G4Material(name = "XeArCH4", density, ncomponents = 2);
0388   XeArCH4->AddMaterial(Xe5CH4, fractionmass = 0.766);
0389   XeArCH4->AddMaterial(Ar7CH4, fractionmass = 0.234);
0390 
0391   
0392 
0393   density = 2.330 * g / cm3;
0394   a = 28.09 * g / mole;
0395   new G4Material(name = "Si", z = 14., a, density);
0396 
0397   
0398 
0399 
0400 
0401 
0402 
0403 
0404 
0405 
0406 
0407 
0408 
0409 
0410 
0411 
0412 
0413 
0414 
0415 
0416 
0417 
0418 
0419 
0420 
0421 
0422 
0423 
0424 
0425 
0426 
0427 
0428 
0429 
0430 
0431 
0432 
0433 
0434 
0435 
0436 
0437 
0438 
0439 
0440 
0441 
0442 
0443 
0444 
0445 
0446 
0447 }
0448 
0449 
0450 
0451 G4Material* Materials::GetMaterial(const G4String& name)
0452 {
0453   
0454 
0455   G4Material* ma = G4Material::GetMaterial(name);
0456 
0457   G4cout << "Material is selected: " << ma->GetName() << G4endl;
0458   return ma;
0459 }