水を作りたい(G4_WATER
)
1G4NistManager *nist = G4NistManager::Instance()
2G4Material *fWater = nist->FindOrBuildMaterial("G4_WATER")
G4_WATER
でNISTデータにある水を生成できます。
水蒸気したい(GA_WATER_VAPOR
)
1G4Material *fWaterVapor = nist->FindOrBuildMaterial("G4_WATER")
G4_WATER_VAPOR
で水蒸気を生成できます。
密度が 0.000756182*g/cm3
に設定された水です。
カスタマイズしたい
1G4double a, z, density;
2G4int nelements;
3
4G4Element *H = new G4Element("Hydrogen", "H", z=1, a=1.00794*g/mole);
5G4Element *O = new G4Element("Oxygen", "O", z=8, a=15.9994*g/mole);
6G4Material *fWater = new G4Material("Water", density=1.0*g/cm3, nelements=2);
7Water->AddElement(H, 2);
8Water->AddElement(O, 1);
G4Element
とG4Material
を使ってカスタマイズした水を生成できます。
質量数や密度は適切な文献を参照してください。
光学特性したい
1const G4int entries = 35;
2
3// Optical Photonのエネルギー
4G4double photon_energy[entries] = {
5 2.034*eV, 2.068*eV, 2.103*eV, 2.139*eV,
6 2.177*eV, 2.216*eV, 2.256*eV, 2.298*eV,
7 2.341*eV, 2.386*eV, 2.433*eV, 2.481*eV,
8 2.532*eV, 2.585*eV, 2.640*eV, 2.697*eV,
9 2.757*eV, 2.820*eV, 2.885*eV, 2.954*eV,
10 3.026*eV, 3.102*eV, 3.181*eV, 3.265*eV,
11 3.353*eV, 3.446*eV, 3.545*eV, 3.649*eV,
12 3.760*eV, 3.877*eV, 4.002*eV, 4.136*eV,
13 4.275*eV, 4.427*eV, 4.591*eV
14 };
15
16// エネルギーごとの反射率
17G4double refractive_index[entries] = {
18 1.3435, 1.344, 1.3445, 1.345, 1.3455,
19 1.346, 1.3465, 1.347, 1.3475, 1.348,
20 1.3485, 1.3492, 1.35, 1.3505, 1.351,
21 1.3518, 1.3522, 1.3530, 1.3535, 1.354,
22 1.3545, 1.355, 1.3555, 1.356, 1.3568,
23 1.3572, 1.358, 1.3585, 1.359, 1.3595,
24 1.36, 1.3608, 1.3608, 1.3608, 1.3608
25 };
26
27// エネルギーごとの吸収長
28G4double absorption_length[nEntries] = {
29 3.448*m, 4.082*m, 6.329*m, 9.174*m, 12.346*m, 13.889*m,
30 15.152*m, 17.241*m, 18.868*m, 20.000*m, 26.316*m, 35.714*m,
31 45.455*m, 47.619*m, 52.632*m, 52.632*m, 55.556*m, 52.632*m,
32 52.632*m, 47.619*m, 45.455*m, 41.667*m, 37.037*m, 33.333*m,
33 30.000*m, 28.500*m, 27.000*m, 24.500*m, 22.000*m, 19.500*m,
34 17.500*m, 14.500*m, 14.500*m, 14.500*m, 14.500*m
35 };
36
37// AddConstProperty(キー, 特性値, 数)
38// AddProperty(キー, 光子のエネルギー, 特性値, 数)
39G4MaterialPropertiesTable *mpt = new G4MaterialPropertiesTable();
40mpt->AddProperty("RINDEX", photon_energy, refractive_index, entries);
41mpt->AddProperty("ABSLENGTH", photon_energy, absorption_length, entries);
42fWater->SetMaterialPropertiesTable(mpt)
G4MaterialPropetiesTableで、材料の特性を追加できます。 G4Material自体は材料の特性を持たないため、自分で追加する必要があります。 光子の波長(を変換したエネルギー)ごとの屈折率と吸収長は、文献値を参考にしたり、自分で測定したりして定義します。