Developing #70
BeamDet совершенствования
Status: | Закрыта | Start date: | 08/09/2017 | |
---|---|---|---|---|
Priority: | Низкий | Due date: | ||
Assignee: | Mikhail Kozlov | % Done: | 0% | |
Category: | BeamDet | |||
Target version: | v-0.4 |
Description
1) Разобраться что за события когда
а) вообще ничего не пишется в файл (например на 2000 запусков записано
1914 событий)
б) события, когда наблюдается большая разница между восстановлением и
Монте Карло данными по координатам и импульсам.
2) модифицировать задание геометрии, чтобы удобные для
внутри-рутовского описания параметры считались автоматически из
заданных пользователем "естественных" параметров (расстояние от центра
мишени). Параметры геометрии должны задаваться из макроса симуляции. В случае BeamDet возможно придется отказаться от создания геометрии в макросе и версионирования, и создавать ее в классе симуляции. Такого примера пока нет. Нужно просто код создания BeamDet перенести в ERBeamDetSetup, который вызывать из ERBeamDet::ConstructGeometry(), который сейчас для него вызывается на уровне ERDetector::ConstructGeometry. Возможно такой подход будет принят в итоге для всех детекторов. Так как у нас количество версий геометрии может рости комбинаторно.
Геометрия должна создаваться статической функцией ERBeamDetSetup::ConstructGeometry(параметры геометрии). (! На данный момент инстанса ERBeamDetSetup не существует - аккуратно).
3) Центр (а не край мишени) в нуле по Z!
4) MWPC устроен так.
Перпендикулярные пучку стенки из каптона 12.5 микрон на расстоянии 82 мм
друг от друга.
Между стенками - газ CF4, снаружи от каптоновых стенок вакуум.
В середине газового объема расположена сборка из 2-х MWPC.
Катоды (параллельны стенкам) из 5 мкм сплошного алюминия (там пленка
алюминий на полимере, но нет нужды точно описывать сейчас).
Последовательность в направлении пучка такая.
Алюминий 5 мкм, газ 6 мм, алюминий 5 мкм, газ 4мм, Алюм 5 мкм, газ 6мм,
Алюм 5 мкм.
В серединах зазоров 6 мм расположены проволочки. В одном зазоре
вертикальные, в другом горизонтальные. Где какие -пока что не важно.
Газ разбит на активные вытянутые объемы так, что в центре каждого
активного объема газа - проволочка из вольфрама.
5) Сделать инструмент для листинга основных параметров > геометрии (
имена, материалы, толщины, размеры). Нужно написать это в функцию ERBeamDetSetup->Print() и ERBeamDetSetup->PrintToFile(file). Эта функция будет в итоге делать листинг не только параметров геометрии, но и параметров калибровки, шумов и прочего. То есть всего, что на самом деле описывает Setup. Нужно уметь эту функцию вызывать в макросе после run->Init() вне зависимости от того, что это за ран менеджер(Sim, Ana, Online).
History
#1 Updated by Mikhail Kozlov over 7 years ago
Каким образом лучше задать тогда "естественную" параметризацию для MWPC с обновленной геометрией? Какие конкретно параметры нужны относительно нуля?
#2 Updated by Sergey Belogurov over 7 years ago
От центра мишени до центра каждой сборки из 2-х MWPC (X&Y), от центра мишени до центра каждой из двух пластин ТОФ
#3 Updated by Mikhail Kozlov over 7 years ago
Новую геометрию я залил, только не нашел CF4 газ и вольфрам в media.geo, соответственно проволочки тоже не добавил. Какая толщина у проволочек?
Еще вопрос, что должно быть вокруг всей сборки MWPC, т.е какая оболочка? Сейчас аллюмний и каптон только перпендикулярно оси Z расположены.
#4 Updated by Sergey Belogurov over 7 years ago
диаметр проволочек 20 микрон. Материалы введите сами в media.geo
#5 Updated by Vitaliy Schetinin over 7 years ago
Оговорили даполнительно, что необходимо создать текстовый файл - база данных для BeamDet, в которой держать все типы Tof и все типы MWPC которые есть в лаборатории.
Примерный интерфейс для задания Setup в макросе симуляции:
ERBeamDetSetup setup = new ERBeamDetSetup(Xglobal, Yglobal, Zglobal); setup->AddMWPC(Type1, Z); setup->AddMWPC(Type2, Z2); setup->AddTof(Type1,Z); setup->AddTof(Type2,Z);
#6 Updated by Mikhail Kozlov over 7 years ago
Пока что представляю себе такой черновой вариант XML-файла:
Какие замечания? Хочется сначала определиться с приемлимой структурой, прежде чем к ней DTD писать.
#7 Updated by Sergey Belogurov over 7 years ago
Не вполне понятна роль xml файла. У нас есть парамеризованное описание тоф и проволочных камер. Дальше идея в том, что бы пользователь осознанно либо борал детектор "с полки" т.е. подгружал разрешенный и где-то надежно лежащий набор параметров, либо, если он изучает варианты модификации детектора, просто менял параметры в имеющемся описании в макросе геометрии. Или я не правильно понимаю общую задачу? Пока что мне кажется, что появление xml файла падает жертвой бритвы Оккама.
#8 Updated by Vitaliy Schetinin over 7 years ago
"где-то надежно лежащий набор параметров" - основной вопрос, что для этого использовать. XML файл как упрощенная база данных таких параметров мне очень нравится.
#9 Updated by Vitaliy Schetinin over 7 years ago
По итогам многочасовой дискуссии утвердили xml. С шаблоном в Excel
#10 Updated by Mikhail Kozlov over 7 years ago
Многочасовая дискуссия, ничего себе)
Не понял, что из себя должен представлять шаблон в Exсel, какой механизм будем использовать. В нем должны быть все данные, которые потом преобразовываются в xml? Или только структура?
#11 Updated by Vitaliy Schetinin over 7 years ago
Там по идее должны быть механизмы преобразования таблички в xml файл. Нужно поизучать подробнее. Шаблон - просто excel файл отоброжающий текущее состояние xml.
#12 Updated by Sergey Belogurov over 7 years ago
По правде говоря, дискуссия длилась 48 минут, но включала в себя много экранов в скайп. Смысл в том, что человеку, ответственный за детекторы удобно вносить информацию в табличку, а для программирования удобнее xml. Excel умеет преобразовывать как-то одно в другое. http://www.excel-easy.com/examples/xml.html Хочется этим воспользоваться.
#13 Updated by Mikhail Kozlov over 7 years ago
- File treeviewer.C added
В симуляции с новой геометрией детектора теряются поинты при прохождении через MWPC.
Файлы залил в репозиторий. Макрос запускал BeamDet_full.C
#14 Updated by Vitaliy Schetinin over 7 years ago
1) У меня full макрос отвалился на инициализации задачи трекинга. Посмотри все ли попало в репозитрий.
2) Я редуцировал full макрос до симуляции. Вижу что поинты в MWPC есть. Нет поинтов, если накладыват условия вида:
{
TFile* f = new TFile("sim.root");
TTree* t = (TTree*)f->Get("cbmsim");
t->Draw("BeamDetMWPCPoint.fELoss","BeamDetMWPCPoint.fPlaneNb == 2 && BeamDetMWPCPoint.fMWPCNb == 2 && BeamDetMWPCPoint.fPid > 3000");
}
3) Проверил структуру геометрии. Она такая:
В ней есть некоторый промежуточный объем MWPC_vol
А для поинта информацию о геометри читаем так:
gMC->CurrentVolOffID(0, fMWPCWireNb);
gMC->CurrentVolOffID(1, fMWPCPlaneNb);
gMC->CurrentVolOffID(2, fMWPCNb);
То есть в fMWPCNb попадает не номер MWPC, а номер объема MWPC_vol
Поменял на
gMC->CurrentVolOffID(0, fMWPCWireNb);
gMC->CurrentVolOffID(1, fMWPCPlaneNb);
gMC->CurrentVolOffID(3, fMWPCNb);
И поинты появились.
К сожалению, симуляция всегда будет заточена на иерархию геометрии. Поэтому нужно за этим следить.
4. Смутила картинка:
Это нормально, что ион перед мишенью так активно что-то ионизирует? Тут видимо как раз очень актуально уметь задавать разные каты для разных частей геометрии. Но этого пока не умеем.
#15 Updated by Mikhail Kozlov over 7 years ago
У меня ноут капризничает. Сначала отказался заряжаться и теперь не включается, поэтому проблему с парсером пока что не удалось разрешить.
Из того, что лежит в репозитории сейчас, можно понять суть проблемы с узлами, только две строки надо раскомментить:
163. //ParseXmlParameters();
332. //domParser->SetValidate(false); // do not validate with DTD
#16 Updated by Mikhail Kozlov over 7 years ago
Все, с ноутом теперь порядок.
Сейчас обратил внимание на макроподстановку ClassImp(FairModule) в конце описания классов. В документации написано, что она "необходима для добавления реализации служебных методов". Почему в классе симуляции ProcessHits() после нее описывается?
#17 Updated by Mikhail Kozlov over 7 years ago
Сейчас залил в репозиторий вариант создания геометрии в симуляции без .root файла. Почему-то на Event0 симуляция виснет.
#18 Updated by Sergey Belogurov over 7 years ago
По поводу ионизации между второй MWPC и мишенью. Жеьлая борода - это дельтаэлеткроны с пробегом больше ката. Такое бывает в газе или в воздухе. В вакууме не бывает. Там, где на картинке борода - должен быть вакуум. Миша, проверьте плз геометрию. Кроме того, подобнач борода должна наблюдаться в газе MWPC - посмотрите есть ли.
#19 Updated by Mikhail Kozlov over 7 years ago
В том месте, где борода, у нас газ.
Между каптоновыми окнами (расстояние 82мм) все заполнено газом.
Между X и Y проволочками 10мм, они расположены симметрично относительно центра большого газового объема, соответственно после последнего массива проволочек еще около 4см газа.
#20 Updated by Sergey Belogurov over 7 years ago
Борода далжна быть везде, где газ. два отрезка по 8 см (в каждой из двух MWPC между каптоновыми окнами). Чем в имеющейся конфигурации характернео то место, где видна борода? Чем оно отлдичается от остальных мест с газом?
#21 Updated by Mikhail Kozlov over 7 years ago
Все в порядке, с корректными номерами объемов по иерархии дельтаэлектроны есть во всём газе.
#22 Updated by Mikhail Kozlov about 7 years ago
Парсер теперь работает.
Нужно с интерфейсами разобраться. Могут ли в одной симуляции быть разные типы MWPC и ToF?
ERBeamDetSetup setup = new ERBeamDetSetup(Xglobal, Yglobal, Zglobal); setup->AddMWPC(Type1, Z); setup->AddMWPC(Type2, Z2); setup->AddTof(Type1,Z); setup->AddTof(Type2,Z);
#23 Updated by Vitaliy Schetinin about 7 years ago
Я считаю, что нет смысла вводить такое ограничение. Приведенный пример синтаксиса мне нравится
#24 Updated by Sergey Belogurov about 7 years ago
Да, разные типы возможны.
#25 Updated by Mikhail Kozlov about 7 years ago
- File listing.txt added
А какую структуру лучше сделать для листинга и нужны ли еще какие-то данные? На данный момент выводится то, что в файле.
#26 Updated by Sergey Belogurov about 7 years ago
Если это просто - добавьте виндусовский перевод строки. По геометрии данных достаточно. Дальше по ходу работы поймем, что добавить .
#27 Updated by Mikhail Kozlov about 7 years ago
Добавил XML файл в репозиторий https://github.com/ExpertRootGroup/er/tree/beamdet/db/BeamDet .
Там две страницы пока что: одна под MWPC, другая под ToF. Каждая строка таблицы - новый тип MWPC или ToF.
#28 Updated by Sergey Belogurov about 7 years ago
- File BeamDetParts.xlsx added
Сделайте, пожалуйста, краткую инструкцию для пользователя. Допустим, я добавил новую строку в exel (прилагается). Как теперь сгенерировать xml?
#29 Updated by Mikhail Kozlov about 7 years ago
Нужно просто через пункт меню "Сохранить как" выбрать формат XML.
Чтобы потом редактировать данные XML-файла самого, нужно открыть .xlsx-файл, нажать правой кнопкой мыши на таблицу в контектном меню через "XML"->"Импорт" выбрать xml-файл. В инструкции напишу подробно.
#30 Updated by Mikhail Kozlov over 6 years ago
- Status changed from Открыта to Закрыта