Oprogramowanie w eksperymentach fizyki Wykład nr 2, Paweł Staszel
2 Rekonstrukcja danych Podstawowym narzędziem rekonstrukcji/analizy danych jest BRAT (BRahms Analysis Toolkit) – framework bazujący na root-cie. Kontrola i rozwój BRATA odbywa się przez CVS co uzmożliwia rozbudowę oprogramowania w sposób skoordynowany przez kilka grup z ośrodków rozrzuconych po całym świecie. Konwencja: nazwy wszystkich klas BRATa mają przedrostek “Br” (w root-cie jest to “T”)
3 1. Obiekty (klasy) danych 2. Kontenery danych (data containers) 3. Moduły – obiekty operujące na danych 4. Kontenery modułów (module containers) 5. Konstruowanie programów (rekonstrukcja śladów) używając modułów → klasa typy singleton: MainModule 6. Struktura programu głównego: bratmain Outline
4 BRAT data – w tym katalogu znajduja się klasy, które definiują strukturę danych raw – dane “mapowane” odpowiadające danemu detektorowi (BrBbDig.h,BrSiDig.h, BrDcDig.h, BrTpcDig.h,BrTofDig.h >przykład BrDcDig.h) W czasie zbierania danych na dysk zapisywane są dane typu „raw disk”. Mapowanie odbywa of-line przy użyciu interfejsu do “raw disk data” (BrRawDataInput), na podstawie informacji z pliku defaultmap.txt. Dzięki temu, że defaultmap.txt zawiera całą informacje o połączeniach sygnałowych detektora z elektroniką Front-End i przetwornikami (ADC/TDC/QDC). Dane typu raw (raw data) odzwierciedlają strukturę detektora (patrz przykład)
5 BRAT data (raw) BrDcDig:
6 Mapowanie: defaultmap.txt (T3)
7 Komory dryfowe (DC):
8 BRAT data (raw) BrTofDig:
9
10 Mapping: defaultmap.txt (Tofw)
11 BRAT data rdo – dane wyższego poziomu (w stosunku do raw mapped). Czesto przechowują informację podstawową ale zawierają również informacje fizyczną jak np. punkt przejścia (hit) cząstki przez ustaloną plaszczyznę detektora, czas przelotu cząstki od werteksu zdarzenia (kolizji) do detektora. Ta dodatkowa informacja fizyczna jest uzyskiwana na podstawie kalibracji detektorów. (BrBbRdo.h,BrSiRdo.h, BrDcRdo.h, BrTpcRdo.h,BrTofRdo.h ) przykład: TOF: mierzymy czas dla hitów “top” (t T ) i “bottom” (t B ). Różnica pomiędzy t B i t T (t B -t T ) jest proporcjonalna do wertykalnej lokalizaji hitu na TOF slat: y = V*(t B -t T ) + offset V (przędkość światła w scyntylatorze) oraz offset nazywamy parametrami kalibracyjnymi (calibration parameters)
12 Kalibracja detektorów TOF
13 Kalibracja detektorów TOF, c.d.
14 Kalibracja detektorów TOF, c.d.
15 BRAT data (calib) calib – dane kalibracyjne. Nie dziedziczą z BrDataObject. Informacja przechowywana jest w bazie danych (mysql). Dane kalibracyjne zapisywane są do bazy danych podczas procesu kalibracji. Podczas rekonstrukcji są odczytywane z bazy danych i pozwalają na przejście z poziomu raw do poziomy rdo (run# → db info). Z reguły wyliczane są dla każdego run-u lub rzadziej, w zależności od tego jak dany parametr zmienia się w czasie. BrDcCalibration: BrTofCalibration
16 BrTofRdo
17 BRAT data (rekonstrukcja śladów - tracking) track – dane wejściowe do “trakowania” (również z poziomu rdo), reprezentujące hity w detektorze (TPC, DC) Dane będące wynikiem rekonstrukcji śladów to: ślady lokalne, ślady kombinowane, ślady globalne (BrSpectrometerTracks). klasa bazowa: BrDetectorHit
18 BrDCHit
19 Schemat wyjaśniający strukturę BrDcHit: anody katody sygnały z detektora (hity) padająca cząstka X1 X2 X3
20 Klasy do przechowywania lokalnych śladów cząstek: BrDetectorTracks
21 Klasy do przechowywania kombinowanych i globalnych śladów cząstek: BrSpektrometerTracks BrMatchedTrack
22 T1 T2 T3 T4 D2 D3 D4 T5 D5 RICH H2 MatchedTrack T3_T4
23 Łączenie (matching) śladów przez magnes dipolowy Dang – definicja podana na rysunku dy – różnica w pozycji y na środkowej płaszczyżnie (= y 2 – y 1 ) daly – różnica w kącie nachylenia wertykalnego (y-slope) (= angy 2 – angy 1 )
24 Rozkłady zmiennych dang, dy, daly
25 Klasy do przechowywania śladów globalnych : BrMrsTrack, BrFfsTrack, BrBfsTrack, BrFsTrack. Wszystkie te klasy dziedziczą z BrGlbTrack
26 BrFfsTrack:
27 Następny wykład: “Kontenery danych” (Data Containers) abc – kontenery danych: klasy do kompleksowego przechowywania danych (dla całego zdarzenia, tzn. wszystkich układów detektora) Dla każdego poziomu danych (raw, rdo, ltr, gtr) używany jest ten sam kontener (w sensie typu (klasy)). Zmienia się tylko typ przechowywanych obiektów (hity, ślady, itd.) BrDataTable, BrEventNode, BrEvent.
28 TobjArray: void objArr->Add(TObject* obj); TObject* obj = objArr->At(i); //pobieranie obiektu z i-tej pozycji
29 BRAT data containers abc – “kontenery” do przechowywania danych: BrDataTable, BrEventNode, BrEvent. BrEvent: BrEventHeader:
30 BrEventNode:
31 BrEventNode – główne funkcje
32 BrDataTable:
33 Używanie kontenerów w programie: (BrBfsTrackingModule)
34 Używanie kontenerów w programie (c.d.): (BrBfsTrackingModule)
35 BRAT moduły brat/modules –