24 Декабря 2010 CMD

advertisement
???­???­?????????
CMD-3 collaboration meeting, 2010
Fedor Ignatov
Чтобы запустить обработку записанных данных
24 Декабря 2010
CMD-3 Collaboration
Чтобы запустить обработку записанных данных
1) Скопировать к себе конфигурационные файлы
2) Настроить переменные окружения
3) Запустить обработку
4) Запустить скрипт который построит нужные гистограммы
24 Декабря 2010
CMD-3 Collaboration
Чтобы запустить обработку записанных данных
24 Декабря 2010
CMD-3 Collaboration
Как это устроенно сейчас
Централизованно запускается обработка сырых событий и набор гистограмм
с дефолтной конфигурацией и стандартным скриптом
через батчевую систему (condor)
На выходе ROOT-овские файлы с обработанными коллекциями и гистограммами:
/storeA/daqdata/online/processing/run08749.root
/storeA/daqdata/online/processing/hists/run08749.root
24 Декабря 2010
CMD-3 Collaboration
Как это устроенно сейчас
Ради экономии дискового места, события фильтруются и пишутся только
высоко-уровненные коллекции данных
// at least 1 with rho<3 cm && nhits>=5 && theta>0.9 && theta<pi-0.9
// OR total energy in all calorimets > 500 MeV
Number of collections = 14
List of keys:
'bgo_alone_crystals'
'bgo_clusters'
'csi_clusters'
'csi_crystals'
'dc_tracks'
'dc_verticies'
'lxe_clusters'
'lxe_s_tracks'
'lxe_towers_clusters'
'lxe_towers_hits'
'trg_decision'
'trg_time'
'zc_sectors'
'zcsector_clbr_hits'
24 Декабря 2010
Кластеры, треки, вершины ...
CMD-3 Collaboration
Как это устроенно сейчас
Ради экономии дискового места, события фильтруются и пишутся только
высоко-уровневые коллекции данных
Все подряд писать
мы не можем:
За архивированный
сырой файл:
513 МБ
Обработанный
файл
:
315 МБ
Отписанные все
коллекции
:
3345 МБ
24 Декабря 2010
13668896109 *Br 0 :cmd3::CmdMap<string,cmd3::CmdCollection*> : File Size = 3502052252 *
6917120104 *Br 37 :vector<cmd3::CmdVector<cmd3::CmdVector<cmd3::CmdLXeStripHit>>> : File Size = 1254091827 *
1144461734 *Br 27 :list<cmd3::CmdRawHit> : File Size = 209114788 *
1022725789 *Br 17 :list<cmd3::CmdDCEClbrWireHit*> : File Size = 634205507 *
912326768 *Br 33 :vector<cmd3::CmdVector<cmd3::CmdVector<cmd3::CmdLXeStripCluster>> :File Size = 192280190 *
787718566 *Br 19 :list<cmd3::CmdRawHit> : File Size = 141354087 *
456638734 *Br 51 :vector<cmd3::CmdZCOuterCluster> : File Size = 101418845 *
315029710 *Br 35 :vector<cmd3::CmdVector<cmd3::CmdVector<cmd3::CmdLXeStripCluster>>>File Size = 42854359 *
292366660 *Br 29 :vector<cmd3::CmdLXeTrack> : File Size = 125825564 *
226012478 *Br 59 :vector<cmd3::CmdZCStripHit> : File Size = 52790010 *
166613572 *Br 61 :list<cmd3::CmdRawHit> : File Size = 32830190 *
138261396 *Br 41 :vector<cmd3::CmdLXeTowerHit> : File Size = 40855813 *
119670197 *Br 7 :list<cmd3::CmdBGOCluster*> : File Size = 53614344 *
118699305 *Br 21 :list<cmd3::CmdDCTrack*> : File Size = 80435342 *
77404270 *Br 31 :vector<cmd3::CmdLXeTrack> : File Size = 31722591 *
76637320 *Br 25 :vector<cmd3::CmdLXeCluster> : File Size = 24459151 *
75356412 *Br 9 :list<cmd3::CmdRawHit> : File Size = 13771687 *
54752228 *Br 53 :vector<cmd3::CmdZCOuterSector> : File Size = 14797836 *
53495269 *Br 39 :vector<cmd3::CmdLXeTowerCluster> : File Size = 13555684 *
43014788 *Br 57 :list<cmd3::CmdRawHit> : File Size = 8956917 *
40740789 *Br 5 :list<cmd3::CmdBGOAloneCrystal*> : File Size = 9507793 *
34869724 *Br 11 :vector<cmd3::CmdCsICluster> : File Size = 9865150 *
30899452 *Br 55 :vector<cmd3::CmdZCSectorHit> : File Size = 8405397 *
26300768 *Br 1 :eventHeader_ : File Size = 2282162 *
18728934 *Br 13 :vector<cmd3::CmdCsICrystal> : File Size = 6570319 *
17637656 *Br 23 :list<cmd3::CmdDCVertex*> : File Size = 9520642 *
10679818 *Br 45 :list<cmd3::CmdRawHit> : File Size = 1828828 *
8961295 *Br 43 :vector<cmd3::CmdMuClbrHit> : File Size = 2155015 *
8888020 *Br 15 :list<cmd3::CmdRawHit> : File Size = 2044055 *
6451501 *Br 47 :value_ : File Size = 631207 *
3478778 *Br 1 :vector<cmd3::CmdAnTClbrHit> : File Size = 388755 *
3477946 *Br 3 :list<cmd3::CmdRawHit> : File Size = 387561 *
1983792 *Br 49 :value_ : File Size = 430822 *
CMD-3 Collaboration
Возможные дополнительные варианты
Можно реализовать еще одну прослойку данных
Еще один уровень данных
AOD (analysis object data)
Упрощенное описание треков, вершин, кластеров ....
Сделать обобщенный аналог collev и других герасимов KMD-2
24 Декабря 2010
CMD-3 Collaboration
Как это устроенно сейчас(замечание)
Не надо путать процедуру обработки и анализа данных с ситуацией на КМД-2
После обработки информация писалась в банки ZEBRA (который еще надо суметь
прочитать). И перегонялась в пользовательский ntuple для дальнейшей обработки.
Сейчас данные сохраняются в tree — это уже ntuple.
24 Декабря 2010
CMD-3 Collaboration
Как надо сделать ( сохранение CmdEvent )
Недочет нашей текущей Event model:
CmdEvent сохраняется в unsplit виде (нельзя воспользоваться просто Ttree::Draw() ) —
просто так на данные не посмотреть — чтобы нарисовать какую нибудь примитивную
вещь надо потратить минимум минут 5-10 на написание скрипта.
Было бы очень удобно если бы коллекции в CmdEvent сразу же сохранялись по разным
бранчам
Возможно сейчас хватит просто включит split режим (с предыдущей версией ROOT наш
CmdEvent в таком режиме не мог сохранится).
И/Или надо добавить нужный функционал в модули записи-чтения.
И надо навести порядок в классах данных:
Сейчас в данных часто пишется всякий мусор — данные которые уже не используются,
либо которые обычно не нужны, либо пишется информация которую надо еще
переработать чтобы получить необходимую информацию, например:
DC track информация хранится о абстрактно первой точки на треке и чтобы получить
параметры из пучка надо сделать лишние телодвижения:
Для LXe раньше чтобы получить
точку конверсии надо было вообще
double xfp, yfp, zfp;
DCtrack->GetFPT(xfp, yfp, zfp);
запустить чуть ли не обработку.
bool inv = xfp*xfp+yfp*yfp>15*15; // invert track if the first point is far away from IP
double k,phi,Z0,ctg,rho,t0;
double xpca,ypca;
DCtrack->TrkParams(0,0,inv,k, phi, rho, ctg,xpca,ypca, Z0, t0);
double g = sqrt(1 + ctg*ctg);
double p_trk = fabs(vlight*Bfield/k*g);
24 Декабря 2010
У кластеров не везде задействован
функционал базового кластера
CMD-3 Collaboration
Как надо сделать ( сохранение CmdEvent )
24 Декабря 2010
CMD-3 Collaboration
Способы обработки
1) Написать свой модуль во фреймворк
Плюсы: доступны все коллекции из обработки
Минусы: если захотите поменять что-нибудь в ваших выходных данных - то надо
пере обрабатывать все (один заход ~ 1 часа)
2) Написать ROOT-скрипт на уже обработанные данные
Плюсы: Можно быстро пере набрать ваши выходные данные(один заход ~ пару
минут), удобно для разработки
Минусы: Не доступны все коллекции, нужно хранить промежуточные данные (по
крайне мере для вас промежуточные)
С точки зрения написания кода 1) и 2) способы эквивалентны
3) Использовать на прямую обработанный файл — через TTree::Draw (пока не работает)
Плюсы: очень быстро и просто можно посмотреть какие нибудь распределения
Минусы: нельзя построить что-то сложное -> надо все равно писать свой скрипт
4) Взять студента или попросить коллегу
Плюсы: Очень просто получить результат
Минусы: Время получение результата неопределенно
24 Декабря 2010
CMD-3 Collaboration
Как я делаю анализ
( на данный момент по тем или иным причинам мне так удобнее)
Для калибровок:
В модулях отписываются ntuple- с выжимками по хитам,
которые потом обрабатываются ROOT - скриптами.
Какие то простые вещи:
Перегоняю отписанные коллекции в другой файл со
split и использую TTree::Draw()
Для более сложного анализа:
1) В качестве входных данных беру централизованную
обработку.(изменения в данных нужны редко)
2) Скриптом перегоняю в очень сжатый ntuple.
(EsSD Event Super short description)(переодически что
то добавляю, что то меняю)
3) И уже по ним очень быстро делаю отборы и строю
гистограммы (результат нужен очень быстро)
24 Декабря 2010
struct Event2{
vector<TLorentzVector> lxe;
vector<TLorentzVector> csi;
vector<TLorentzVector> dc;
vector<TVector3> dcvtx;
vector<double> dcchi2;
vector<int> dcch;
vector<int> dcnhits;
vector<TVector3> dconlxe;
vector<TVector3> vtx;
vector<vector<int > > vtxid;
int event;
} edata2;
CMD-3 Collaboration
Download