CMS ja avoin data#

CERN:n CMS-kokeessa törmäytetään protoneita toisiinsa ja tutkitaan, mitä hiukkasia törmäyksessä syntyy. Törmäystapahtumista kertyy valtava määrä dataa, jota on julkaistu myös avoimesti saataville CERN:n avoin data portaalissa. Tässä harjoituksessa tutustutaan siihen, mitä nämä datasetit sisältävät ja mitä niiden avulla voitaisiin selvittää. Tämä tarjoaa oppilaille mainion tilaisuuden kokeilla oikean tieteen metodeja autenttisilla mittaustuloksilla.

1. Datan hakeminen#

Aloitetaan hakemalla data. Data on ladattu CERN:n avoin data portaalista ja tallennettu samaan hakemistoon tämän notebookin kanssa. Tarkastellaan datatiedostoa Dimuon_DoubleMu.csv, joka sisältää dataa törmäystapahtumista, joissa on havaittu kaksi myonia.

# Aloitetaan hakemalla tarvittavat python-paketit import-komennolla
# Voit suorittaa koodisolut Run-painikkeella tai paina CTRL+ENTER.

import pandas as pd
import matplotlib.pyplot as plt
# Luetaan datatiedoston sisältö ja tallennetaan tiedot muuttujaan "kaksi_myonia"

kaksi_myonia = pd.read_csv('http://opendata.cern.ch/record/545/files/Dimuon_DoubleMu.csv')
# Tarkastellaan miltä data näyttää

kaksi_myonia.head()
Run Event type1 E1 px1 py1 pz1 pt1 eta1 phi1 ... type2 E2 px2 py2 pz2 pt2 eta2 phi2 Q2 M
0 165617 74601703 G 9.6987 -9.5104 0.3662 1.8633 9.5175 0.1945 3.1031 ... G 9.7633 7.3277 -1.1524 6.3473 7.4178 0.7756 -0.1560 1 17.4922
1 165617 75100943 G 6.2039 -4.2666 0.4565 -4.4793 4.2910 -0.9121 3.0350 ... G 9.6690 7.2740 -2.8211 -5.7104 7.8019 -0.6786 -0.3700 1 11.5534
2 165617 75587682 G 19.2892 -4.2121 -0.6516 18.8121 4.2622 2.1905 -2.9881 ... G 9.8244 4.3439 -0.4735 8.7985 4.3697 1.4497 -0.1086 1 9.1636
3 165617 75660978 G 7.0427 -6.3268 -0.2685 3.0802 6.3325 0.4690 -3.0992 ... G 5.5857 4.4748 0.8489 -3.2319 4.5546 -0.6605 0.1875 1 12.4774
4 165617 75947690 G 7.2751 0.1030 -5.5331 -4.7212 5.5340 -0.7736 -1.5522 ... G 7.3181 -0.3988 6.9408 2.2825 6.9523 0.3227 1.6282 1 14.3159

5 rows × 21 columns

Datatiedostotta näyttäisi olevan paljon tietoa. Jokainen rivi vastaa yhtä törmäystapahtumaa, jossa on havaittu kaksi myonia. Rivillä on aina mittausdataa molemmista havaitusta myonista. Esimerkiksi E tarkoittaa myonin energiaa ja p liikemäärää. Viimeinen sarake M viittaa myoneiden invarianttiin massaan, jota tarkastellaan pian enemmän.

# Katsotaan vielä, kuinka monta riviä dataa tiedostossa on

len(kaksi_myonia)
100000

2. Invariantti massa & histogrammi#

Aiemmasta tutkimuksesta tiedetään, että monet eri hiukkaset voivat hajota kahdeksi myoniksi ja että alkuperäinen hiukkanen voidaan tunnistaa laskemalla myoneiden niin sanottu invariantti massa. CMS-detektorilla voidaan mitata mm. myoneiden energia ja liikemäärä. Kun nämä suureet tiedetään, myoneiden invariantti massa on

$M = \sqrt{(E_1 + E_2)^2 - |\textbf{p}_1 + \textbf{p}_2 | ^2}$.

Mikäli myonit olivat peräisin yhden hiukkasen hajoamisesta, myoneiden invariantti massa vastaa tämän hiukkasen massaa. Jos taas myonit eivät olleet peräisin samasta hiukkasesta, invariantin massan arvo ei merkitse mitään.

Kun protonit törmäävät hiukkaskiihdyttimessä, vapautuu valtava määrä energiaa, joka muuttuu uusiksi hiukkasiksi. Törmäyksessä voisi syntyä esimerkiksi Z-bosoni, joka on kuitenkin niin lyhytikäinen, että se hajoaa nopeasti toisiksi hiukkasiksi, esimerkiksi kahdeksi myoniksi. Nämä myonit havaitaan hiukkasilmaisimessa ja myoneille lasketun invariantin massan avulla pääsemme käsiksi “emohiukkasen” eli tässä tapauksessa Z-bosonin massaan.

Histogrammi on erinomainen työkalu hiukkasfysiikan tutkimuksessa. Tekemällä histogrammin invarianttien massojen arvosta, voimme erottaa merkityksettömistä taustatapahtumista ne tapahtumat, jotka ovat kiinnostavia. Eikun tutkimaan!

# Invariantti massa voitaisiin laskea ylläolevan kaavan avulla.
# Se löytyy kuitenkin valmiiksi laskettuna jo datasetin viimeisestä sarakkeesta "M", joten käytetään sitä.
# Tallennetaan invarianttien massojen sarake omaan muuttujaan
invariantti_massa = kaksi_myonia['M']

# Piirretään histogrammi kahden myonin invarianteista massoista 300 pylväällä
fig = plt.figure(figsize=(15, 10))
plt.hist(invariantti_massa , bins=300)

# Näillä riveillä määritellään otsikko sekä akseleiden tekstit.
plt.xlabel('Invariantti massa [GeV/c²]', fontsize=15)
plt.ylabel('Tapahtumien lukumäärä', fontsize=15)
plt.title('Kahden myonin invariantti massa', fontsize=15)

# Näytetään kuvaaja
plt.show()
../_images/a58a7b5fb639195738aa383879a9c65db2f16aeacdd754cd1ed95077035d4e90.png

Huomataan, että muutamilla invariantin massan arvoilla histogrammiin syntyy piikki. Nämä piikit vastaavat emohiukkasten massaa, joista kaksi myonia ovat peräisin. Tutkitaan tarkemmin histogrammin väliä 80 GeV - 100 GeV.

# Piirretään histogrammi kahden myonin invarianteista massoista 100 pylväällä välillä 80 GeV - 100 GeV
fig = plt.figure(figsize=(15, 10))
plt.hist(invariantti_massa , bins=100, range=(80,100))

# Näillä riveillä määritellään otsikko sekä akseleiden tekstit.
plt.xlabel('Invariantti massa [GeV/c²]', fontsize=15)
plt.ylabel('Tapahtumien lukumäärä', fontsize=15)
plt.title('Kahden myonin invariantti massa', fontsize=15)

# Näytetään kuvaaja
plt.show()
../_images/1a2acac2777ad018bb69d7338dfe4af3329ccada3a96ecfcee4ac948f70ee20f.png

Huomataan, että datasta erottuu selkeä piikki noin 91 GeV kohdalla. Tämä johtuu siitä, taustatapahtumissa syntyvien kahden myonin lisäksi syntyy paljon sellaisia tapahtumia, joissa myonien invariantti massa on lähellä 91 GeV:iä. Tämä tarkoittaa sitä, että myonit ovat peräisin johtain hiukkasesta, jonka massa on 91 GeV. Tämä hiukkanen tunnetaan nimellä Z-bosoni.

Kokeile itse etsiä alkuperäisestä datasta toinen piikki, ja katso löydätkö jonkin toisen hiukkasen! Mikä hiukkanen voisi olla kyseessä?