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!)
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).
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.
Um die Effizienz Ihrer Selektion zu bestimmen, steht Ihnen das Makro
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.
Beispiel:
mcplots("Ncharged>4", "E_ecal+E_hcal") mcplots("E_ecal/(2*E_lep)>0.8 && 1<Pcharged && Pcharged<6", "Cos_thru")
Zur weiteren Überprüfung Ihrer cuts gibt es die Möglichkeit, mit
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)
Wenn Sie glauben, dass Sie gute Schnitte gefunden haben, können Sie diese nun auf die echten Daten anwenden. Dazu steht Ihnen das Makro
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")
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)
Wenn Sie die Wirkungsquerschnitte bei den verschiedenen Schwerpunktsenergien berechnet haben, können Sie mit dem Makro
Beispiel:
bwn("Myonen") bwn("Taus")
Um die Vorwärts-Rückwärts-Asymmetrie der Reaktion zu bestimmen, starten Sie das Makro
Ähnlich wie bei tfit können Sie sich wieder durch die einzelnen Schritte “durchklicken”. Die Fitfunktion hat die Form
Der Parameter 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)
Wenn Sie für alle zehn Schwerpunktsenergien die Asymmetrie und die dazugehörige Unsicherheit bestimmt haben, können Sie das Makro
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 -Masse erhalten Sie in der rechten oberen Ecke des Graphikfensters. Diskutieren Sie in Ihrer Auswertung besonders den Einfluss der Statistik auf Ihr Ergebnis.
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.cppeingeben, damit die Änderungen wirksam werden. Anschliessend können Sie mit finalcut_x ( ) auf die cuts zugreifen.
Beispiel:
mcplots(finalcut_t, "E_ecal")
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.