Студопедия — Определение объявленного в файле DetectorConstruction.hh класса DetectorConstruction находится в файле DetectorConstruction.c
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Определение объявленного в файле DetectorConstruction.hh класса DetectorConstruction находится в файле DetectorConstruction.c






DetectorConstruction.cc

Создание материалов выглядит следующим образом:

G4Element* elH = new G4Element(“Hydrogen”,”H”,1,1.01*g/mole); G4Element* elC = new G4Element(“Carbon”,”C”,1,12.01*g/mole); C14H12 = new G4Material(“C14H12”,1.16*g/cm3,2); C14H12->AddElement(elC,14); C14H12->AddElement(elH,12);

В приведённом коде создается элемент с именем Hydrogen и символом H, с атомным числом (эффективным зарядом) 1 и молярной массой 1.01 г/моль. Аналогично для углерода. Затем создается материал с именем C14H12, плотностью 1.16 г/см3, состоящий из 2-х компонент: 12-ти элементов водорода и 14-ти элемента углерода.

Но есть и другой, более простой, способ задания материалов. Geant4 уже содержит базу данных по большому количеству материалов. Получить материал из этой базы можно следующим образом:

G4Material* Water = G4NistManager::Instance() -> FindOrBuildMaterial("G4_WATER");

В начале всех материалов из базы Geant4 содержится префикс G4_

Геометрия системы описывается в Geant4 в виде иерархии тел. Наибольшее тело называется Мировым (World) и содержит все остальные тела геометрии. Тело содержащее в себе другие тела называется материнским.

Описание тела состоит из задания его типа (параллелепипед, цилиндр, сфера,...) и размеров, материала из которого оно состоит, материнского тела и координат относительно материнского тела.

Пример описания параллелепипеда:

Параллелепипед с полуразмерами сторон вдоль осей X, Y и Z в 1 м. (Длина грани будет 2м)

G4Box* world = new G4Box("world", 1*m, 1*m, 1*m);

Заполняем его материалом “G4_Galactic” (Вакуум)

G4LogicalVolume* logicworld = new G4LogicalVolume(world, “G4_Galactic”, "world");

И помещаем в центр координат.

G4VPhysicalVolume* physicworld = new G4PVPlacement(0, G4ThreeVector(), logicworld, "world", 0, false, 0);

Создадим мишень:

G4Box *Tgt = new G4box(“Tgt”, 50*mm, 50*mm, 10*mm); G4LogicaVolume *logicTgt = new G4LogicaVolume(Tgt, G4NistManager::Instance() -> Find0BuildMaterial(“G4_POLYETHYLENE”),”Tgt”);G4PVPlacement *physiTgt = new G4PVPlacement(0,G4ThreeVector(0,0,0), ”Tgt”, logicworld, false, 0);

Логический объем G4LogicalVolume содержит информацию о материале и магнитных свойствах среды. В данном случае никаких магнитных свойств нет.

Физический объем G4PVPlacement содержит информации о положении объекта относительно материнского, то есть World.

Выше задана мишень в виде параллелепипеда с размерами 100мм*100мм*20мм, заполненная полиэтиленом, расположенная в центре Мирового объема.

Функция G4ThreeVector(x, y, z) задает положение в пространстве заданного тела.

Создадим объем для детектора.

G4Box *Det = new G4box(“Det”, 50*mm, 50*mm, 10*mm); G4LogicaVolume *logicDet = new G4LogicaVolume(Det, G4NistManager::Instance() -> Find0BuildMaterial(“G4_POLYETHYLENE”),” Det”); G4PVPlacement *physiDet = new G4PVPlacement(0, G4ThreeVector(0,0,0), ”Tgt”, logicworld, false, 0);

Первый параметр отвечает за поворот тела относительно оси вращения.

Для того чтобы детектор реагировал на пролет частиц, он должен быть назначен так называемой чувствительной областью. Для этой цели в G4LogicalVolume есть специальное поле SensitiveDetector, которое содержит указатель на объект класса G4VSensitiveDetector. Этот объект автоматически вызывается каждый раз, когда очередной шаг моделирования частицы попадает внутри данного объема. Соответствующим образом программируя класс SensitiveDetector можно получать выходные данные моделирования.

SensitiveDetector *detector = new SensitiveDetector(“detector”);

Объект SensitiveDetector должен быть зарегистрирован в G4SDManager.

G4SDManager* SDman = G4SDManager::GetSDMpointer(); SDman->AddNewDetector(detector);

Здесь SensitiveDetector сопоставляется полиэтиленовому детектору.

logicDet->SetSensitiveDetector(detector);

Стенки объекта World делаются прозрачными, чтобы не мешали на визуализации.

world->getLogic()->SetVisAttributes (G4VisAttributes::Invisible);

Чтобы закрасить цветом какой-либо объект необходимо поступить следующим образом.

G4VisAttributes* mycolor = new G4VisAttributes(G4Colour(0.0, 0.0, 0.0)); logicDet ->SetVisAttributes (mycolor);

Функция G4Colour(0.0, 0.0, 0.0) позволяет установить цвет.

0 0 0 соответствует черному цвету, 1 1 1, соответствует белому цвету.

В конце концов успешно выполнившаяся функция Construct должна возвратить указатель на физический объем объекта World.

return world->getPhysic(); }

 







Дата добавления: 2015-08-11; просмотров: 415. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Сравнительно-исторический метод в языкознании сравнительно-исторический метод в языкознании является одним из основных и представляет собой совокупность приёмов...

Концептуальные модели труда учителя В отечественной литературе существует несколько подходов к пониманию профессиональной деятельности учителя, которые, дополняя друг друга, расширяют психологическое представление об эффективности профессионального труда учителя...

Конституционно-правовые нормы, их особенности и виды Характеристика отрасли права немыслима без уяснения особенностей составляющих ее норм...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

Основные симптомы при заболеваниях органов кровообращения При болезнях органов кровообращения больные могут предъявлять различные жалобы: боли в области сердца и за грудиной, одышка, сердцебиение, перебои в сердце, удушье, отеки, цианоз головная боль, увеличение печени, слабость...

Вопрос 1. Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации Коллективные средства защиты: вентиляция, освещение, защита от шума и вибрации К коллективным средствам защиты относятся: вентиляция, отопление, освещение, защита от шума и вибрации...

Studopedia.info - Студопедия - 2014-2024 год . (0.024 сек.) русская версия | украинская версия