File indexing completed on 2025-02-23 09:20:50
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 }