Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Модели детекторов в Geant4

Модели сцинтилляционных гамма-спектрометров, построенные по чертежам и паспортам, и проверенные против измеренных данных, а не только собранные.

Правило, которого держится репозиторий: у каждого размера есть источник, а там, где источника нет, в коде стоит слово ДОПУЩЕНИЕ. Числовые данные — выходы линий, коэффициенты ветвления, коэффициенты ослабления — не берутся из справочников по памяти, а считаются тем же Geant4, что и транспорт.

Модели

детектор кристалл геометрии проб состояние
Гамма-1С NaI(Tl) 63×63 в свинце 50 мм маринелли 1 л, «Дента», Петри, точечные 5 и 25 см проверена по 5 геометриям; расхождения локализованы в моделях сосудов, причина не найдена — отчёт
RadiaCode 101–103 CsI(Tl) 10×10×10 авторские маринелли 200 и 500 мл кривые построены и сверены; три пункта протокола не выполненыподробности

Оба прибора сверялись с кривыми ЛСРМ в маринелльной постановке и дали близкие нормировочные коэффициенты (0,858 и 0,833). Это не признак общей систематики метода: у Гамма-1С точечные геометрии показали, что модель детектора верна, а превышение принадлежит геометрии сосуда. Совпадение двух чисел, полученных в одной и той же постановке, ничего про метод не доказывает — см. оговорку в карточке RadiaCode.

Как устроен репозиторий

Геометрии проб, матрицы и библиотека разбора не принадлежат детектору: сосуд Маринелли 1 л и матрица ОИСН-16 понадобятся следующему прибору, а чтение спектров и подгонка кривой — вообще всем. Поэтому они вынесены наверх, а не лежат внутри папки прибора.

common/
  src/     каркас модели: физлист, накопление спектра, счёт испущенных квантов
  cmake/   общий шаблон сборки
  py/      библиотека разбора: becqmoni.py, contam.py, paths.py
  docs/    методика, ловушки, протокол проверок — общие для всех моделей
detectors/<прибор>/
  geometry/ macros/ drivers/ analysis/ results/ reference/ drawings/
geometries/  общие геометрии проб: маринелли, «Дента», Петри, точечная
materials/   общие матрицы проб: ОИСН-16, РИСН-379, вода
tools/       обезличивание, проверка перед публикацией, загрузчики данных
docs/        титульная страница и статья по RadiaCode

Расчётные спектры не коммитятся. Их сотни файлов и десятки мегабайт; вместо них лежат манифест прогонов и готовые кривые в results/. Чтобы взять эффективность на нужной энергии, собирать Geant4 не требуется.

Эталонные данные лежат здесь целиком. Комплект поверки Гамма-1С, кривые ЛСРМ, усреднённые фоны и паспорта эталонов — в detectors/Gamma-1S/reference/lsrm/, в двух форматах: приборном двоичном .spe и BecqMoni XML. Форматы взаимозаменяемы, это проверяется скриптом analysis/xml_vs_spe.py. Репозиторий самодостаточен: внешние источники нужны только для обновления данных.

Из спектров и паспортов убраны фамилии участников измерений и серийные номера приборов и источников. Соответствие псевдонимов подлинным значениям не публикуется. Фамилии в списках литературы сохранены — это авторы книг и методик, а не участники измерений.

Запуск

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

переменная что задаёт обязательна
GEANT4_ROOT корень Geant4 для CMake для сборки модели
G4MODELS_BUILD_<ДЕТЕКТОР> каталог расчётов одного прибора, например G4MODELS_BUILD_GAMMA_1S нет
G4MODELS_BUILD то же, когда прибор один; понимается и как корень с подкаталогами по приборам нет
G4MODELS_REF каталог со скачанными эталонными данными; без неё берётся закоммиченный набор нет
G4MODELS_MEASURED личные измерения оператора (в репозитории их нет) только для RadiaCode
SPECTRAVIBE_ROOT корень gamma-spectrum-analysis: штатные читатели форматов ЛСРМ для чтения сырых .spe
ANON_MAP карта обезличивания, вне репозитория только при публикации
cmake -S detectors/Gamma-1S/geometry -B build/Gamma-1S -G Ninja
cmake --build build/Gamma-1S

Дальше — драйверы прогонов в detectors/<прибор>/drivers/ и разбор в analysis/. Порядок и смысл каждого шага — в отчёте модели.

Перед публикацией

ANON_MAP=<карта.json> python tools/check_paths.py

Проверка ищет локальные пути, фамилии, серийные номера, почту и токены — в содержимом файлов, включая заголовки двоичных спектров, и в именах файлов. Попав в историю git, такие данные оттуда сами не исчезают. Подробности и правила обезличивания — в tools/TOOLS_INVENTORY.md.

История заморожена. Репозиторий подключён сабмодулем к стороннему проекту, и закреплённый снаружи коммит перезалив истории уничтожает — падает не у нас, а у каждого, кто клонирует потребителя. Правила и порядок правок, который из этого следует, — в common/docs/consumers.md.

Что почитать прежде, чем строить новую модель

  • common/docs/validation.md — обязательный протокол проверок. Модель без него — не модель, а картинка.
  • common/docs/pitfalls.md — ловушки, каждая из которых уже стоила ошибки в разы, с признаками и лечением.
  • common/docs/consumers.md — кто берёт репозиторий сабмодулем, что это запрещает и в каком порядке чинить остаток аудита.

Лицензия и происхождение данных

Код — MIT. Чертежи и паспорта приборов принадлежат их изготовителям и приведены в объёме, необходимом для воспроизводимости расчёта. Эталонные спектры — ЛСРМ и ЗАО НПЦ «АСПЕКТ», ссылки в отчётах моделей.

About

Модели детекторов гамма-излучения в Geant4: геометрия по чертежам и паспортам, сверка с измеренными кривыми эффективности

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages