Oprogramowanie w eksperymentach fizyki Wykład 3, Paweł Staszel.

Slides:



Advertisements
Podobne prezentacje
C++ wykład 2 ( ) Klasy i obiekty.
Advertisements

C++ wykład 4 ( ) Przeciążanie operatorów.
Programowanie obiektowe
Standardowa biblioteka języka C++
Jarosław Kuchta Dokumentacja i Jakość Oprogramowania
PROGRAMOWANIE STRUKTURALNE
Elementarne struktury danych Piotr Prokopowicz
Komponenty bazy danych Baza danych Jest to uporządkowany zbiór powiązanych ze sobą danych charakterystycznych dla pewnej klasy obiektów lub zdarzeń,
ODE Triggery. Wstęp n Triggery są trójką zdarzenie-warunek-akcja (event-condition- action). n Zdarzenia mogą być proste lub złożone, co zostanie omówione.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Podstawy informatyki Powtórka Grupa: 1A Prowadzący: Grzegorz Smyk
Marcin Kujawa Michał Łobarzewski
Struktury.
Dziedziczenie i jego rodzaje
C++ wykład 2 ( ) Klasy i obiekty.
Zasady zaliczenia Warunki uzyskania zaliczenia:
Wykład 1: Wskaźniki Podstawy programowania Programowanie w C
Języki programowania obiektowego
Projektowanie i programowanie obiektowe II - Wykład IV
Projektowanie i programowanie obiektowe II - Wykład II
Semafory według normy POSIX
Techniki i języki programowania
Podstawy programowania II
Zbiór do posortowania mieści się w pamięci
Instytut Tele- i Radiotechniczny WARSZAWA
Podstawy programowania
Informatyka I Wykład 10 WSKAŹNIKI I ADRESY Jerzy F. Kotowski.
T: Różnice pomiędzy programowaniem strukturalnym a obiektowym
Programowanie obiektowe III rok EiT
Programowanie obiektowe III rok EiT
WPROWADZENIE W ŚWIAT OBIEKTÓW
Dziedziczenie Maciek Mięczakowski
Systemy wejścia i wyjścia Michał Wrona. Co to jest system wejścia i wyjścia? Pobierania informacji ze źródeł danych, zdolnych przesyłać sekwencje bajtów,
Wzorce slajdów, animacje, różne orientacje slajdów
Programowanie obiektowe Wykład 3 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Dariusz Wardowski.
Programowanie obiektowe Wykład 6 dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Dariusz Wardowski.
Projektowanie obiektowe
Języki i środowiska programowania systemów rozproszonych, Wykład 05, Slajd Języki i środowiska programowania systemów rozproszonych Wykładowca:
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Wybrane zagadnienia relacyjnych baz danych
Podstawy informatyki 2013/2014
Użytkowanie i programowanie Matlaba
Programowanie obiektowe 2013/2014
Kurs języka C++ – wykład 13 ( )
Kurs języka C++ – wykład 3 ( )
Kurs języka C++ – wykład 9 ( )
Programowanie w języku C++
Programowanie strukturalne i obiektowe C++
Model obiektowy bazy danych
System plików.
Kurs języka C++ – wykład 4 ( )
Oprogramowanie w eksperymentach fizyki Wykład nr 2, Paweł Staszel.
Projektowanie obiektowe. Przykład: Punktem wyjścia w obiektowym tworzeniu systemu informacyjnego jest zawsze pewien model biznesowy. Przykład: Diagram.
Oprogramowanie w eksperymentach fizyki Opracował Paweł Staszel.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Programowanie Zaawansowane
Zestaw pytań nr. 3 Typy generyczne Wyjątki OPRACOWALI: JAKUB GRYCZEWSKIKINGA ROSA DANIEL KAPTEJNYWOJCIECH ŁĘCZYCKI
Dziedziczenie Wykład 7 Dziedziczenie sekwencyjne
PO13-1 / 19 Wykład 13 Wyjątki i ich zgłaszanie Wyłapywanie wyjątków Obsługa wyjątków Wykorzystanie polimorfizmu Filtrowanie wyjątków Błędy w konstruktorach.
ASP.NET Dostęp do bazy danych z poziomu kodu Elżbieta Mrówka-Matejewska.
Zarządzanie stanem w aplikacjach ASP.NET Elżbieta Mrówka-Matejewska
K URS JĘZYKA C++ – WYKŁAD 3 ( ) Przenoszenie Składowe statyczne Funkcje wbudowane Argumenty domyślne.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Programowanie Obiektowe – Wykład 6
Listy.
(według:
Programowanie Obiektowe – Wykład 2
Kurs języka C++ – wykład 4 ( )
Zapis prezentacji:

Oprogramowanie w eksperymentach fizyki Wykład 3, Paweł Staszel

2 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 Plan

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

4 Kolekcje (Collections) Kolekcja to grupa odnoszących się do siebie obiektów – zadanie kolekcji to ułatwienie operowania na wielu elementach (obiektach). 1. W ROOT-cie kolekcje to polimorficzne kontenery grupujące wskaźniki to typu TObject, oznacza to, że: 2. → mogą przechowywać obiekty dziedziczące z TObject → zwracają wskaźniki do typu TObject, który następnie jest rzutowany (cast) na właściwy podtyp (klasy pochodnej). 2. Kolekcje są dynamiczne: jeśli to konieczne mogą zwiększać swój rozmiar 3. Kolekcje są potomkami (dziedziczą z) TObject, dlatego same mogą być składowymi elementami kolekcji. → daje to możliwość zagnieżdzania kolekcji danego typu w kolekcji innego (dowolnego) typy do dowolnego poziomu, → uzyskujemu struktury o wymaganym stopniu złożoności.

5 Kolekcje, c.d. 4. Kolekcje nie władają obiektami – przechowują jedynie wskaźniki do obiektów. Ten obiekt może być elementem wielu kolekcji. 5. Jeżeli usuwamy (delete) kolekcje, obiekty nie są usuwane. W takich przypadkach można “zmusić” kolekcje do usunięcia należące do niej obiekty aby np. uniknąć wycieku pamięci. 6. kontenery mogą przechowywać heterogeniczne kolekcje obiektów → za prawidłowe rzutowanie obiektów typu TObject na odpowiedni typ pochodny odpowiada użytkownik (czyli programista). 7. Kolekcje uporządkowane (Ordered Collections, Sequences) – pozwalają na przechowywanie obiektów (wskaźników) w porządku zgodnym z kolejnością dodania ich do kolekcji.

6 Schemat dziedziczenia kolekcji w ROOT-cie

7 TobjArray: kolekcja, która wspiera tradycyjną semantykę wektorową poprzez przeładowanie operator[]. Do poszczególnych elementów możemy odnosić się używając indeksu. void objArr->Add(TObject* obj); TObject* obj = objArr->At(i); //pobieranie obiektu z i-tej pozycji

8 Wykonywanie pętli (looping) po sekwencjach Określenie typu (klasy) przechowywanego obiektu: Metoda iteracji (looping) z wykorzystaniem klasy TIter:

9 Kontenery używanie w BRAT-ie BRAT data containers) abc – “kontenery” do przechowywania danych: BrDataTable, BrEventNode, BrEvent. BrEvent: BrEventHeader:

10 BrEventNode:

11 BrEventNode – główne funkcje

12 BrDataTable:

13 Uwaga: ekstra zadanie na dzisiejsze ćwiczenia 1. skompilować własną wersję banapp-a (--prefix=/home/student_oef/ ImieNazwisko/install) 2. w../banapp/corrections/efficiency/EfficiencyFinderModule.cxx odnaleźć funkcję Event(BrEventNode* inNode, BrEventNode* outNode) 4. na stronie dokumentacji klas BRAT-a ( ) umożliwiającą wylistowanie składników kontenera typy BrEventNode (inNode and outNode) 5. Wykorzystać tą funkcje w Event (...). 6. Wybrać dowolną tablicę (BrDataTable) i przeglądnąć jej składniki

14 Używanie kontenerów w programie: (BrBfsTrackingModule)

15 Używanie kontenerów w programie (c.d.): (BrBfsTrackingModule)

16 BRAT moduły brat/modules – klasy, które przetwarzają dane: dig -> rdo -> tory lokalne -> tory globalne -> dst -> zrekonstruowane zdarzenia fizyczne. abc – BrModule – klasa bazowa dla każdego modułu, BrModuleContainer – kasa która zapewnia odpowiednią kolejność wywoływania funkcji modułów. Setup obiektu tej klasy definiuje proces (job) będący fragmentem analizy/rekonstrukcji danych.

17 BrModule- stanowi schemat dla każdego pochodnego modułu

18 Schemat blokowy analizy dla pojedynczego modułu konstruktor + „set-ersy” tworzenie (book-owanie) histogramów globalnych wczytanie globalnych parametrów z bazy danych itd. dla danego runu: tworzenie (book-owanie) histogramów, wczytanie parametrów z db, itd. obróbka danych zdarzenie po zdarzeniu – tworzenie nowych struktur i zapisanie ich w tablicy wyjściowej (outNode) operacje konieczne po zakończeniu analizy run-u operacje końcowe

19 BrModuleContainer- schemat kolejnego wywołania modułów dane podstawowe: hity, dane kalibracyjne zrekonstruowane dane fizyczne, tory+pid=cząstki, globalna informacja o zdarzeniu: parametr zderzenia, pozycja vertex-u