Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ....

27
Υπλογστική Φυσική Στοιχεωδών Σωματιδίων Κ.Κορδάς Εγκατάσταση και εξοικοίωση με την PYTHIA Κώστας Κορδάς Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Υπολογιστική Φυσική Στοιχειωδών, M.Sc Υπολογιστικής Φυσικής, Α.Π.Θ, 8 Μαΐου 2017

Transcript of Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ....

Page 1: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Υπλογστική Φυσική Στοιχεωδών Σωματιδίων

Κ.Κορδάς

Εγκατάσταση και εξοικοίωση με την PYTHIA

Κώστας ΚορδάςΑριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

Υπολογιστική Φυσική Στοιχειωδών, M.Sc Υπολογιστικής Φυσικής, Α.Π.Θ, 8 Μαΐου 2017

Page 2: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 2

Γεννήτορες Monte Carlo (Monte Carlo generators)● Λογισμικά πακέτα που μας επιτρέπουν να προσομοιώσουμε

γεγονότα σαν κι αυτά που έχουμε στα πειράματά μας

– Π.χ., pp → Z , pp → Higgs , etc.

● Χρησιμοποιούν γεννήτορες τυχαίων αριθμών για να να καταλήξουν γεννήσουν ένα γεγονός με συγκεκριμένα χαρακτηριστικά (κάθε σύγκρουση έχει μια πιθανότητα να δώσει κάποιο συγκεκριμένο αποτέλεσμα) → γεννήτορες Monte Carlo

● Πολύ σημαντικά εργαλεία για να σχεδιάζουμε το πείραμά μας και να υπολογίζουμε τι περιμένουμε να δούμε και να εξηγούμε τι είδαμε!

– Π.χ., Τι είδος, τι ορμή, και τι κατεύθυνση έχουν τα σωματίδια που γεννιούνται; Πρέπει να σχεδιάσω τον ανιχνευτη μου ώστε να είναι ικανός να μετράει καλά τέτοια σωματίδια

– Π.χ., Με δεδομένο τον ανιχνευτή μου, πόσα γεγονότα περιμένω να παρατηρήσω από την τάδε διαδικασία;

Page 3: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3

Γεννήτορες Monte Carlo (Monte Carlo generators)

● Υπάρχουν γεννήτορες (π.χ., που γεννάνε το διάγραμμα Feynman, πχ., u ubar → Z → e+ e-

χωρίς έξτρα δραστηρίοτητα.

– π.χ., MadGraph

● Και κάποιοι που γεννάνε όχι μόνο αυτά, αλλά και όλα τα σωματίδια που θα βλέπαμε στο πείραμα.

– Π.χ. PYTHIA η οποία παίρνει τα κουαρκ και γκουλόνια που γεννιούνται και φτιάχνει τα αδρόνια στα οποία αυτά καταλήγουν.

● Για ρεαλιστικές προσομοιώσεις, η πρώτη κατηγορία γεννητόρων χρησιμοποιεί και κάποιο μοντέλλο για την αδρονοποίηση των παραγόμενων κουακ και γκλουονίων, συνήθως την PYTHIA ή τη HERWIG

● Θα εγκαταστήσουμε και θα χρησιμοποιήσουμε την PYTHIA

Page 4: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 4

1. Eγκατάσταση PYTHIA

Page 5: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 5

Εγκατάσταση PYTHIA - 1● Πηγαίνετε στο http://home.thep.lu.se/~torbjorn/Pythia.html

και αριστερά στο Recent

Page 6: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 6

Εγκατάσταση PYTHIA - 2● Πηγαίνετε στο Installation. Κατεβάστε το αρχείο pythia8186.tgz

και ακολουθείστε τις οδηγίες

● Εγώ έφτιαξα έναν φάκελο: % mkdir ~/Programs

● % cd ~/Programs ; mv ~/Downloads/pythia8186.tgz .

Page 7: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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

Page 8: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 8

Εγκατάσταση PYTHIA - 4● Τώρα ανοίξτε ένα καινούργιο terminal για να ξεκινήσετε

παίρνοντας υπ' όψιν τις αλλαγές στο $HOME/.bashrc

● % cd ~/Programs/pythia8186

% more README # ~όλα τα πακέτα λογισμικού έχουν τέτοιο αρχείο

% ./configure --enable-shared

% make (ή gmake : ό,τι δουλεύει στο σύστημά σας)

Page 9: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 9

2. Παραδείγματα PYTHIA

Page 10: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 10

Παραδείγματα και οδηγίες PYTHIA● % cd ~/Programs/pythia8186/examples

● % less README # άλλο README σε αυτό το φάκελο

● Στο φάκελο αυτό υπάρχουν διάφορα προγράματα–παραδείγματα. Οδηγός: ~/Programs/pythia8186/worksheet.pdf

● Επίσης έχετε τις ιστοσελίδες-οδηγό της PYTHIA και τοπικά!

● Ανοίξ'τε έναν browser και βάλτε να πάει σ' αυτό το αρχείο:

Page 11: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 11

Παράδειγμα main01.cc● % cd ~/Programs/pythia8186/examples ; more main01.cc

Page 12: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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”).

Page 13: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 13

Παράδειγμα main01.cc – event setup●

Page 14: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 14

Παράδειγμα main01.cc – hard process● Monte Carlo partilce ID codes : ψαξτε online (θα τα βρείτε στο

PDG)

Page 15: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 15

Παράδειγμα main01.cc – πλήρης λίστα● Για κάθε σωματίδιο , τελικό ή ενδιάμεσο, δίνονται αν είνι τελικό

ή ενδιάμεσο, η μάζα του, η ορμή του , κλπ,

και οι γονείς του και τα παιδιά του,

– κι έτσι μπορούμε να δούμε πώς το κάθε σωματίδιο έχει συμμετάσχει στο να γίνει το πλήρες γεογνός (event)

Page 16: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 16

Παράδειγμα main01.cc – απολογισμός γέννησης γεγονότων

Page 17: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 17

Παράδειγμα main01.cc – ιστόγραμμα PYTHIA● Πόσα τελικά φορτισμένα σωματίδια έχουμε σε κάθε γεγονός;

Αυτό το ιστόγραμμα είναι δύσκολο.Αν έχουμε ROOT μπορούμε να φτιάχνουμε κατ' ευθείαν

ιστόγράμματα ROOT

Page 18: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 18

Παράδειγμα με ROOT – hist.cc● % cd ~/Programs/pythia8186/rootexamples ; more hist.cc

Page 19: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 19

Παράδειγμα με ROOT – hist.cc : output● % make hist ; ./hist.exe # και έχουμε το ιστογραμμα

Διαβάζουμε τις οδηγίες στην οθόνη μας

Page 20: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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

Page 21: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 21

Παράδειγμα με ROOT TTree – tree.cc●

Φυσικά, τα σωστά include filesΣτην αρχή είναι απαραίτητα:

Page 22: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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 γίνεται γρήγορα τεράστιο και μη πρακτικό

Page 23: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 23

3. Δικά μας events με PYTHIA και ROOT

Page 24: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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

Page 25: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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")

Page 26: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 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 για να δείτε πώς το τρέχετε

Page 27: Κ.Κορδάςcompupartphys.physics.auth.gr/PYTHIA_ROOT_8may2017.pdf · Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 3 Γεννήτορες

Θ/νίκη 5-May-2017 Κ. Κορδάς - Εγκατάσταση και χρήση PYTHIA 27

Πέρα από την PYTHIA ή βάζοντας νέα μοντέλα στην PYTHIA