<jupyter_start><jupyter_text><NAME> - ett exempel från forskningen I denna övning ska vi se på hur man sökte efter Higgsbosonen och hur vetenskaplig forskning ofta fungerar.Datan som används här är äkta, betydelsefulla mätdata från de nobelprisbelönta experimenten som bevisade [Higgsbosonens](https://fi.wikipedia.org/wiki/Higgsin_bosoni) existens. Nu är dessa data också tillgängliga för dig så att du själv får spåra partikeln.Tillvägagångssättet som beskrivs i detta dokument är allmänt och används inom många grenar av vetenskapen. När vi har någon sorts teoretisk modell för hur vi antar att resultaten borde se ut kan vi göra mätningar och jämföra våra resultat med modellen. Kanske resultaten bekräftar vår modell, kanske uppstår nya frågor och vi märker att vår teori måste förändras för att förklara resultaten. Vi genomgår den processen varv efter varv när vi borrar djupare in i kunskapen om världen. (Se ["den vetenskapliga metoden"](https://en.wikipedia.org/wiki/Scientific_method))<jupyter_code>import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

%matplotlib inline
# Vi talar snart om dessa datafiler.

csvs = [pd.read_csv('http://opendata.cern.ch/record/5200/files/4mu_2011.csv'), pd.read_csv('http://opendata.cern.ch/record/5200/files/4e_2011.csv'), pd.read_csv('http://opendata.cern.ch/record/5200/files/2e2mu_2011.csv')]
csvs += [pd.read_csv('http://opendata.cern.ch/record/5200/files/4mu_2012.csv'), pd.read_csv('http://opendata.cern.ch/record/5200/files/4e_2012.csv'), pd.read_csv('http://opendata.cern.ch/record/5200/files/2e2mu_2012.csv')]

fourlep = pd.concat(csvs)<jupyter_output><empty_output><jupyter_text>Enligt standardmodellens antaganden borde Higgspartikeln sönderfalla så, att två Z-bosoner uppstår. Z-bosonerna faller i sin tur sönder till fyra leptoner (gruppen leptoner inkluderar elektroner och myoner). Det är inte den enda processen som producerar leptoner, så vi behöver sålla bort bakgrundsbrus för att observera dessa händelser. Modellen har inte lyckats bestämma higgspartikelns massa, men med genomtänkta gissningar kommer man ganska långt. Man kunde se att sönderfallet till fyra leptoner dominerade vid vissa massor, och där kan vi börja vår sökning.<jupyter_code># Vi kan sätta in gränser för det område vi vill undersöka.

rmin = 70
rmax = 181
nbins = 37

M_hist = np.histogram(fourlep['M'], bins = nbins, range = (rmin,rmax))

hist, bins = M_hist
width = 1.0*(bins[1] - bins[0])
center = (bins[:-1] + bins[1:]) / 2<jupyter_output><empty_output><jupyter_text>Vi använder en simulation för att hjälpa vår forskning. Om vi har en modell för processer där kollisioner sker kan vi jämföra de förväntade resultaten med våra mätresultat. Nedan skapar vi en modell med hjälp av [Monte Carlo](https://sv.wikipedia.org/wiki/Monte_Carlo-metod)-metoden. Värdena är vägda enligt luminositet, tvärsnitt och antal observationer. I praktiken är värdena alltså slumpmässigt genererade enligt en teoretisk modell, som simulerar verkliga experimentresultat. De simulerade punkterna följer alltså samma fördelning som liknande experiment har visat sig följa.<jupyter_code>dy = np.array([0,0,0,0,0,0.354797,0.177398,2.60481,0,0,0,0,0,0,0,0,0,0.177398,0.177398,0,0.177398,0,0,0,0,0,0,0,0,0,0,0,0.177398,0,0,0,0])
ttbar = np.array([0.00465086,0,0.00465086,0,0,0,0,0,0,0,0.00465086,0,0,0,0,0,0.00465086,0,0,0,0,0.00465086,0.00465086,0,0,0.0139526,0,0,0.00465086,0,0,0,0.00465086,0.00465086,0.0139526,0,0])
zz = np.array([0.181215,0.257161,0.44846,0.830071,1.80272,4.57354,13.9677,14.0178,4.10974,1.58934,0.989974,0.839775,0.887188,0.967021,1.07882,1.27942,1.36681,1.4333,1.45141,1.41572,1.51464,1.45026,1.47328,1.42899,1.38757,1.33561,1.3075,1.29831,1.31402,1.30672,1.36442,1.39256,1.43472,1.58321,1.85313,2.19304,2.95083])
hzz = np.array([0.00340992,0.00450225,0.00808944,0.0080008,0.00801578,0.0108945,0.00794274,0.00950757,0.0130648,0.0163568,0.0233832,0.0334813,0.0427229,0.0738129,0.13282,0.256384,0.648352,2.38742,4.87193,0.944299,0.155005,0.0374193,0.0138906,0.00630364,0.00419265,0.00358719,0.00122527,0.000885718,0.000590479,0.000885718,0.000797085,8.86337e-05,0.000501845,8.86337e-05,0.000546162,4.43168e-05,8.86337e-05])<jupyter_output><empty_output><jupyter_text>Vi kikar på statistiken som bildas här och hur den förhåller sig till de verkliga resultaten från acceleratorn.<jupyter_code># ZZ, ett par tyngre bosoner.

plt.figure(figsize = (15,3))
plt.bar(center, zz, align = 'center', width = width, color = 'b', linewidth = 0, edgecolor = 'black', alpha = 0.5)

plt.xlabel('4 leptoner - invariant massa (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV\n', fontsize = 15)
plt.xlim(rmin,rmax)
plt.show()
# DY, Händelser bestående av enskilda Z-bosoner

plt.figure(figsize = (15,3))
plt.bar(center, dy, align = 'center', width = width, color = 'g', linewidth = 0, edgecolor = 'black', alpha = 0.5)

plt.xlabel('4 leptoner - invariant massa (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV\n', fontsize = 15)
plt.xlim(rmin,rmax)
plt.show()
# ttbar, par av top- och antitop-kvarkar.

plt.figure(figsize = (15,3))
plt.bar(center, ttbar, align = 'center', width = width, color = 'gray', linewidth = 0, edgecolor = 'b', alpha = 0.5)

plt.xlabel('4 leptoner - invariant massa (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV \n', fontsize = 15)
plt.xlim(rmin,rmax)
plt.show()<jupyter_output><empty_output><jupyter_text>Vi slår ihop dessa simulationer av bakgrundsbruset och ser hur vi kan förvänta oss att resultaten ska se ut.<jupyter_code>plt.figure(figsize = (15,5))

# ttbar 
ttbar_bar = plt.bar(center, ttbar, align = 'center', width = width, color = 'gray', linewidth = 0, edgecolor = 'b',
                    alpha = 0.5, label = r'$t\bar{t}$')

# DY
dy_bar = plt.bar(center, dy, align = 'center', width = width, color = 'g', linewidth = 0, edgecolor = 'black',
                 alpha = 0.5, bottom = ttbar, label = 'Z/$\gamma^{*}$ + X')

# ZZ
zz_bar = plt.bar(center, zz, align = 'center', width = width, color = 'b', linewidth = 0, edgecolor = 'black',
                 alpha = 0.5, bottom = ttbar+dy, label = r'ZZ $\rightarrow$ 4l')

plt.title('$ \sqrt{s} = 7$ TeV, L = 2.3 $fb^{-1}$; $\sqrt{s} = 8$ TeV, L = 11.6 $fb^{-1}$ \n', fontsize = 12)
plt.xlabel('$m_{4 leptoner}$ (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV\n', fontsize = 15)
plt.ylim(0,25)
plt.xlim(rmin,rmax)
plt.legend(fontsize = 15)

plt.show()<jupyter_output><empty_output><jupyter_text>Vi ser att det händer saker vid 90 GeV. Detta är Z-bosonens massa, så vi förstår att detta är produkter av Z-bosoners sönderfall. I följande cell markerar vi mätresultaten. Hur bra motsvarar bilderna varandra?<jupyter_code>plt.figure(figsize = (15,5))

xerrs = [width*0.5 for i in range(0, nbins)]
yerrs = np.sqrt(hist)

# ttbar 
ttbar_bar = plt.bar(center, ttbar, align = 'center', width = width, color = 'gray', linewidth = 0, edgecolor = 'b',
                    alpha = 0.5, label = r'$t\bar{t}$')

# DY
dy_bar = plt.bar(center, dy, align = 'center', width = width, color = 'g', linewidth = 0, edgecolor = 'black',
                 alpha = 0.5, bottom = ttbar, label = 'Z/$\gamma^{*}$ + X')

# ZZ
zz_bar = plt.bar(center, zz, align = 'center', width = width, color = 'b', linewidth = 0, edgecolor = 'black',
                 alpha = 0.5, bottom = ttbar+dy, label = r'ZZ $\rightarrow$ 4l')

# Mittaukset.
data_bar = plt.errorbar(center, hist, xerr = xerrs, yerr = yerrs, linestyle = 'None', color = 'black',
                        marker = 'o', label = 'Data')

plt.title('$ \sqrt{s} = 7$ TeV, L = 2.3 $fb^{-1}$; $\sqrt{s} = 8$ TeV, L = 11.6 $fb^{-1}$ \n', fontsize = 12)
plt.xlabel('$m_{4l}$ (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV\n', fontsize = 15)
plt.ylim(0,25)
plt.xlim(rmin,rmax)
plt.legend(fontsize = 15)

plt.show()<jupyter_output><empty_output><jupyter_text>Vår modell av bakgrundsbruset motsvaras inte helt av mätresultaten. För jämförelsens skull gjorde fysikerna beräkningar på sönderfallsenergierna från Higgsbosonen vid olika uppskattningar av bosonens massa. I nästa graf ser vi hurudan energifördelning som borde kunna mätas om Higgsbosonens massa var 125 GeV.<jupyter_code># HZZ, teoretiskt antagande om Higgsbosonens sönderfallsprodukter utgående från massan 125 GeV

plt.figure(figsize = (15,3))
plt.bar(center, hzz, align = 'center', width = width, color = 'w', linewidth = 1, edgecolor = 'r')

plt.xlabel('4 leptoner - invariant massa (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV\n', fontsize = 15)
plt.xlim(rmin,rmax)
plt.show()<jupyter_output><empty_output><jupyter_text>Bonusfråga: Hur kan en partikel med massan 125 GeV sönderfalla till två Z-bosoner med massa över 90 GeV? Vi lägger till den senaste grafen till grafen över bakgrundsbruset.<jupyter_code>plt.figure(figsize = (15,5))

# ttbar 
ttbar_bar = plt.bar(center, ttbar, align = 'center', width = width, color = 'gray', linewidth = 0, edgecolor = 'b',
                    alpha = 0.5, label = r'$t\bar{t}$')

# DY
dy_bar = plt.bar(center, dy, align = 'center', width = width, color = 'g', linewidth = 0, edgecolor = 'black',
                 alpha = 0.5, bottom = ttbar, label = 'Z/$\gamma^{*}$ + X')

# ZZ
zz_bar = plt.bar(center, zz, align = 'center', width = width, color = 'b', linewidth = 0, edgecolor = 'black',
                 alpha = 0.5, bottom = ttbar+dy, label = r'ZZ $\rightarrow$ 4l')

# HZZ
hzz_bar = plt.bar(center, hzz, align = 'center', width = width, color = 'w', linewidth = 1, edgecolor = 'r',
                  bottom = ttbar+dy+zz, label = '$m_{H}$ = 125 GeV')

# Mittaukset.
data_bar = plt.errorbar(center, hist, xerr = xerrs, yerr = yerrs, linestyle = 'None', color = 'black',
                        marker = 'o', label = 'Data')

plt.title('$ \sqrt{s} = 7$ TeV, L = 2.3 $fb^{-1}$; $\sqrt{s} = 8$ TeV, L = 11.6 $fb^{-1}$ \n', fontsize = 12)
plt.xlabel('$m_{4 leptoner}$ (GeV)', fontsize = 15)
plt.ylabel('Händelser / 3 GeV\n', fontsize = 15)
plt.ylim(0,25)
plt.xlim(rmin,rmax)
plt.legend(fontsize = 15)

plt.show()<jupyter_output><empty_output><jupyter_text>Mängden punkter som används här är ganska liten, men det ger en genuin bild in i forskningsarbetet. Det är en mycket liten andel av sönderfallen som resulterar i fyra leptoner (kriteriet för dessa mätresultat), så denna statistik består av mätpunkter som har samlats under åren 2011-2012. Mer info om mätningarna hittas [här](http://opendata.cern.ch/record/5500).<jupyter_code># Om man vill kontrollera datan närmare hittas information från alla observationer av fyra partiklar

pd.options.display.max_columns = 50
fourlep.head()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14330247496693746, 'fraction_numerical': 0.09361420744379369, 'mean_word_length': 4.586807387862796, 'pattern_counts': {'":': 0, '<': 38, '<?xml version=': 0, '>': 38, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '9', 'dir': 'jupyter-structured-clean-dedup', 'id': '145455', 'license': 'CC-BY-4.0', 'n_tokens_mistral': 4922, 'n_tokens_neox': 4280, 'n_words': 1047, 'path': 'Demo/Partikelfysik/Jakten-pa-higgs.ipynb', 'repo_name': 'cms-opendata-education/cms-jupyter-materials-swedish', 'size': '10595'}