Добавил:
okley
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Моделирование (1 сем, мага) / geant4 / Geant4_2
.pdf
ВЕЩЕСТВО
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
Temperature, pressure, state, density
Do not use materials with zero density
G4_Galactic for vacuum
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
