Определение объявленного в файле DetectorConstruction.hh класса DetectorConstruction находится в файле DetectorConstruction.c
DetectorConstruction.cc Создание материалов выглядит следующим образом:
В приведённом коде создается элемент с именем Hydrogen и символом H, с атомным числом (эффективным зарядом) 1 и молярной массой 1.01 г/моль. Аналогично для углерода. Затем создается материал с именем C14H12, плотностью 1.16 г/см3, состоящий из 2-х компонент: 12-ти элементов водорода и 14-ти элемента углерода. Но есть и другой, более простой, способ задания материалов. Geant4 уже содержит базу данных по большому количеству материалов. Получить материал из этой базы можно следующим образом:
В начале всех материалов из базы Geant4 содержится префикс G4_ Геометрия системы описывается в Geant4 в виде иерархии тел. Наибольшее тело называется Мировым (World) и содержит все остальные тела геометрии. Тело содержащее в себе другие тела называется материнским. Описание тела состоит из задания его типа (параллелепипед, цилиндр, сфера,...) и размеров, материала из которого оно состоит, материнского тела и координат относительно материнского тела. Пример описания параллелепипеда: Параллелепипед с полуразмерами сторон вдоль осей X, Y и Z в 1 м. (Длина грани будет 2м)
Заполняем его материалом “G4_Galactic” (Вакуум)
И помещаем в центр координат.
Создадим мишень:
Логический объем G4LogicalVolume содержит информацию о материале и магнитных свойствах среды. В данном случае никаких магнитных свойств нет. Физический объем G4PVPlacement содержит информации о положении объекта относительно материнского, то есть World. Выше задана мишень в виде параллелепипеда с размерами 100мм*100мм*20мм, заполненная полиэтиленом, расположенная в центре Мирового объема. Функция G4ThreeVector(x, y, z) задает положение в пространстве заданного тела. Создадим объем для детектора.
Первый параметр отвечает за поворот тела относительно оси вращения. Для того чтобы детектор реагировал на пролет частиц, он должен быть назначен так называемой чувствительной областью. Для этой цели в G4LogicalVolume есть специальное поле SensitiveDetector, которое содержит указатель на объект класса G4VSensitiveDetector. Этот объект автоматически вызывается каждый раз, когда очередной шаг моделирования частицы попадает внутри данного объема. Соответствующим образом программируя класс SensitiveDetector можно получать выходные данные моделирования.
Объект SensitiveDetector должен быть зарегистрирован в G4SDManager.
Здесь SensitiveDetector сопоставляется полиэтиленовому детектору.
Стенки объекта World делаются прозрачными, чтобы не мешали на визуализации.
Чтобы закрасить цветом какой-либо объект необходимо поступить следующим образом.
Функция G4Colour(0.0, 0.0, 0.0) позволяет установить цвет. 0 0 0 соответствует черному цвету, 1 1 1, соответствует белому цвету. В конце концов успешно выполнившаяся функция Construct должна возвратить указатель на физический объем объекта World.
|