Developing #70

BeamDet совершенствования

Added by Vitaliy Schetinin over 7 years ago. Updated over 6 years ago.

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).

treeviewer.C Magnifier (2.69 KB) Mikhail Kozlov, 09/13/2017 04:15 PM

listing.txt Magnifier (1.14 KB) Mikhail Kozlov, 10/03/2017 05:07 PM

BeamDetParts.xlsx (13.2 KB) Sergey Belogurov, 10/19/2017 01:05 PM

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

В симуляции с новой геометрией детектора теряются поинты при прохождении через 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

А какую структуру лучше сделать для листинга и нужны ли еще какие-то данные? На данный момент выводится то, что в файле.

#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

Сделайте, пожалуйста, краткую инструкцию для пользователя. Допустим, я добавил новую строку в 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 Закрыта

Also available in: Atom PDF