2. Histogrammin piirto#

Tässä harjoituksessa opetellaan piirtämään invariantin massan histogrammi Pythonilla. Käytetään datana CMS-kokeen vuonna 2011 keräämää dataa kahden protonin törmäyksistä [1]. Tässä harjoituksessa käytettävään CSV-tiedostoon on karsittu edellä mainitusta datasta kiinnostavia tapahtumia, joissa hiukkasilmaisin on havainnut kaksi myonia, joiden invariantti massa on välillä 8–12 GeV [2].

1) Tilanteen alustus#

Aloitetaan tuomalla tarvittavat moduulit ja lukemalla datatiedosto.

  • Tuo moduulit pandas, numpy ja matplotlib.pyplot import -komennolla

  • Käytä moduuleissa lyhenteitä pd, np ja plt, jotta moduulin koko nimeä ei tarvitse kirjoittaa aina uudelleen.
    $\color{purple}{\text{Kirjoita koodi alle.}}$

# Tuo tarvittavat moduulit import-komennolla
# Lue datatiedosto ja tallenna data muuttujaan 'datasetti'.

Mitä tallennettu tiedosto sisältää? Tarkista tulostamalla ainakin viisi ensimmäistä riviä.
$\color{purple}{\text{Kirjoita koodi alle.}}$

# Tulosta tiedoston viisi ensimmäistä riviä (vinkki: käytä head() -metodia)

Huomaamme, että tässä datatiedostossa on laskettu invariantti massa jo valmiiksi, joten käytetään valmiiksi laskettua massan arvoa.

  • Tallenna datasetistä sarake, joka sisältää invariantin massan muuttujaan invariantti_massa.

  • Vinkki: Harjoituksessa 1 valittiin datasetistä sarakkeita, kuten eta1 tai psi2. Voit tallentaa invariantin massan sarakkeen samaan tapaan.
    $\color{purple}{\text{Kirjoita koodi alle.}}$

# Tallenna invariantti massa muuttujaan invariantti_massa
  • Selvitä len() -funktion avulla, kuinka monta invariantin massan arvoa muuttujaan invariantti_massa on tallennettu.

  • len() -funktiossa sulkeiden sisään laitetaan lista, tässä tapauksessa muuttujamme invariantti_massa ja funktio laskee, kuinka monta arvoa listassa on.
    $\color{purple}{\text{Kirjoita koodi alle.}}$

# Selvitä len() -funktion avulla, kuinka monta invariantin massan arvoa data sisältää.

2) Histogrammin piirtäminen#

Piirretään seuraavaksi histogrammi invariantin massan arvoista. Histogrammin piirtoon hyödynnämme aiemmin tuomaamme matplotlib.pyplot-moduulia. Histogrammi on pylväskaavio, joka tässä tapauksessa kuvaa sitä, kuinka monta törmäystapahtumaa on osunut kunkin invariantin massan arvon kohdalle.

$\color{purple}{\text{Piirrä histogrammi käyttäen seuraavia komentoja:}}$

  • plt.hist(muuttuja, bins=pylväiden lukumäärä), korvaa funktiossa muuttuja invariantilla massalla ja pylväiden lukumäärä haluamallasi lukumäärällä. Kokeile, miltä histogrammi näyttää eri pylväiden lukumäärillä, esim 50 tai 500.

  • plt.title(), histogrammin otsikko lainausmerkeissä

  • plt.xlabel() ja plt.ylabel(), x- ja y-akseleiden otsikot lainausmerkeissä

  • plt.show(), lisää tämä komento loppuun, jotta histogrammi näkyy näytöllä

# Piirrä histogrammi

Mitä invariantin massan histogrammi kertoo?
Mitä tapahtuu noin 9.5 GeV kohdalla?

Lähteet#

[1] CMS collaboration (2016). DoubleMu primary dataset in AOD format from RunA of 2011 (/DoubleMu/Run2011A-12Oct2013-v1/AOD). CERN Open Data Portal. DOI: 10.7483/OPENDATA.CMS.RZ34.QR6N.

[2] Thomas McCauley (2016). Ymumu. Jupyter Notebook file. Url: https://github.com/tpmccauley/cmsopendata-jupyter/blob/hst-0.1/Ymumu.ipynb.

Kuvat#

[Kuva 1] Domenico Salvagnin, Url: https://commons.wikimedia.org/wiki/File:CMS@CERN.jpg