Студопедия — Определение объявленного в файле 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; просмотров: 413. Нарушение авторских прав; Мы поможем в написании вашей работы!



Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Образование соседних чисел Фрагмент: Программная задача: показать образование числа 4 и числа 3 друг из друга...

Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр...

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

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Особенности массовой коммуникации Развитие средств связи и информации привело к возникновению явления массовой коммуникации...

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