Unterabschnitte


ROOT

Allgemeines

ROOT ist eine am CERN entwickelte Software, die speziell für die Analyse großer Datenmengen in der Teilchenphysik, wie sie jetzt z.B. am LHC anfallen, entwickelt wurde. ROOT ist der Nachfolger des in Fortran geschriebenen PAW (Physical Analysis Workstation), dessen Entwicklung eingestellt wurde, als abzusehen war, dass es den Anforderungen des LHC-Projektes nicht mehr gewachsen sein würde. Die nun verwendete Programmiersprache ist C++. Durch die Verwendung des C++-Interpreters CINT können Programme für ROOT auch einem interpretierten Modus ausgeführt werden. Neben der Teilchenphysik wird ROOT mittlerweile auch in vielen anderen Bereichen eingesetzt, in denen große Mengen an Daten analysiert werden müssen. ROOT ist ein sehr mächtiges Werkzeug, das bedeutend mehr kann, als Sie in diesem Versuch brauchen werden. Wenn Sie daran interessiert sind, sich in ROOT einzuarbeiten finden Sie unter http://root.cern.ch Einführungen und fortgeschrittene Beispiele. Für die Durchführung des Versuches reicht es aber, wenn Sie sich mit der Benutzung der folgenden Makros vertraut machen. Da sowohl ROOT als auch Linux case-sensitive sind, achten Sie bei der Eingabe der Befehle immer auf Groß- und Kleinschreibung.

Lassen Sie sich von Ihrem Betreuer das Arbeitsverzeichnis zeigen. Geben Sie dort im Terminal

mkdir gruppenname
tar xvf cuts.tar.gz -C gruppenname
cd gruppenname

ein, wobei Sie gruppenname am besten durch Ihre/n Nachnamen ersetzen. Der erste Befehl erstellt das entsprechende Verzeichnis, das Ihnen zur Ablage Ihrer Daten dienen wird, der zweite entpackt die notwendigen Files und mit dem dritten wechseln Sie in das Verzeichnis.

Starten Sie nun mit

root -l

ROOT. (Das -l unterdrückt den Splash-Screen beim Starten.)

Da ROOT zu einem großen Teil über die Kommandozeile gesteuert wird, sehen Sie zunächst nur eine Veränderung des sogenannten Prompts in

root [0]

Jetzt können Sie Befehle eingeben. ROOT unterstützt die Vervollständigung von Befehlen mittels der Tabulator-Taste. Dies kann Ihnen auch helfen, wenn Sie die Syntax zum Aufrufen eines Makros vergessen haben. Tippen Sie einfach die Anfangsbuchstaben des Makros und drücken Sie TAB, um die möglichen Übergabeparameter zu sehen. Bereits eingegebene Befehle können Sie mit den Pfeiltasten wieder hervorholen. Sie beenden ROOT mit dem Befehl .q (Achten Sie auf den Punkt!)

N-Tupel

Die für diesen Versuch benötigten Daten sind als N-Tupel gespeichert. Wie in einer Datenbank sind für jedes Ereignis die charakteristischen Größen enthalten, die in Kapitel 4.2.1 erklärt werden. Es handelt sich bei einem ROOT-N-Tupel also nicht um einen Vektor, sondern eher um eine Matrix mit 15 Zeilen (für die 15 charakteristischen Größen) und z.B. bei den MC-N-Tupeln 100 000 Spalten (für die 100 000 Ereignisse).

Ihnen stehen vier Monte-Carlo-N-Tupel, sieben Daten-N-Tupel bei den 7 verschiedenen Energien und 3 auf Myonen vorselektierte N-Tupel (d.h. andere Ereignisse sind durch grobe Schnitte stark unterdrückt) zur Verfügung (siehe Tabelle C.1).


Tabelle: Übersicht über die ROOT-Datensätze
Name Art Energie
Elektronen Monte-Carlo 91.28 GeV
Myonen Monte-Carlo 91.00 GeV
Taus Monte-Carlo 91.00 GeV
Hadronen Monte-Carlo 91.25 GeV
ecm1 OPAL-Daten 88.39 GeV
ecm2 OPAL-Daten 89.38 GeV
ecm3 OPAL-Daten 90.23 GeV
ecm4 OPAL-Daten 91.24 GeV
ecm5 OPAL-Daten 92.06 GeV
ecm6 OPAL-Daten 93.08 GeV
ecm7 OPAL-Daten 93.91 GeV
afbm2 vorselektierte Daten 89.45 GeV
afbpeak vorselektierte Daten 91.18 GeV
afbp2 vorselektierte Daten 93.00 GeV


Makros

Damit Sie diesen Versuch auch ohne ROOT-Kenntnisse gut bewältigen können, stehen Ihnen schon vorgefertigte Makros zur Verfügung, die Ihnen die “unphysikalischen” Arbeitsschritte abnehmen.

mcplots

Um die Effizienz Ihrer Selektion zu bestimmen, steht Ihnen das Makro

mcplots(TCut finalcut, const char* variable)
zur Verfügung.

Dabei werden alle vier Monte-Carlo-Simulationen mit den von Ihnen gewählten cuts geplottet. TCut finalcut ist dabei der Ausdruck, den die Ereignisse erfüllen müssen, wenn Sie sie in Ihrer Selektion behalten wollen. Wenn Sie z.B. nur Ereignisse behalten wollen, bei denen mehr als drei geladene Spuren registriert wurden, müssten Sie den Ausdruck "NCharged>3" eingeben. Mehrere Bedingungen können mit dem logischen UND (&&) verknüpft werden. Beachten Sie, dass Sie Ihren Ausdruck wie einen string zwischen Anführungszeichen setzen müssen.

Mit const char* variable bestimmen Sie die Größe, die Sie auf der x-Achse plotten möchten. Dabei können Sie alle Größen einsetzen, die in Kapitel 4.2.1 aufgelistet sind. Auch kombinierte Variablen wie z.B. "E_hcal+E_ecal" sind möglich.

Wenn Sie keine Argumente übergeben, wird standardmäßig E_ecal ohne Schnitt ausgegeben.

Abbildung C.1: Monte-Carlo-Simulationen mit Hadronencut
Image mcplots

Beispiel:

 
mcplots("Ncharged>4", "E_ecal+E_hcal")
mcplots("E_ecal/(2*E_lep)>0.8 && 1<Pcharged && Pcharged<6", "Cos_thru")

over

Zur weiteren Überprüfung Ihrer cuts gibt es die Möglichkeit, mit

over(TCut finalcut, const char* variable, TFile *selektion, TFile *ecm, Int_t c1, Int_t c2)

die mit TCut finalcut selektierten, echten Ereignisse geeignet skaliert über die Monte-Carlo-Simulation TFile *selektion zu plotten, um beide Verteilungen miteinander zu vergleichen. Im Idealfall sollten beide Verteilungen übereinstimmen. Warum ist eine Skalierung notwendig? (Denken Sie an die Größe der N-Tupel.)

Die Parameter *ecm, c1 und c2 brauchen Sie nicht für die Versuchsdurchführung. Mit c1 und c2 können Sie den bin-Bereich (zwischen 1 und 100) des Histogramms auswählen, in dem die Verteilung normiert werden soll. Der Parameter TFile *ecm bestimmt, mit welchem echten Datenfile Sie die Monte-Carlo-Simulation vergleichen. Die Namen der Files sind in Tabelle C.1 angegeben. Der default-Wert ist ecm4. Können Sie sagen, warum dies der Fall ist?

Beispiel:

 
over("E_ecal/(2*E_lep)>0.8", "Cos_thru", Elektronen)
over("E_ecal/(2*E_lep)<0.3", "Cos_thru", Myonen, ecm1, 10, 60)

ecmplots

Wenn Sie glauben, dass Sie gute Schnitte gefunden haben, können Sie diese nun auf die echten Daten anwenden. Dazu steht Ihnen das Makro

ecmplots(TCut finalcut, const char* variable)

zur Verfügung, das wie mcplots funktioniert. Sie sehen nun auf einen Blick, wie viele der echten Ereignissen Sie bei verschiedenen Schwerpunktsenergien mit Ihren Auswahlkriterien behalten.

Beachten Sie, dass Sie für Elektronen anders vorgehen müssen.

Beispiel:

 
ecmplots("Ncharged>4", "E_ecal")


tfit

Für Elektronen muss berücksichtigt werden, dass die Reaktion \(e^{+}e^{-} \rightarrow e^{+}e^{-}\) nicht nur über den s-, sondern auch über den t-Kanal stattfinden kann. Auch die Interferenz der beiden Kanäle muss berücksichtigt werden. Für die Messung der \(Z^{0}\)-Parameter möchte man jedoch nur die s-Kanal-Beiträge behalten, da nur sie einen Beitrag zur Zerfallsbreite des \(Z^{0}\)-Bosons liefern. Die Kanaltrennung kann mit dem Makro

tfit(TCut finalcut, TFile *ecm)

durchgeführt werden, das dazu die unterschiedlichen Winkelverteilungen ausnutzt (siehe Kapitel 2.4). Mit ecm wählen Sie das Datenfile aus, für das die Trennung durchgeführt werden soll. TCut finalcut müssen Sie wie üblich durch Ihre Schnitte ersetzen.

Das Makro zeigt Ihnen in mehreren Schritten, wie diese Trennung genau durchgeführt wird. Doppelklicken sie einfach, um von einem Schritt zum nächsten zu gelangen.

Achtung! Bei diesem Makro ist keine Berücksichtigung des Untergrundes vorgesehen. Achten Sie deshalb darauf, dass der skalierte Untergrund weniger als 0.3% beträgt.

Beispiel:

 
tfit("E_ecal/(2*E_lep)>0.8", ecm6)

bwn

Wenn Sie die Wirkungsquerschnitte bei den verschiedenen Schwerpunktsenergien berechnet haben, können Sie mit dem Makro

bwn(TString whattofit)
eine Breit-Wigner-Kurve an die erhaltenen Punkte fitten. Das Makro verlangt von Ihnen die Eingabe der Wirkungsquerschnitte und der dazugehörigen Unsicherheiten, die Sie natürlich auch berechnet haben sollten. Anschließend können Sie entscheiden, welche Korrekturen durchgeführt werden sollen. Die \(Z^{0}\)-Parameter \(M_{Z}\), \(\Gamma_{Z}\) und \(\sigma_{peak}\) erscheinen in natürlicher Weise in der Parametrisierung der Fitfunktion und können neben dem Graphen abgelesen werden (siehe hierzu auch Kapitel 2).

Beispiel:

 
bwn("Myonen")
bwn("Taus")

asyskelett

Um die Vorwärts-Rückwärts-Asymmetrie der Reaktion \(e^{+}e^{-} \rightarrow \mu^{+}\mu^{-}\) zu bestimmen, starten Sie das Makro

asyskelett(TCut finalcut, TFile *ecm)

Ähnlich wie bei tfit können Sie sich wieder durch die einzelnen Schritte “durchklicken”. Die Fitfunktion hat die Form


$\displaystyle f(x) = P_{1}\cdot \left(1+x^{2}\right) + P_{2}\cdot\frac{4}{3}\cdot P_{1}\cdot x $

Der Parameter \(P_{2}\) gibt die Asymmetrie an. Können Sie sagen, aus welcher Gleichung dies folgt? (Hinweis: Kapitel 2)

Beispiel:

 
asyskelett("E_ecal/(2*E_lep)<0.3", ecm2)

asy

Wenn Sie für alle zehn Schwerpunktsenergien die Asymmetrie und die dazugehörige Unsicherheit bestimmt haben, können Sie das Makro

asy()

aufrufen, das wieder die Eingabe der Werte und die durchzuführenden Korrekturen verlangt. Ohne Strahlungskorrekturen werden die Messpunkte einfach an eine Gerade gefittet, mit Strahlungskorrekturen wird diese Gerade leicht nach links verschoben und knickt im oberen Bereich wegen des “radiative returns” leicht ab. Die Asymmetrie bei der $Z^0$-Masse erhalten Sie in der rechten oberen Ecke des Graphikfensters. Diskutieren Sie in Ihrer Auswertung besonders den Einfluss der Statistik auf Ihr Ergebnis.

cuts.cpp

Damit Sie nicht jedesmal Ihre cuts von Neuem eingeben müssen, können Sie Ihre Schnittkriterien in der Datei cuts.cpp in Ihrem Verzeichnis festhalten. Die Syntax ist die gleiche wie bei der direkten Eingabe. Am besten öffnen Sie zwei Terminalfenster (eines mit ROOT und eines mit cuts.cpp). Nach einer Veränderung der der Datei müssen Sie in ROOT

 
.x cuts.cpp
eingeben, damit die Änderungen wirksam werden. Anschliessend können Sie mit finalcut_x ( \(x \in \{e,m,t,h\}\)) auf die cuts zugreifen.

Beispiel:

 
mcplots(finalcut_t, "E_ecal")

Graphen

Sobald Sie ein Makro ausgeführt haben, können Sie die von ROOT erstellten Histogramme und Graphen interaktiv mit der Maus manipulieren. Sie können z.B. einen bestimmten Bereich eines Graphen vergrößern, wenn Sie die entsprechenden Intervalle auf den Achsen markieren. Um die ursprüngliche Ansicht wiederherzustellen, klicken Sie mit der rechten Maustaste auf die entsprechende Achse und wählen UnZoom. Ebenso können Sie auch eine logarithmische Achseneinteilung wählen oder einfach nur die Farben verändern. Probieren Sie ein bisschen herum! Wenn Sie ein Bild speichern möchten, können Sie dieses unter File/Save tun.