Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
01.09.2026
Размер:
2 Мб
Скачать
☆
ВЕЩЕСТВО
1
Material definition classes
Different “specializations” of matter G4Isotope Single isotopes (specific Z and A) G4Element Elemental mixes, natural or enriched G4Material Molecules, compounds, mixtures, alloys
G4Material carries physical attributes
For hadronic processes, must have at least correct set of
elements
Do not use “averaged material”
2
Elemental materials
e.g., liquid argon
⎡ G4double density = 1.390*g/cm3; ⎢ G4double z = 18., a = 39.95*g/mole; ⎢ G4Material* lAr = new ⎣ G4Material("liquidArgon", z, a, density);
Elements have averaged atomic weight:
⎡ G4double z = ⎢ G4Element* elH = new ⎢ G4Element("Hydrogen", "H", z, a); ⎢ /*...*/ z = 8., a = 15.9994*g/mole; ⎢ G4Element* elO = new ⎢ G4Element("Oxygen", "O", z, a); ⎢ /*...*/ z = 7., a = 14.007*g/mole; ⎢ G4Element* elN = new ⎣ G4Element("Nitrogen", "N", z, a);
1., a = 1.0079*g/mole;
3
Isotopes and abundances
e.g., enriched uranium (15%
⎡ G4Isotope* isoU235 = new ⎢ G4Isotope("U235", 92, 235, a = 235.0439242*g/mole); ⎢ G4Isotope* isoU238 = new ⎢ G4Isotope("U238", 92, 238, a = 238.0507847*g/mole); ⎢ G4Element* elEnrU = new ⎢ G4Element("enriched U", "U", ncomp = 2); ⎢ elEnrU -> AddIsotope(isoU235, ⎢ abundance = 15.*perCent); ⎢ elEnrU -> AddIsotope(isoU238, ⎢ abundance = 85.*perCent); ⎢ G4Material* matEnrU = new
235
U)
⎢ G4Material("U for nuclear power generation", ⎢ density = 19.050*g/cm3, ncomp = 1, kStateSolid); ⎣ matEnrU -> AddElement(elEnrU, fracMass = 1.);
4
Compounds and materials
Molecules defined by stoichiometry (number of atoms)
⎡ G4Material* H2O = new ⎢ G4Material("Water", density, ncomp = 2); ⎢ G4int natoms; ⎢ H2O->AddElement(elH, natoms = 2); ⎣ H2O->AddElement(elO, natoms = 1);
Compounds defined by mass fractions
⎡ density = 1.290*mg/cm3; ⎢ G4Ma ⎢ G4Material("Air", density, ncomp = 2); ⎢ G4double fracMass; ⎢ air->AddElement(elN, fracMass = 79.*perCent); ⎣ air->AddElement(elO, fracMass = 21.*perCent);
terial* air = new
5
Complex mixtures, alloys
Combine elements, compounds, molecules by mass fraction
⎡ G4Element* elC = …; // define “carbon” element ⎢ G4Material* SiO2 = …; // define “quartz” material ⎢ G4Material* H2O = …; // define “water” material
⎢ density = 0.200*g/cm3; ⎢ G4Material* aerog = new ⎢ G4Material("Aerogel", density, ncomp = 3); ⎢ aerog->AddMaterial(SiO2, 62.5*perCent); ⎢ aerog->AddMaterial(H2O , 37.4*perCent); ⎣ aerog->AddElement (elC , 0.1*perCent);
6
NIST materials database
Included in GEANT4 from
http://www.nist.gov/pml/data/index.cfm
• UI commands for material category
• Best accuracy for major parameters
• Density
• Mean excitation potential
• Chemical bonds
• Elemental composition
• Isotopic composition
• Natural isotopic compositions
• More than 3000 isotopes defined
7
Using NIST materials
No longer need to predefine everything User interfaces for C++
⎡ G4NistManager* manager = G4NistManager::GetPointer(); ⎢ G4Element* elm = manager->FindOrBuildElement("symb"); ⎢ G4Element* elm = manager->FindOrBuildElement((G4int) Z); ⎢ G4Material* mat = manager->FindOrBuildMaterial("name"); ⎢ G4Material* mat = manager->ConstructNewMaterial( ⎢ "name", ⎢ (const std::vector<G4int>&) Z, ⎢ (const std::vector<G4double>&) weight, ⎢ (G4double) density); ⎣ G4double isotopeMass = manager->GetMass((G4int) Z, (G4int) N);
New commands for UI macros (produced listings shown in this talk) /material/nist/printElement — show all defined elements /material/nist/listMaterials — show all defined materials
8
ГЕОМЕТРИЯ
9
Detector geometry
Three conceptual layers:
• G4VSolid
› shape › size
• G4LogicalVolume
› material › daughter physicals › sensitivity › user limits › etc.
•
G4VPhysicalVolume
› position › rotation
10
Соседние файлы в папке geant4