ladamczy / STAR-Analysis

Repository for AGH-STAR analysis code
2 stars 0 forks source link

Początkowa analiza inkluzywna #5

Closed ladamczy closed 5 months ago

ladamczy commented 1 year ago
  1. zaczynamy od próbki jeden werteks i cztery ślady zmaczowane z ToF. Suma ładunków nie musi być 0. Ale przynajmniej jedna para o przeciwnych znakach.

rezygnujemy z cięc nz DCAxy, DCAz . Zostaje |eta|<0.9 i pT>0.2

Szukamy pary śladów o przeciwnych znakach w oknie masy(szerokim) K0. Przy kilku parach w oknie masy wybieramy pare bliższą masy K0. Druga para tworzy PV (primary werteks) bez żadnych warunków.

Interesuja nas rozkłady:

masy K0 w szerokim zakresie masy dca(pipi)K0 , R K0 w wąskim zakresie masy dca(pipi)PV , R PV pod warunkiem że druga para (K0) w wąskim zakresie masy. Odległość między PViKO dla przypadków w wąskim zakresie masy K0.

AddahDraggon commented 1 year ago

Czy mam używać tego co Patrycja napisała do korekcji pozycji wiązki? I czy runy i triggery których mam użyć też mają być dobrane jak w analizie Patrycji, czy mam zostawić tę część z mojej?

AddahDraggon commented 1 year ago

Oraz które z cięć na protony mam zostawić (po 1 w każdym RP, 4 płaszczyzny z 4, fiducial cuts, usunięcie kolizji elastycznych)?

ladamczy commented 1 year ago

Tak powinien Pan używać kodu Patrycji do korekty pozycji wiazki. Patrycja powinne te funkcji przenieść do star-upc. Nie wiem czy to jest zrobione ale zajme sie organizacją tego procesu.

Ciecia powinniśmy ustandaryzować. Czyli powinien Pan użyć tych samych cieć co Patrycja. Prosze skonsultować z nią co to dokładnie oznacza. Dodatkowo powinien Pan dodać usunięcie kolizji elastycznych.

ladamczy commented 1 year ago

Dodatkowo prosze dodać ploty zmiennych o których dyskutujemy w wątku o PYTHII8 czyli ln(xi1/xi2), log(xi1*xi2), plot 2D log(xi1) vs log(xi2)

ladamczy commented 11 months ago

Od ponad miesiaca nic tu nie ma. Tak nie może być.

Oprócz plotów o które prosiłem z końca pażdziernika prosze zrobić rozkłady krotoności i masy K0 z klasy StUPCV0 po selekcji sugerowanej w mailu.

AddahDraggon commented 11 months ago

Czy mam robić również te wykresy przed zastosowaniem ww. selekcji?

ladamczy commented 11 months ago

Tak. W analizie inkluzywnej interesuje nas również stosunek pzypadków z K0 do wszystkich przypadków. To jest bardziej precyzyjny pomiar bo wszelkie błedy systematyczne niezwiązane bezposrednio z K0 skracaja sie w stosunku.

ladamczy commented 11 months ago
          return (beamMomentum - mP.Mag())/beamMomentum; 

to nie może być > 1 Co najwyżej = 1 gdy mP.Mag()=0 Ale po cieciach fidutial nie ma możiwości aby mP.Mag()=0
Prosze to jeszcze raz sprawdzić i umiescić ploty które Pan pokazał tutaj na issu lub na indico.

AddahDraggon commented 11 months ago

Wykresy z ostatniego spotkania: AnaOutput_Inclusive_analysis_with_STUPCV0.pdf

AddahDraggon commented 11 months ago

Sprawdziłem również jak wyglądają anomalne wartości xi (powyżej 1 lub poniżej 0). Takich powyżej 1 nie zauważyłem, takie poniżej 0 natomiast już tak:

0.00109105   -0.00165733
0.0148772   -0.0103488
0.00608769   -0.00122727
-0.00260477   -0.00207523
0.000417886   -0.00126833
-0.0269015   0.0227016
0.00205721   -0.000170721
0.0037563   -0.00203455
0.069453   -0.00378334
-0.000178498   0.0310223
0.000767421   -0.00204469

O ile sądzę że większość tych przypadków gdzie tylko jeden proton z pary zyskał energię da się wyeliminować cięciem na kolizje elastyczne (chociaż dla mnie to dziwne jest że widać sporo takich których straty i zyski energii się sobie nie równają) to przypadki gdzie xi dla obu protonów jest ujemne są dla zagadką.

Zgaduję że to oznacza że protony zostały źle zrekonstruowane - czy mam takie przypadki odrzucać? Czy mam odrzucać przypadki w których suma xi obu protonów jest ujemna (czyli sumaryczna energia się zwiększyła)?

ladamczy commented 11 months ago
  1. Prosze zrobić rozkłady xiE i xiW dla przypadków przechodzących przez ciecia fiducial na protony. Musimy zrozumieć protony które maja xi>1 które według mnie nie moga miec miejsca
  2. Prosze stosowac konwencje że jedna para śladów jest kndydatem na K0 , czyli spełnia wszystkie ciecia sugerowane prze zemnie w prezentacji. Druga para ma pochodzuć z PV czyli spełnia tylko ciecie na DCADaugthers i ma decay vertex blisko beam-line < 1.5 cm
ladamczy commented 11 months ago

Sprawdziłem również jak wyglądają anomalne wartości xi (powyżej 1 lub poniżej 0). Takich powyżej 1 nie zauważyłem, takie poniżej 0 natomiast już tak:

0.00109105   -0.00165733
0.0148772   -0.0103488
0.00608769   -0.00122727
-0.00260477   -0.00207523
0.000417886   -0.00126833
-0.0269015   0.0227016
0.00205721   -0.000170721
0.0037563   -0.00203455
0.069453   -0.00378334
-0.000178498   0.0310223
0.000767421   -0.00204469

Zatem sam Pan widzi że Pana plot log(xiw) vs log(xiE) był zły nie ma xi>1

O ile sądzę że większość tych przypadków gdzie tylko jeden proton z pary zyskał energię da się wyeliminować cięciem na kolizje elastyczne (chociaż dla mnie to dziwne jest że widać sporo takich których straty i zyski energii się sobie nie równają) to przypadki gdzie xi dla obu protonów jest ujemne są dla zagadką.

Niech sie Pan przyjrzy temu co Pan zrobił dla PYTIA8 . Czy były protony z xi<0 ? Nie było, bo w rzeczywistości każdy proton traci energie.
Przypadki z xi<0 oznaczaja tylko tyle że efekty detektorowe (rozdzielczość pozycji protonu) powoduja że przypadku z xi_treu>0 migruja to xi_reco<0. Nie ma powodu aby ich (na tym etapie analizy) odrzucać.

Zgaduję że to oznacza że protony zostały źle zrekonstruowane - czy mam takie przypadki odrzucać? Czy mam odrzucać przypadki w których suma xi obu protonów jest ujemna (czyli sumaryczna energia się zwiększyła)?

Protony które maja xi_true = 0.001 a xi_reco=-0.001 jeszcze nie są złe. Prosze protonów z xi<0 nie odrzucać. Ale potrzebujemy rozkład xi aby zdecydowac gdzie ciąć.

AddahDraggon commented 11 months ago

Protonów z xi>1 nie ma, logarytm z xi ujemnego jest interpretowany jako NaN, który jest wyświetlany przez histogram jako overflow - po zastosowaniu cięcia na xi<0 (tylko do uzupełniania histogramów protonów) problem znikł (wycinany jest wtedy cały przypadek, tzn. oba protony, nawet jeśli jeden jest ok). Załączam wykresy log10(xi) dla obu gałęzi.

logW.pdf logE.pdf

AddahDraggon commented 11 months ago

Jutro do południa zaimplementuję lepsze wyznaczanie wierzchołka, chciałbym się spytać natomiast czy w przypadku gdy nie ma kandydata na wierzchołek spełniającego tych dwóch cięć na DCADaughters i odległość od beamline, to czy taki przypadek odrzucamy czy bierzemy obecnie wyznaczony wierzchołek? I jeśli to drugie, to czy współrzędne XY poprawiamy za pomocą slope, czy ustawiamy takie jakie są wyczytane w pliku (bo zakładam że współrzędną z bierzemy z tempUPCpointer->getVertex(0)->getPosZ()).

AddahDraggon commented 11 months ago

Nie jestem pewien, czy nie popełniłem gdzieś błędu, ale dwa warunki wzięte z prezentacji

bool K0test3 = tempParticle->pointingAngleHypo()>0.925;
bool K0test4 = tempParticle->DCABeamLine()<1.5;

jeśli nie są ignorowane, kompletnie negują wykrywane K0. Sprawdziłem ich wartości i obie funkcje (pointingAngleHypo i DCABeamLine) zwracają NaN.

ladamczy commented 11 months ago

Uwagi do wszystkich postów po kolei:

  1. Przypadków z xi<0 nie powinnićmy odrzucać tak od razu. Dlatego sugeruję aby narysował Pan również rozkłady xi a nie tylko log(xi) aby zobaczyć ile mamy przypadków z ujemnymi xi. Z Pana analizy PYTHIA8 wynika że xi_true>0.005 ale na poziomie detektorowym xi_true=0.005 moze mieć wartość np. ujemną . -0.00001. Problem jest z rysowaniem log(xiexiw). Niech Pan narazie wymusi if( xiE<0.005 || xiW<0.005 ) log(xiExiW)=2log(0.005) . Bedziemy pamiętać że wrtość log(xiExiW)=2*log(0.005) zawiera wszystkie problematyczne przypadki z ujemnymi lub bardzo małymi xi. Podobnie
    if( xiE<0.005 || xiW<0.005 ) ln(xiW/xiE) = 0
  2. Nie jestem pewien czy dobrze rozumiem o czym Pan pisze : "nie ma kandydata na wierzchołek spełniającego tych dwóch cięć na DCADaughters i odległość od beamline," W pierwszym podejściu analizujemy przypadki 4 ToF. Gdzie 2 slady (+-) spełniaja rekomendowane ciecia na V0 (DCADaughters <1.5, DCABeamline<1.5, Pointing angle>0.925 , 0.46<masa<0.53 pozostałe dwa ślady (w dowolnej konfiguracji ładunkowej) spełniaja tylko ciecie na DCADaughters<1.5, DCABeamline<1.5, (bez pointinAngle i masy) czyli jest to kandydat na collision vertex. Na koniec warto zrobic rozkład róznicy z-towych składowych wierzchołków produkcji obu par.
  3. Nie powinno być NaN. Czy parametr vtx jest ustawiony na np. (0,0,0) ? lub getVertex() ? Może się również zdarzyć że pary z bardzo złym DCADaughters maja problemy z pointing angle i lub DCABeamline. Czy problem NaN dotyczy również par z DCADaughters <1.5 ? Rozumiem, ze tak b wtedy coś by Panu zostało. Podejrzewam jakiś bład w programie czy masy pionów ma Pan w GeV ?
AddahDraggon commented 10 months ago

Z NaN się uporałem - okazało się że program czyta względne ścieżki do plików od poziomu folderu "home" zamiast od pozycji jego samego. Po korekcie nie mam przypadków z NaN. Przesyłam w załączeniu wygenerowane wykresy (13 i 14 to Xi odpowiednio wschodnie i zachodnie w obszarze anomalnym, tzn. Xi<0).

AnaOutput_Inclusive_analysis_with_STUPCV0.pdf

Punkt 2 - chodzi mi o to, że w 1168 przypadków druga para (ta, która ma stać się collision vertex) nie spełnia dwóch wymaganych warunków. Czy w takim przypadku mam ją zignorować całkowicie, użyć PV z danych, z poprawą z pliku csv?

ladamczy commented 10 months ago

Nie rozumim jak problem ze ścieżkami do plików moze wygenerować NaN dla pewnych zmiennych a dla innych zmiennych nie. Ale nie ma to juz znaczenia.

Rozkłady xi (strony 13 i 14) prosze narysować w pełnym zakresie a nie obinać na xi<0.002. Czyli od -0.05 do + 1.0. Tam się spodziewmay Gaussa o średniej 0 + opadający ~wykładniczo rozkład po stronie dodatnich xi. Interesuje nas szerokość tego Gaussa o średniej 0. Potrząc tylko na strone ujemną trudno go oszacować ale prawdopodobnie jest okolo 0.002 . Taka jest prawdopodobnie rozdzielczość pomiaru xi.

punkt 2 . To niemożliwe aby tak było. Gdzieś musi być błąd. Czy kod w repozytorium jest aktualny? Prosze mi wskazać kawałek kodu gdzie selekcjonuje Pan slady do drugiej pary.

AddahDraggon commented 10 months ago

Funkcja Patrycji dla pustych wartości daje wartość NaN, a że próbowałem odczytać z pliku którego program nie widział (ze względu na złą ścieżkę), wartości były zwracane puste.

Kod który testuje drugą parę zaczyna się tutaj: https://github.com/ladamczy/STAR-Analysis/blob/034943e44436833d30a07ddadfaa6ffc824e3956/Inclusive_Analysis/star-upc/src/master_deg_analysis/Inclusive_analysis_with_STUPCV0.cxx#L184

PatrycjaMalinowska commented 10 months ago

dodałam komentarz, że trzeba uważać na ścieżkę

ladamczy commented 10 months ago

Rozumiem, że te przypadki sa po jakiejś preselekcji. Prosze o link do kodu (lub opis) jaka była preselekcja i prosze sprawdzić czy vector_Track.size() jest faktycznie zawsze =4

Prosze zrobić rozkłady vertex_pair->dcaDaughters() oraz vertex_pair->DCABeamLine() aby sprawdzić jakie te wielkosci maja rozkłady moze to pomoże w ocenie dlaczego nie ma żadnego przypadku z kandydatem na vertes_pair.

Dodatkowo kandydat na K0 powinien się składać ze sladów o przeciwnych znakach. Obecnie akceptuje Pan również pary o tych samych znakach.

AddahDraggon commented 10 months ago

Preselekcja jest w plikach Inclusive_Analysis/star-upc/src/master_deg_analysis/preselection1 oraz 2, i jest analogiczna do tej obecnie używanej przez Patrycję Sprawdziłem wielkość vector_Track.size() - jest stale równa 4 Ta linia gearantuje że znaki w K0będą różne: https://github.com/ladamczy/STAR-Analysis/blob/63b4e037e11a08ec141b7c6168aa022a1ad9a6f1/Inclusive_Analysis/star-upc/src/master_deg_analysis/Inclusive_analysis_with_STUPCV0.cxx#L150

Rozkłady obu wielkości vertex_pair: DCABeamLine.pdf dcaDaughters.pdf Wyglądają oba na eksponentę, zakładam że to dobrze?

ladamczy commented 10 months ago

Rozkłady vertex_pair wyglądaja dobrze. Czy to sa przypadki w których mamy juz K0_pair? Twierdził Pan że jak mamy K0_pair to juz nie mamy vertex_pair spełniających warunki DCA<1.5 cm. Chciałbym to zobaczyć. To znaczy rozkłady DCA vertex_pair pod warunkime że mamy juz parę K0_pair.

AddahDraggon commented 10 months ago

To są już wykresy z parą K0 - przypadki bez niej są pomijane. Na 11698 obecnych par K0, 1168 z nich nie ma pary vertex_pair, gdyż pozostałe 2 piony nie spełniają warunków. W takim wypadku podstawiam jako vertex tą wartość: https://github.com/ladamczy/STAR-Analysis/blob/f218df1fb89536e37dd5a94a4f6d400aac67e1a7/Inclusive_Analysis/star-upc/src/master_deg_analysis/Inclusive_analysis_with_STUPCV0.cxx#L197 gdzie pierwsze to X oraz Y odczytane z pliku.

ladamczy commented 10 months ago

czyli 10 000 przypadków ma zarówno K0_pair oraz vertex_pair. To źle Pana zrozumiałem. Prosze te 1168 K0 odrzucić. Prosze narysować decayLengthHypo obu par. Histogram 2D masa_k0 vs. decayLengthHypo dla K0_pair Różnice pozycji vrt_z obu par.

AddahDraggon commented 10 months ago

Zrobione, są to 4 ostatnie histogramy w pliku AnaOutput_Inclusive_analysis_with_STUPCV0.pdf

ladamczy commented 10 months ago
AddahDraggon commented 10 months ago

Wszystkie poniższe wykresy są jeszcze z żądaniem 1 vertexu:

https://github.com/ladamczy/STAR-Analysis/blob/ae3b2f8aba4e1afa2365c9c3ad9b884100695c46/Inclusive_Analysis/star-upc/src/master_deg_analysis/Preselection2_1vertex_4TOF_charge_kinem_Nhits_clusters.cxx#L151

Zwiększyłem ilość binów 10-krotnie (0.0005/bin):

XiWcloser XiEcloser

Na wykresie 2D te piki tworzą taką jakby wysepkę blisko 0:

Xi2D

U siebie w pracy zrobiłem sumy pędów poprzecznych, ale też zrobiłem na wszelki wypadek wykres różnicy kątów theta:

differencetheta summomenta

Sądzę że cięcia na pęd poprzeczny by pasowały lepiej - w obu "oczkach" o wyższej intensywności jest ok. 1000 przypadków, ale to z pędem jest wyraźniejsze.

ladamczy commented 10 months ago

bo powinniśmy rysowac sume katów a nie róznice wtedy wnioski z analizy katowej i pedowej będa takie same.

Natomiast jest jakiś problem z rekonstrukcja xi ten pik powinien być w xi=0 a jest jakieś przesuniecie szczególnie widoczne po stronie E.

Ciecie antyelastyczne powinno być na przypadki które równocześnie sa w piku xiE=xiW=0 oraz py=px=0 Trzeba by wziąść +- 3 sigma wokół 0 oczywiście w przypadku xi trzeba wziąśc 3 sigma wokół środka tego obszaru o wiekszej aktywności. Być może trzeba wprowadzić poprawki addytywne do xi tak aby ten pik był w 0.

AddahDraggon commented 10 months ago

Sam fit na Xi na wykresie 2D wygląda dobrze:

Xi2Dfit.pdf

Ale przy próbie pokazania fitu na rzutach na osie pojawiają się dwa problemy:

XiProfile.pdf

Jeden to to, że dalsza część wykresu Xi "zasłania" ten pik, który chcę wydielić. Drugim jest problem skalowania wysokości funkcji fitowanej na wykresie 2D do rzutu na 1D. Pierwszy problem zakładam że można obejśc po prostu robiąc rzuty tylko tego piku do którego dopasowujemy. Nie do końca wiem natomiast jak się zabrać do drugiego - pomysły jakie mam to np. w jakiś sposób przeskalować przez np. stosunek wysokości najyższych binów, bądź dopasować osobno gausjan do takiego wyciętego fragmentu, sprawdzić jego wysokość i wtedy to użyć? Te wykresy są robocze, do prezentacji je doszlifuję wizualnie.

ladamczy commented 10 months ago

jesli fit 2D wyglada dobrze i chi/ndf jest dobre to nie ma powodu takiemu fitowi nie ufać. Jeden komentarz jaki miałem to ilość binów powinna być większa bo wydaje mi się że jesteśmy blisko sutuacji gdy szerokość gaussa to jeden bin. a to nie jest dobre.

Wydaje mi sie że nie sugerowałiśmy pokazania fitu na rzutach , tylko zrobienie fitu do rzutów to cos innego. Oczywiście fit do rzutu niewiele pomoże (jak widac na obrazku) natomiast fit do rzutu tylko obszaru gdzie jest pik z pewnościa pomoze i pewnie rozwiąże równiez problem normalizacji. Ten problem normalizacji pewnie pochodzi z tego ze rysując fit 2D nie powinien Pan rzutowac tej funkcji tylko wycałkowac po drugim wymiarze.

AddahDraggon commented 10 months ago

Spróbowałem dopasować pojedynczego gaussa do wykresu 2D xi oraz sumę dwóch do wykresu pędów poprzecznych, dla dwóch różnych ilości binów (czerwony okrąg wyznacza granicę 3sigma): p1.pdf p2.pdf Xi1.pdf Xi2.pdf Dla rzadszych binów sprawdziłęm również jak wygląda wykres masy K0 po odjęciu ww. zderzeń elastycznych: K0.pdf Obawiam się że przy tych dopasowaniach te cięcia nie są zbyt skuteczne (chociaż same piki na wykresach 1D xi są ładnie usuwane): XiW XiE Czy mam dopasowywać wielkość binów tak, żeby zbliżyć chi2/ndf do 1 czy raczej np. kombinować z dodaniem do gaussa jakiegoś tła w postaci wielomianu dwóch zmiennych?

ladamczy commented 10 months ago

Prosze juz nie tracić czasu na te fity. Ich jakość nigdy nie będzie dobra bo nie wiemy jak wygląda rozkład poza pikiem xi~0 i nie ma sensu go modelować bo to nie jest istotne na obecnym etapie

Lepiej powtórzyć fity do danych zero-bias gdzie będziemy mieli właściwie tylko przypadki elastyczne. Nie wiem jaka była motywacji fitu do sumy dwóch gaussow? Ale zostawmy to i przejdżmy do analizy danych zero-bias.

Już to wstępne ciecie antyelastyczne spełnia swoje zadanie. Wycinamy przypadki z xi których nie widzimy w MC. Prosze się nie martwić ze wycinamy troche K0. Bo to sa złę K0. To przypadkowa koincydencja protonów w RP i K0 w TPC. To jest wlaśnie tło które chcemy odrzucić.

ladamczy commented 10 months ago

Tutaj dobrze by zrobić porównanie z poziomem true z PYTHIA8 rozmywając xi_true o 0.002 .

Oraz rozszerzyć analize na inne kanały

No i trzeba zacząć patrzeć na Lamba, LmbdaBar

AddahDraggon commented 8 months ago

Patrzenie na Lambdę i K0 wprowadzić przez sprawdzenia czy dane cząstki są w obrębie 3sigma dla danego rodzaju (w kolejności sprawdzania elektron, kaon, proton, pion) czy w jakiś inny sposób?

ladamczy commented 8 months ago

Na poczatek sugeruje aby nie patrzeć wogóle na identyfikacje cząstek. Czyli dla K0 zakładamy że obie czastki to piony Dla Lambda zakładamy ze dodatnia to proton a ujemna to pion Dla Lambdabar zakładamy że dodatnia to pion a ujemna to (anty)proton

Identyfikujemy K0 i Lambdy tylko na podstawie rozkładu masy niezmienniczej pary.

Jeśli się okaże że jednak tło jest zbyt duże to możemy nałozyć warunek +- 3 sigma na każdą z czastek. Czyli np. dla Lambda sprawdzamy że cząstka dodatnia ma +-3 sigma_proton a ujemna +-3 sigma_pion Podobnie dla Lambdabar i K0.

Jesli nadal tło będzie zbyt duże to możemy sprawe bardziej komplikować i np. szukając protonu możemy nie tylko żądać +-3 sigma_proton ale również że nie jest pionem abs(sigma_pion)>3 .

Ale tak jak napisałem na poczatku lepiej nie patrzeć wcale na prawdopodobieństwa że czastka jest taka a nie inna.

ladamczy commented 8 months ago

Niech Pan zacznie od minimalnej selekcji:

  1. Po każdej stronie jeden i tylko jeden proton z 0.005<xi< 0.08 (<0.2 dla trgera bez weta BBL)

  2. Ciecia antyelestyczne jak jak wynika z analizy zero-bias

  3. Przynajmniej dwa slady z ToF w zakresie pt,eta, nhits jak w analizie Patrycji

  4. Dla takiej próbki szukamy K0 z cieciami DCAbeamline, DCAduaghters,decaylenghthHypo and cos(poinitng angle) jak w analizie Patrycji , oba slady z ToF

Robimy rozkład masy niezmienniczej pary w szerokim zakresie masy (jak w analizie Patrycji)

  1. Patrzymy na rozkład ilości K0 w waskim zakresie masy (jak w analizie Patrycji). Chodzi o ilość na przypadek.
  2. Patrzymy na rozkład ilości dodatkowych sladów (oprócz tych przypisanych do K0 w wąskim zkresie mas)

Jak Pan to będzie miał to pójdziemy dalej (jako input do V0 findera prosze przyjąć vertex=0,0,0

AddahDraggon commented 8 months ago

Odnośnie cięć na xi: dobrze rozumiem że afterburner powinienem stosować przed tymi cięciami?

ladamczy commented 8 months ago

tak, na poczatku afterburner potem jakiekolwiek ciecia.

AddahDraggon commented 8 months ago

Przy "dodatkowych śladach" chodzi o K0 poza wąskim zakresem masy czy o piony które je tworzą? Oraz czy do poprawek też mam brać vertex jako 0,0,0?

ladamczy commented 8 months ago

Przez "ślady" rozumiem cząstki naładowane mierzone w TPC. "Dodatkowe ślady" to wszsytkie slady w TPC (po cieciach i znaczowane z ToF) pomniejszone o ilość pionów które tworzą K0 w wąskim zakresie masy. Generalnie proces który badamy to: p+p-> p+K0+X+p lub p+p-> p+nK0+X+p przy produkcji n K0. Co możemy powiedzieć o stanie X? Jaka jest krotność sladów w tym stanie X? Czy wierzchołek stanu X pokrywa sie z wierzchołkiem produkji K0, ...

AddahDraggon commented 8 months ago

OK - wstępne wyniki (na niecałej próbce) będą wieczorem, z jakiegoś pwoodu analiza zajmuje znacznie dłużej niż przypuszczałem

AddahDraggon commented 8 months ago

Przy produkcji nK0 gdy mamy powiedzmy 2 zrekonstruowane K0 posiadające jeden wspólny ślad, czy wprowadzamy jakiegoś rodzaju selekcję np. na podstawie odległości od masy tablicowej K0, czy póki co ten problem pomijamy?

ladamczy commented 8 months ago

Teraz prosze przyjąć tę parę która ma mniejsze DCADaughters .

Natomiast w przyszłości trzeba pomysleć o jakimś cieciu które wymusi pewna isolację K0 od reszty sladów. Generalnie jeśli mamy trzy ślady które tworzą dwójke kandydatów na K0 to znaczy że one najprawdopodobnie nie sa K0 i obu kandydatów trzeba odrzucić. Do tego problemu wrócimy jako oddzielne issue bo to nie jest trywialne.

AddahDraggon commented 8 months ago

Rozkład masy par (wszystkich) w szerokim zakresie mam, rozkładu wąskiego nie mam, bo z jakiegoś powodu wypełnia histogram zerami, naprawię to jutro

canvas

Niepokoi mnie że pik nie jest w dobrej pozycji, spróbuję jeszcze sprawdzić czy po usunięciu korekt do nachyleń wiązki (do wyliczenia używałem getVertex(0), chyba że też go powinienem zamienić na (0,0,0)?) coś się zmieni

ladamczy commented 8 months ago

pik jest przesuniety jest zbyt szeroki i zbyt niski. Może mi /pan wskazać w kodzie gdzie Pan wypełnia ten histogram?

AddahDraggon commented 8 months ago

https://github.com/ladamczy/STAR-Analysis/blob/bf971585e3893feeabba6e29ecba77e2cf124e02/Inclusive_Analysis/star-upc/src/master_deg_analysis/Wide_K0_search/Inclusive_analysis_with_STUPCV0_with_extended_range_noAfterburner.cxx#L207

ladamczy commented 8 months ago

tempParticle->decayLength() -> tempParticle->decayLengthHypo()

decayLength używa werteksu z zewnatrz (0,0,0) decayLengthHypo() używa werteksu produkcji K0 policzone wewnatrz klasy StUPCV0 jako punkt DCA od beamlinu. Używamy decayLengthHypo()

Po drugie ostatni parameter konstruktora K0 okresla czy stosujemy przybliżenie liniowe czy nie. Prosze zmienić true na false.

AddahDraggon commented 8 months ago

Poprawiło się:

canvas

Sortowanie K0 ze względu na DCAdaughter nadal nie działa, ale dzisiaj powinienem je naprawić

ladamczy commented 8 months ago

Czy to jest pełna statystyka?

Oprócz rozkładu krotności K0 ( w wąskim zakresie masy) prosze pomysleć o plotach:

  1. Krotności dodatkowych sladów z ToF ?
  2. Krotności werteksów.
  3. Krotności śladów z ToF przypisanych do werteksu id=0 (best werteks) pomniejszonych o ilość sladów z K0 jesli sa przypisane do tego samego werteksu.
    1. róznicy między położeniem (współrzędna z) werteksu (id=0) a położeniem werteksu produkcji K0.
  4. Rozkad masy pary pionów (kandydatów na K0) z dodatkowym cieciem decaylenghthHypo>3 and cos(poinitng angle)>0.925