Open ladamczy opened 6 months ago
Próbki działają z moim programem, przy wszystkich dotychczas stosowanych kryteriach zarejestrowałem 10 wyników w oknie masy K0, także nie jestem pewien póki co czy wykresy czegokolwiek będą sensowne.
Czy od tego momentu mamy przerobić obecne programy żeby korzystały z star-upc-new, czy po prostu obecne star-upc zostanie zastąpione?
wykresów moze nie ma sensu robić ale testy kV0 == true. vs. kV0==false && kCEP==false już by cos pokazały.
Na pewny etapie stare star-upc zostanie zastąpione nowym
Czy mogłabym poprosić o dodanie plików na np. taurusa? Dalej mam problem z połączeniem do STAR
Te pierwsze 10 ranów juz usunąłem.
teraz do testów mam 166 ranów w
/star/u/adamczyk/pwd/picoUPC/test_upcdst2
To zajmuje 67 Gb, ja nie mam teraz tyle na taurusie kopiuje wszystko na
/tmp/test_upcdst2
prosze dać znac jak Pani to sobie skopiuje abym to usunął.
już zapchałem /tmp
Prosze skopiowc te 14 ranów i musimy wymyślić cos innego.
Mam juz gotową "naszą" część procesingu. Nowe dane sa w /star/u/adamczyk/pwd/picoUPC/test_upcdst2 Myslę, ze na dniach bedą dane od Czechów. Trzeba sie powoli przenosić na nowe dane a w szczgólności porównać stare i nowe aby wykluczyć jakies nowe problemy.
Dane trzeba ściągnąć do Krakowa albo zrobić preselekcje w BNL i ściągnąć juz tylko okrojone dane. Nie wiem jak wygląda obecnie czas potrzebny na wykonanie analizy. Pan Adam cos ostatnio narzekał.
Napewno tworzenie za każdym wykonaniem programu kandydatów na K0 w pętli po wszystkich parach cząstek może być najdłuższym elementem całego łańcucha. Można rozważyć utworzenie podczas preselekcji kolekcji K0, Lambda i Lambdabar z taka samą selekcją jak przy procesingu danych picoDST i operowanie w analizie na gotowych kandydatach to przyspieszy wykonanie programów oraz zapewni konsystencje między analizami.
Chciałbym również wiedzieć jakie dokładnie ciecią robicie podczas preselekcji. Ja moge puscić programy do preselekcj w BNL ale potrzebuje kod.
Jednym z etapów preselekcji u mnie jest wymaganie różnych trigerów do różnych numerów runu, czy mam to rozdzielenie zrealizować przez dwa warianty programu czy w jakiś inny sposób, np. po prostu zsypując oba zbiory razem?
proponuje zsypać oba zbiory razem. Ewentualne rozdzielenie moze Pan zrobić później po wstepnej preselekcji.
Przesłałem kod do preselekcji, plik .cxx to Inclusive_Analysis/star-upc/src/master_deg_analysis/Wide_K0_search/STAR_Preselection.cxx Plik wykonywalny to Inclusive_Analysis/star-upc/build/bin/STAR_Preselection
Uruchamianie poprzez ./STAR_Preselection full/path/to/file.root full/path/to/output/folder/ lub ./STAR_Preselection full/path/to/file.root full/path/to/output/folder/file2.root w zależności czy chcemy wygenerować plik z taką samą nazwą w danym folderze czy z inną Kompilacja przez skrypt Inclusive_Analysis/star-upc/building.sh
Plik jest sprawdzony na obecnych próbkach, daje takie same wyniki co dotychczasowe cięcia Prędkość przetwarzania danych wejściowych u mnie to ok. 1GB/min, nie wiem jak to się będzie przekładało na STAR
Zastosowane cięcia:
Preselekcja powinna być mniej restrykcyjna niż właściwa analiza. Dodatkowo chcemy czasami zrobić ploty n-1 czyli dysponować pełnym rozkładem. Idealnie by było podczas preselekcji własnie zastosować regule n-1. Czyli odrzucić przypadek jeśli nie przejdzie dwóch cięć a nie tylko jednego.
Na już proponuje :
all.zip przeysłam program, building file i liste z plikami - czy obecne nazwy plikow sa takie jak poprzednio? Jeżeli nie to podeślę skrypt który tworzy listę plików i ich ścieżek
wykonanie porgramu: ./build/Preselection list.list PreselectedData.root Histograms.root
kod prosze umiescić w repozytorium i niech tam zostanie
i jeszcze kilka uwag:
255 --> 254.xxxx
nie widze warunku przynajmniej dwóch sladów z ToF. Widze tylko warunek ToF<=4 . Czy zachowuje Pani przypadki z ToF=0 lub 1 lub 2 ?
Pisałem w innym issue że będziemy chcieli jeszcze odzyskać przypadki z ToF=5+ . Prosze w preselekcji wymagać ToF>=2
Prosze w preselkcji zrezygnować z ciecia ToF<=4
Punkt 3 i 4 nlezy rozumieć jako ToF>=2
Zapomniałem o jeszcze jednym. To jest preselekcja nowych danych gdzie mamy wiele tych samych sladów w dwoch wersjach. Zatem prosze zrobić dwie selekcje odnośnie sladów
Klasa A - slady z kV0=false and kCEP=false
Klasa B - slady z kV0=true
Zapisujemy przypadek gdy liczba sladów z klasy A ToF >=2 lub liczba sladów z klasy B z ToF >= 2
To samo dotyczy preselekcji dla Pana Adama
Które cięcia wyłączamy z rygoru n-1? W issue #7 było wspomniane o ilości śladów w RP i TPC, ale uważam że powinniśmy też wyłączyć z niego liczbę TrackPointów na ślad w RP oraz liczbę płaszczyzn w TrackPoincie.
Cięcie z klasami A i B traktować jako jedno cięcie?
Wydaje mi sie, że przed zebraniem kolaboracji nie ma juz czasu aby dopracowywać preselekcję. Chcemy pokazać jakieś ploty. Więc zostawmy teraz ciecia typu n-1. Zróbmy jedynie preselekcje tak jak Pan juz ma z małymi modyfikacjami które zaproponowałm. Ale jesli moje modyfikacje wymagaja dużego nakładu pracy to z nich zrezygnujemy i puścimy preselekcje tak jak to Pan ma juz gotowe. Aby nie komplikowac teraz procesowania zostawmy tylko przypadki klasy B , czyli analizujemy tylko slady z flaga z kV0=true
Zapomniałem o jeszcze jednym. To jest preselekcja nowych danych gdzie mamy wiele tych samych sladów w dwoch wersjach. Zatem prosze zrobić dwie selekcje odnośnie sladów
Klasa A - slady z kV0=false and kCEP=false Klasa B - slady z kV0=true
Zapisujemy przypadek gdy liczba sladów z klasy A ToF >=2 lub liczba sladów z klasy B z ToF >= 2
Chciałabym się dowiedzieć co oznaczają te flagi i czemu mamy dwie wersje? I jeszcze w której klasie są dostępne?
Mogę to dostosować w godzinę i przesłać kod Możliwe że trzeba będzie zmienić ścieżkę do pliku Afterburnera
Pokazać ploty w sensie ja referuję od początku do uzyskania tego wykresu inclusive K0, a Patrycja analogicznie tylko do exclusive?
script.zip Przesyłam w taki sposoób skrypt który powienien być poprawny. Mam problem z gitem i bibliotekami, wczoraj z niezrozumiałego dla mnie powodu pull spowodowało zmergowanie całego main i mam nadpisaną większość plików, kktóre odzyskałam, ale jeszcze nie wszystko jest połączone poprawnie ... - nie wiem też czemu flagi kCEP i kVO nie są dla mnie widoczne
Zapomniałem o jeszcze jednym. To jest preselekcja nowych danych gdzie mamy wiele tych samych sladów w dwoch wersjach. Zatem prosze zrobić dwie selekcje odnośnie sladów Klasa A - slady z kV0=false and kCEP=false Klasa B - slady z kV0=true Zapisujemy przypadek gdy liczba sladów z klasy A ToF >=2 lub liczba sladów z klasy B z ToF >= 2
Chciałabym się dowiedzieć co oznaczają te flagi i czemu mamy dwie wersje? I jeszcze w której klasie są dostępne?
Obecnie mamy nowe dane. Nowe dane to połączenie starych sladów ( one maja kCEP=false and kV0=false) z nowymi śladami (te maja kV0=true). Problem jest taki ze czasami mamy ten sam slad w dwóch wersjach. Zdecydowaliśmy sie na to aby nie zgubic przez przypadek żadanego śladu. Ale konsekwencja jest taka ze nie mozemy robić petli po wszsytkich sladach aby wielektrotnie nie analizowac tego samego ladu. Do preselekcji wustarczy jak popatrzymy niezaleznie na slady klasy A i (osobno) klasy B i zpiszemy przypadek jeśli którakolwiek grupa śladów przejdzie ciecia.
Mogę to dostosować w godzinę i przesłać kod Możliwe że trzeba będzie zmienić ścieżkę do pliku Afterburnera
Pokazać ploty w sensie ja referuję od początku do uzyskania tego wykresu inclusive K0, a Patrycja analogicznie tylko do exclusive?
to czekam na kod. Do prezentacji prosze bazować na starych danych. Nowe dane sa opcjonalne jesli beda to dobrze. "Pokazać ploty" to znaczy że byłoby wskazane pokać jakiś plot (jeden lub kilka) pokazujacy ile zyskaliśmy tworząc nowe dane.
script.zip Przesyłam w taki sposoób skrypt który powienien być poprawny. Mam problem z gitem i bibliotekami, wczoraj z niezrozumiałego dla mnie powodu pull spowodowało zmergowanie całego main i mam nadpisaną większość plików, kktóre odzyskałam, ale jeszcze nie wszystko jest połączone poprawnie ... - nie wiem też czemu flagi kCEP i kVO nie są dla mnie widoczne
Flagi nie sa widoczne bo pewnie kompiluje Pani ze starą biblioteka star-upc a flagi se zdefinowane w nowej bibliotece star-upc-new.
script.zip już działa, dziękuję - przesyłam jeszcze building file
Kod aktualny po poprawkach - do 18 mogę zrobić preselekcję w rygorze n-1, jeśli jest czas
niestety kod Pana Adama nie kompiluje sie w BNL.
CMake Error at CMakeLists.txt:14 (list): list does not recognize sub-command TRANSFORM
ja nie mam teraz czasu aby poprawiać kompilacje. Mój kod i Pani Patrycji się kompiluje ale my nie uzywamy cmake, ...
Najlepiej jakby Pan sie zalogował do BNL. Sciagnął repozytorium i poprawił CMakeLists.txt tak aby się kompilował w BNL. Ale jeśli ma to opóźnić znacznie prace na prezentacja to odpuścmy sobie nowe dane.
Poprawiłem CMakeLists.txt, powinno teraz działać
najlepeij sprobowac skompilowac w BNL. Teraz taki błąd
CMake Error at CMakeLists.txt:88 (get_filename_component): get_filename_component unknown component NAME_WLE
Ja napisze skrypty do puszczania i puszcze programy ale musza sie one kompilowac w BNL
Teraz powinno działać, problem wynikał z tego że w STAR jest CMake 3.11.2, co jest starszą wersją od tej którą teraz używam. Ten i poprzedni problem wynikał z użycia rzeczy wprowadzonych w późniejszych wersjach - poprawiłem to na rzeczy o których wiem że są w 3.11.2, i patrząc że problem był w trzeciej linijce od końca, nie powinno być więcej problemów.
Chciałbym się dopytać o szczegóły oczekiwanego zakresu prezentacji - oprócz wspomnienia o Roman Potach i VO finderze, odnoszę wrażenie że dużo cięć było zapożyczonych od Patrycji, albo ustalonych jeszcze podczas mojej inżynierki. Także ta prezentacja ma dotyczyć całościowej pracy, podsumowania tego co było zrobione podczas pracy magisterskiej czy ma dotykać jeszcze innych zagadnień?
W Pana przypadku to jest pierwsza prezentacja na forum STAR, wiec niech zawiera wszystkie istotne szczegoly. Oczywiscie niech Pan nie pisze skad Pan wzial ktore ciecie, tylko przedstawi pelna selekcje z uzasadnieniem ciec w postaci odpowiednich rysunkow, jesli je mamy.
Pana prezentacja jest po prezentacji Sverakovej. Może Pan sobie odpuścić wprowadzenie Roman Potow bo ona to pewnie zrobi. Może Pan zostawic w prezentacji te informacje ale nie powinien sie Pan zbyt długo rozwodzić nad roman potami i powtarzać to co ona pewnie powie. Jesli chodzi o zakres prezentacji to mam problem bo wolałbym mówić tak:
Na prezentacji raczej nie uzywamy captions pod rysunkami. Rysunki skopiowane z jakiś prac (oprócz publikacji) powinny miec podpis np. taken from .. Do motywacji może Pan wziąść pierwsza strone od Partycji bo to odnosi się do produkcji inkluzywnej a nie excluzywnej.
Dane dla Pani Patrycji po preselekcji sa w /star/data05/scratch/adamczyk/test/
to jest 16 plików z histogramami. 0.hist.root ... 9.hist.root, A.hist.root ... F.hist.root oraz 16 plików z drzewami 0.tree.root ... 9.tree.root, A.tree.root ... F.tree.root
Mariusz, obiecałeś to gdzieś ściągnąć.
Priorytetm jest dokończenie prezentacji/selekcji starych danych na zebranie kolaboracji.
Plan minimum to jeden plot na zebranie porównujący stare i nowe dane np. missing pT. Plan maksimum to zastapienie wszystkich plotów nowymi danymi. Przypominam ze nowe dane to konieczność pracy z star-upc-new i wymogiem flagi KV0.
niestety kod Pana Adamca nadal sie nie kompiluje
STAR-Analysis/Inclusive_Analysis/star-upc/src/master_deg_analysis/Wide_K0_search/Preselection1_2p_WE_3of4planes_fiducial_XiBBCLveto_nonelastic_2plusTOF_pteta_nhits_charge.cxx:283:5: error: ‘TThreadExecutor’ is not a member of ‘ROOT’ ROOT::TThreadExecutor TreeProcessor(nthreads);
podejrzewam ze brakuje w BNL obsługi wielowatkowosci, ....
Poprawiłem niezbędne rzeczy, kod się kompiluje na BNL za pomocą Inclusive_Analysis/star-upc/buildingSTAR.sh Nie wiem czemu, ale musiałem zakomentować https://github.com/ladamczy/STAR-Analysis/blob/463c2807c85c9cb5d10ffdd044a447d577de3e49/star-upc-new/include/StUPCEvent.h#L26 aby się kompilowało, miałem też inne błędy u mnie.
W razie gdyby to się i tak nie udało, plik wykonywalny jest w /star/u/adamwatroba/STAR-Analysis/Inclusive_Analysis/star-upc/build/bin
będziemy robić reprocessing tych nowych danych ale zanim sie do tego zabieżemy potrzebne jest potwierdzenie że wszystko jest w porządku i że oprócz poszerzenia zakresu masy nie potrzebujemy innych zmian.
Dlatego prosiłbym o priorytetowe zrobienie plotów pokazanych na ostatnim zebraniu ale dla nowych danych. Przypominam ze w nowych danych mamy informacje o beam-line z której też trzeba korzystac a nie z fukcji beamPosition
Przesyłam nowe histogramy - wydają się być w porządku. Zrobiłem je dla starych i nowych danych - nie ma tam wykresów odnośnie vertexów, gdyż czasem ich wogóle nie ma i program się wywalał.
Rozumiem, że stare dane to stare pliki które analizujemy od dawna a nowe dane to nowe pliki które utworzyłem przed zebraniem kolaboracji? Czy dla nowych danych wymaga Pan flagi kV0 ?
Jesli parametr pierwszy jest proporcjonalny do ilości V0 to widzimy wzrost K0 o 38% a Lambdy o 41% . Spodziewałbym sie znacznie wiekszego wrostu Lambd w porównaniu z K0.
Co to znaczy ze program się wywala? W szczególności czy to oznacza że traci Pan K0/Lamda bez werteksu? Czy też traci Pan wszsytkie przypadki z ranu gdzie się program wywalił? Czy tylko histogram z werteksem jest zły.
Czy chce Pan powiedzieć że w starych danych wszystkie przypadki miały werteks? Troche dziwi fakt, że nie widzimy żadnego skoku w okolicach granicy preselekcji.
Reszte uwag przesle jak odpowie Pan na powyższe pytania.
Stare ślady to te z kCEP=false and kV0=false, nowe to te gdzie wymagam kV0=true. Parametr "constant" to pole pod p[ikiem gaussowskim (dopasowywany pik jest domyślnie znormalizowany do 1) Program daje segmentation fault gdy próbuję wywołać getVertex(0), zatem pomijam wszystkie funkcje które z tego korzystały - sądzę że tak, wszystkie stare dane miały vertex.
Wydaje mi się też że bardzo mała ilość przypadków ma jednocześnie trigger 570704 oraz 570705/570701, ale to muszę sprawdzić dokładniej
Na 13120688 eventów 5 się pokrywa
Przesyłam porówanienie masy niezmienniczej par pionów dla 4 TOF po cięciach na pT, > 0.2 GeV |eta| < 0.9 i Nfit>20
ja nie widze różnicy ale trudno to stwierdzić na plocie 2D. Czy może Pani zrobić jakiś rozkłd 1D? pn. missingPt lub mKK Najlepiej trzy histogramy : stare dane nowe dane ślady (kV0==false and kCEP==false) nowe dane ślady (kV0==true)
Przesyłam porównanie dla pTmiss i massK0K0 pt.pdf HistMassK0K0.pdf
zmniejszyłam cięcia na tracki |eta| < 1.1, pT > 0.15 i Nhit > 15
Wygląda na to że wszystko jest w porzadku. Niech Pani ploty zachowa aby pokazać je w środe na spotkaniu z czechami.
Myslę, że może Pani używac od teraz nowych danych. Prosze pamietać że teraz bierzemy parametrt beamlinu bezpośrednio z danych. Prosze zrobić wszystkie histogramy jakie Pani robiła przed zebraniem kolaboracji (3 + 4) Tof z nowych danych. No i potem kontynuować realizacje punktów z otwartych issues.
Funkcja upcEvt->getBeamXPosition() zwraca mi wartości typu: 582531, 582162, ... i nie za bardzo wiem gdzie może leżeć problem
Nie mogę dalej poradzić sobie z problemem pozycji wiązki z danych. Poniżej przesyłam skrypt (wypisanie), plik do kompilacji oraz screenshot z danych. Czy mógłby Pan @ladamczy zerknąć na kod który przesłałam? chicałabym potwierdzić/zaprzeczyć czy to jest problemem tylko u mnie.
niestety dane z /star/data05/scratch/adamczyk/test/ zniknęły. Trochę mnie to dziwi bo powinny tam pozostać przez 30 dni. Nie mogę zatem teraz sprawdzić tych danych.
Nie Pani otworzy jeden z plików w przeglądarce (TBrowser) i sprawdzi wartość zmiennych mBeamXPosition, .... Czy to sa te same wartości o których Pani pisze ? czy inne?
Te nowe dane sa na CERNBox: https://cernbox.cern.ch/s/wqjLkr1LiOgAhsm Ale Pani Patrycja twierdzi, ze w plikach sa poprawne wartosci, tylko jak je czyta w programie to ma problem o ktorym pisze.
Utworzyłem nowe dane dla 9 ranów. Dane znajduja sie w BNL
/star/u/adamczyk/pwd/picoUPC/test_upcdst/nnnnnnnn/nnnnnnnn.root gdzie nnnnnnnn to numer runu
Trzeba sprawdzić czy macie Państwo jakieś problemy z czytaniem tych plików.
Utworzyłem również nowa biblioteke star-upc-new zawiera ona modyfikacje dwóch klas: StUPCEvent, StUPCTrack
StUPCEvent ma cztery nowe metody getBeamXPosition(),getBeamYPosition(), getBeamXSlope(), getBeamXSlope() które zwracają pozycje wiązki dla danego przypadku. Nie bedzie już potrzeby używania (czasami niejednoznacznej) fukkcji zwracajacej pozycje wiązki na podstawie numeru fillu.
StUPCTrack ma rozszerzona palete flag dla danego sladu: kV0 to ślady dodane z picoDST spełniajace warunki preselekcji V0 kCEP to pewna klasa śladów globalnych które nie sa stowarzyszone z żadnym werteksem. One sa potrzebne Tomasowi do wyznaczenia wydajności werteksowania. Nas one nie interesuja.
Czyli wszystkie ślady które maja kV0==true || kCEP==true zostały dopisane do naszych danych. Te sladu które maja not. (kV0==true || kCEP==true) sa tymi które juz w danych mieliśmy wcześniej.
Uwaga: część śladów majacych (kV0==true || kCEP==true) była i jest nadal wśród śaldów które nie maja (kV0==true || kCEP==true) powinny to być slady z kPrimary==true.
Zatem od teraz (aby mieć pewność że nie mamy śladów-dublerów) będziemy używać tylko sladów z kV0==true Wypada jednak sprawdzić że cały proces tworzenia nowych danych jest poprawny. Sprawdzalismy to z Tomasem ale zawsze cos jeszcze mozecie wykryć. Zatem prosiłbym o stosowne testy:
Przypomne jedynie że do preselekcji (ustawienia flagi kV0 ) wymagaliśmy cięć: NHits>=15 pt>0.15 |eta|<1.1 pary o sumie ładunków 0 dcaDaughters() < 2.0 && DCABeamLine() < 2.0 && (pointingAngleHypo()>0.9 || decayLengthHypo()<3.0) abs(K0.m()-0.495) < 0.035. || abs(Lambda.m()-1.115) < 0.015 || abs(Lambdabar.m()-1.115) < 0.015
Zatem do selekcji kandydatów na V0 i porównań powinnismy uzywac conajmniej tak restrykcyjnych cieć. Nominalnie mamy bardziej restrykcyje ciecia (oprócz cięć na masy) i takie bardziej restrykcyje cięcia powinny być użyte do testów.
Zaczniemy teraz produkowac wieksze próbki (na poczatek około 10% statystyki) ale jakakolwiek informacja od Państwa o problemach/różnicach będzie bardzo pomocna aby proces zatrzymać, poprawić błedy i puścić od nowa. Jest to dla Państwa obecnie priorytet (poza ewentualna prezentacją Pani Patrycji na poniedziałek). Pani Patrycja oczywiscie ma zbyt mała próbke do testów przypadków ekskluzywnych ale moze użyć programu do tag&&probe wydajności ToF. Pan Adam może użyć nominalnego swojego programu.
Prosze tutaj raportować złe i dobre wieści o nowych danych.