Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ....
Transcript of Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ....
Υπλογστική Φυσική Στοιχεωδών Σωματιδίων
Κ.Κορδάς
Εγκατάσταση και εξοικοίωση με την PYTHIA
Κώστας ΚορδάςΑριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης
Υπολογιστική Φυσική Στοιχειωδών, M.Sc Υπολογιστικής Φυσικής, Α.Π.Θ, 8 Μαΐου 2017
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 2
Γεννήτορες Monte Carlo (Monte Carlo generators)● Λογισμικά πακέτα που μας επιτρέπουν να προσομοιώσουμε
γεγονότα σαν κι αυτά που έχουμε στα πειράματά μας
– Π.χ., pp → Z , pp → Higgs , etc.
● Χρησιμοποιούν γεννήτορες τυχαίων αριθμών για να να καταλήξουν γεννήσουν ένα γεγονός με συγκεκριμένα χαρακτηριστικά (κάθε σύγκρουση έχει μια πιθανότητα να δώσει κάποιο συγκεκριμένο αποτέλεσμα) → γεννήτορες Monte Carlo
● Πολύ σημαντικά εργαλεία για να σχεδιάζουμε το πείραμά μας και να υπολογίζουμε τι περιμένουμε να δούμε και να εξηγούμε τι είδαμε!
– Π.χ., Τι είδος, τι ορμή, και τι κατεύθυνση έχουν τα σωματίδια που γεννιούνται; Πρέπει να σχεδιάσω τον ανιχνευτη μου ώστε να είναι ικανός να μετράει καλά τέτοια σωματίδια
– Π.χ., Με δεδομένο τον ανιχνευτή μου, πόσα γεγονότα περιμένω να παρατηρήσω από την τάδε διαδικασία;
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3
Γεννήτορες Monte Carlo (Monte Carlo generators)
● Υπάρχουν γεννήτορες (π.χ., που γεννάνε το διάγραμμα Feynman, πχ., u ubar → Z → e+ e-
χωρίς έξτρα δραστηρίοτητα.
– π.χ., MadGraph
● Και κάποιοι που γεννάνε όχι μόνο αυτά, αλλά και όλα τα σωματίδια που θα βλέπαμε στο πείραμα.
– Π.χ. PYTHIA η οποία παίρνει τα κουαρκ και γκουλόνια που γεννιούνται και φτιάχνει τα αδρόνια στα οποία αυτά καταλήγουν.
● Για ρεαλιστικές προσομοιώσεις, η πρώτη κατηγορία γεννητόρων χρησιμοποιεί και κάποιο μοντέλλο για την αδρονοποίηση των παραγόμενων κουακ και γκλουονίων, συνήθως την PYTHIA ή τη HERWIG
● Θα εγκαταστήσουμε και θα χρησιμοποιήσουμε την PYTHIA
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 4
1. Eγκατάσταση PYTHIA
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 5
Εγκατάσταση PYTHIA - 1● Πηγαίνετε στο http://home.thep.lu.se/~torbjorn/Pythia.html
και αριστερά στο Recent
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 6
Εγκατάσταση PYTHIA - 2● Πηγαίνετε στο Installation. Κατεβάστε το αρχείο pythia8186.tgz
και ακολουθείστε τις οδηγίες
● Εγώ έφτιαξα έναν φάκελο: % mkdir ~/Programs
● % cd ~/Programs ; mv ~/Downloads/pythia8186.tgz .
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 7
Εγκατάσταση PYTHIA - 3● Πηγαίνετε στο Installation. Κατεβάστε το αρχείο pythia8186.tgz
και ακολουθείστε τις οδηγίες
● Φτιάξτε φάκελο: % mkdir ~/Programs (ή: mkdir $HOME/Programs)
● % cd ~/Programs ; mv ~/Downloads/pythia8186.tgz
● % cd pythia8186
● Στο αρχείο: ~/.bashrc (που εκτελείται αυτόματα όταν ανοίγετε ένα command-line terminal), βάλτε στο τέλος τις εξής γραμμές:
# PYTHIA:
export PYTHIA8=$HOME/Programs/pythia8186
export PYTHIA8DATA=$PYTHIA8/xmldoc
export LD_LIBRARY_PATH=$PYTHIA8/lib:$LD_LIBRARY_PATH
● Αν δεν έχετε ήδη το setup για τη ROOT στο .bashrc, βάλτε και κάτι τέτοιο:
# ROOT precompiled: export ROOTSYS=$HOME/Programs/root . $ROOTSYS/bin/thisroot.sh
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 8
Εγκατάσταση PYTHIA - 4● Τώρα ανοίξτε ένα καινούργιο terminal για να ξεκινήσετε
παίρνοντας υπ' όψιν τις αλλαγές στο $HOME/.bashrc
● % cd ~/Programs/pythia8186
% more README # ~όλα τα πακέτα λογισμικού έχουν τέτοιο αρχείο
% ./configure --enable-shared
% make (ή gmake : ό,τι δουλεύει στο σύστημά σας)
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 9
2. Παραδείγματα PYTHIA
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 10
Παραδείγματα και οδηγίες PYTHIA● % cd ~/Programs/pythia8186/examples
● % less README # άλλο README σε αυτό το φάκελο
● Στο φάκελο αυτό υπάρχουν διάφορα προγράματα–παραδείγματα. Οδηγός: ~/Programs/pythia8186/worksheet.pdf
● Επίσης έχετε τις ιστοσελίδες-οδηγό της PYTHIA και τοπικά!
● Ανοίξ'τε έναν browser και βάλτε να πάει σ' αυτό το αρχείο:
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 11
Παράδειγμα main01.cc● % cd ~/Programs/pythia8186/examples ; more main01.cc
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 12
Τρέχουμε το παράδειγμα main01.cc● % cd ~/Programs/pythia8186/examples/
● % make main01
● % ./main01.exe # τυπώνει τα πάντα στην οθόνη
● % ./main01.exe > keep_out_main01.out # τυπώνει σε αρχείο
● % more keep_out_mani01.out ή % less keep_out_mani01.out
● Δείχνει τις επι μέρους διαδικασίες με τις οποίες φτιάχνει γεγονότα: gg → gg , gg → q qbar , κλπ.
● Την ενεργό διατομή για κάθε επι μέρους διαδικασία και την ολική ενεργό διατομή
● Τη λίστα των σωματιδίων αν ήταν να ζωγραφίσεις ένα διάγραμμα Feynman με παρτόνια (gluons, quarks) , λεπτόνια και τα διανυσματικά μποζόνια
● Και τη λίστα όλων των σωματιδίων: τελικών (πχ., π+ , μ- , κλπ), αλλά και τους γονεις και τα παιδιά του κάθε ενός → μπορείς να δείς πώς η PYTHIA έφτιαξε όλο το γεγονός (“event”).
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 13
Παράδειγμα main01.cc – event setup●
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 14
Παράδειγμα main01.cc – hard process● Monte Carlo partilce ID codes : ψαξτε online (θα τα βρείτε στο
PDG)
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 15
Παράδειγμα main01.cc – πλήρης λίστα● Για κάθε σωματίδιο , τελικό ή ενδιάμεσο, δίνονται αν είνι τελικό
ή ενδιάμεσο, η μάζα του, η ορμή του , κλπ,
και οι γονείς του και τα παιδιά του,
– κι έτσι μπορούμε να δούμε πώς το κάθε σωματίδιο έχει συμμετάσχει στο να γίνει το πλήρες γεογνός (event)
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 16
Παράδειγμα main01.cc – απολογισμός γέννησης γεγονότων
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 17
Παράδειγμα main01.cc – ιστόγραμμα PYTHIA● Πόσα τελικά φορτισμένα σωματίδια έχουμε σε κάθε γεγονός;
Αυτό το ιστόγραμμα είναι δύσκολο.Αν έχουμε ROOT μπορούμε να φτιάχνουμε κατ' ευθείαν
ιστόγράμματα ROOT
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 18
Παράδειγμα με ROOT – hist.cc● % cd ~/Programs/pythia8186/rootexamples ; more hist.cc
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 19
Παράδειγμα με ROOT – hist.cc : output● % make hist ; ./hist.exe # και έχουμε το ιστογραμμα
Διαβάζουμε τις οδηγίες στην οθόνη μας
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 20
Παράδειγμα με ROOT – hist.cc → hist.root● % root hist.root # ανoίξτε το αρχείο hist.root με τη ROOT
root [1] .ls # δείτε όλα τα αντικέιμενα ROOT στο αρχείο αυτό Ένα αντικέιμενο τύπου TH1F λέγεται mult, το φτιάξαμε στο hist.cc και το αποθηκεύσαμε εδώ στο hist.root
root [2] mult->Draw(); # δείτε το
●
●
●
●
●
●
root [3] .q
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 21
Παράδειγμα με ROOT TTree – tree.cc●
Φυσικά, τα σωστά include filesΣτην αρχή είναι απαραίτητα:
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 22
Παράδειγμα με ROOT – tree.cc : TTree T% ls -larth # l=long, a=all, t=time ordered, r=reverse order, h=human readable info (MBytes) % root -l pytree.root # -l = μην δείχνεις το εικονίδιο της ROOT
A TTree object, called T
root [3] TBrowser k;
Όλη η πληροφορίαγια κάθε σωματίδιο είναι στο entry
Πάρα πολύ πληροφρίακαι το TTree γίνεται γρήγορα τεράστιο και μη πρακτικό
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 23
3. Δικά μας events με PYTHIA και ROOT
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 24
Δικό μας Ttree με τη ROOT: pp → Z → 2l (1) ● % cd ~/Programs/pythia8186/rootexamples
● Πάρ' τε όλο το tar ball Z_pythia.tar από: http://kordas.web.cern.ch/kordas/Teaching/Diplom/
Δείτε στη σελιδα την κόκκινη γραμμή “Gia to M.Sc Ypologistikns”
http://kordas.web.cern.ch/kordas/Teaching/Diplom/Z_pythia.tar
● Κατεβάστο το Z_pythia.tar μέσα στο ~/Programs/pythia8186/rootexamples/
● Κάντε:
% tar xvf Z_pythia.tar # φτιαχνει το φάκελο Z_pythia/
% cd Z_pythia
Ακολουθείστε τις οδηγίες στο README_Z
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 25
Δικό μας Ttree με τη ROOT: pp → Z → 2l (2) ● Δίνουμε τις αρχικές οδηγίες στην PYTHIA σε ανεξάρτητο αρχείο (κι έτσι
ΔΕΝ τις γράφουμε μέσα στον κώδικα που γεννάει τα γεγονότα)
Δείτε τη λίστα των σωματιδίων που παίρνουν μέρος στο hard-scatttering : πολύ μικρή λίστα σε σχέση με το full Event
% make zpythia1 ; ./zpythia1.exe zpythia.cmd
● Δείτε πώς μπορώ να φτιάξω δέντρα με συγκεκριμένη πληροφορία κατά τη διάρκεια γέννησης των events, και να σώσω αυτά τα δέντρα για περαιτέρω ανάλυση σε ένα αρχείο .root
% make zpythia2 ; ./zpythia2.exe zpythia.cmd
Δημιουργείται το αρχείο zpythia.root, το οποίο έχει τα δέντρα
% root -l zpythia.root
root [] .ls
root [] mcInfo->Print()
root [] mcInfo->Draw("mz")
root [] mcInfo->Draw("pidI1","pidI2==1")
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 26
Δικό μας Ttree με τη ROOT: pp → Z → 2l (3) ● Μπορούμε πρίν σώσουμε στο Ttree τα γεγονότα που γεννάει η PYTHIA, να
τα αλλάξουμε λίγο με χρήση random-number για να τα κάνουμε πιό ρεαλιστικά (π.χ., να βάζουμε ότι τάχα τo σημείo που βλέπουμε οτι έγινε η σύγκρουση είναι αποτέλεσμα μέτρησης, και άρα μπορεί να μην έχει μετρηθεί ακριβώς εκεί που έγινε στ' αλήθεια).
% make zpythia ; ./zpythia.exe zpythia.cmd
Δημιουργείται το αρχείο zpythia.root, το οποίο έχει τα δέντρα
● Ανάλυσηση του αρχείου zpythia.root σε δέυτερο στάδιο
% root -l zpythia.root
root [] .ls
root [] leptons->MakeClass("myZcode")
Και γράφετε κώδικα στη μέθοδο Loop() να παίρνετε ό,τι θέλετε από τα events. Π.χ μπορείτε να φτιάχνετε invariant mass of two leptons κλπ...
● Παράδειγμα: το έτοιμο αρχείο zleptons.C και zleptons.h
→ Δείτε το αρχείο README_Z για να δείτε πώς το τρέχετε
Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 27
Πέρα από την PYTHIA ή βάζοντας νέα μοντέλα στην PYTHIA