SMD Hands-On: Entfalten mit TRUEE Umgebungsvariablen Um TRUEE (mit ROOT) laufen lassen zu können, müssen einige Umgebungsvariablen gesetzt sein. Ihr könnt diese direkt in der Shell definieren. Besser ist es jedoch, sie permanent zu definieren, so dass jede neu geöffnete Shell sie kennt. Unter Linux habt ihr in eurem Home-Verzeichnis (cd ∼) die Datei .bashrc, wobei der Punkt vorne wichtig ist. Wenn ihr sie nicht habt, könnt ihr sie euch erstellen. Unter Mac OS heißt die entsprechende Datei .bash_profile . Folgende Zeilen sollten - angepasst an die Pfade auf eurem Rechner - in der .bashrc auftauchen: export export export export export ROOTSYS=/home/doert/software/root/root_v5.26.00e TRUEE_BUILD=/home/doert/software/TRUEE/trunk/build LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ROOTSYS/lib:$TRUEE_BUILD/lib DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH PATH=$ROOTSYS/bin:$TRUEE_BUILD/bin:$PATH Installation: Zum Installieren von TRUEE müssen bereits ROOT und cmake installiert sein. In ..../TRUEE/trunk/ befindet sich das Textfile INSTALL, das eine Installationsanleitung liefert. Die wesentlichen Schritte sind • cd trunk/build/ cmake ../ Damit wird aus den einzelnen Source Code Dateien die Library libTrueeCore gebildet. Evtl. ist es nötig, beim Aufruf den ganzen Pfad eurer cmake Installation anzugeben: /home/doert/software/cmake/bin/cmake ../ • Jetzt muss noch das executable gebaut werden. Dies macht man im example/build Ordner: cd trunk/example/build cmake ../ Jetzt müsste in trunk/example/build/bin die ausführbare Datei truee liegen, zusammen mit Beispielen für Parameterfiles. Textdateien öffnen und editieren: Die Textfiles, wie z.B. INSTALL oder parameter.config könnt ihr mit einem beliebigen Texteditor öffnen. Falls ihr keinen installiert habt, dürfte VI funktionieren. Den gibt es eigentlich immer. vi INSTALL öffnet die Datei. Mit ”i” wechselt man in den INSERT Modus, den man mit ”Esc” wieder verlässt. Im INSERT Modus kann man schreiben und löschen, wie gewohnt. Außerhalb des INSERT Modus funktionieren Steuerbefehle wie • :w speichern • :x speichern und verlassen • :q verlassen ohne zu speichern ROOT Dateien im Browser ansehen: root new TBrowser ROOT Dateien lassen sich am einfachsten im TBrowser ansehen: 1 Beispieldaten: In TRUEE/example_data/: • data.root: Vom Experiment genommene Daten. Die wahre Verteilung kennt man für Daten normalerweise nicht. Für einen späteren Vergleich mit dem Entfaltungsergebnis ist sie bei diesem Beispiel allerdings doch enthalten. Im ROOT Tree tree gibt es – x_m: gemessene Verteilung der getriggerten Events – x_true: wahre Verteilung der getriggerten Events (normalerweise nicht in Datenfiles vorhanden) Zusätzlich gibt es das Histogramm hTrue, das die wahre physikalische Verteilung enthält. Diese beinhaltet alle Events, also nicht nur die Events, die das Experiment getriggert haben. Auch diese Verteilung ist normalerweise für Daten nicht vorhanden (andernfalls müssten wir nicht entfalten). • response.root: Monte Carlo Events, die zum Erstellen der Response-Matrix dienen. Im ROOT Tree tree gibt es – x_m: gemessene Verteilung – x_true: wahre Verteilung Zusätzlich gibt es wieder das Histogramm hTrue, das die volle generierte Verteilung der MC events (vor dem Experiment-Trigger) enthält. Diese wird benötigt, falls eine Akzeptanzkorrektur durchgeführt werden soll. TRUEE ausführen: In /home/doert/software/TRUEE/trunk/example/build/bin liegt die Datei example-parameter.config. Diese Datei ist die Beispiel-Steuerkarte für TRUEE. Hier können die Pfade und Dateinamen der zu entfaltenden Daten und des passenden Monte Carlos definiert werden, Binnings für intern verwendete Histogramme und das finale Ergebnis-Histogramm gewählt werden und die Regularisierungsstärke bestimmt werden. Das Zeichen # leitet hier Kommentare ein. Zunächst solltet ihr die Beispiel-Steuerkarte umbenennen: mv example-parameter.config parameter.config da TRUEE standardmäßig die Datei parameter.config sucht und verwendet. Jetzt könnt ihr editieren und ausprobieren. Die wichtigsten Keywords sind hier kurz erläutert: # Hier kann ein Projekttitel gewählt werden title: TRUEE example - toy Monte Carlo unfolding # Um TRUEE im Testmodus zu starten, muss "mode: test" gesetzt sein. # Falls nicht, läuft TRUEE im normalen Modus und entfaltet die Daten. mode: notest # printflag gibt an, ob man den Textoutput sehen will oder nicht printflag: 1 # Hier gibt man die Anzahl aller Observablen an, die verwendet werden. # Dazu zählen alle Größen außer der Zielvariablen. number_all_variables: 1 # Hier wird der Pfad und Dateiname des Datenfiles angegeben. source_file_data: PFAD/data.root # Der Name des ROOT Tree’s, der die verwendeten Parameter enthält, # wird hier angegeben. In unserem Beispiel heißt er einfach "tree" roottree_data: tree # Das gleiche passiert für das Monte Carlo File. source_file_moca: PFAD/response.root roottree_moca: tree 2 # branch_x definiert den Namen der Zielvariablen, also der Variablen, # deren Verteilung wir suchen. branch_x: x_true # limits_x gibt den Wertebereich an, in dem TRUEE arbeiten soll. limits_x: 4 16 # Hier definiert man den Namen der ersten Observablen, die verwendet wird. branch_y: x_m # Die Anzahl der Bins dieser Observablen wird gewählt. # Diese bestimmt die Feinheit der Response-Matrix in dieser Dimension. number_y_bins: 50 # Die Anzahl der Freiheitsgrade bestimmt die Regularisierungsstärke. # Wenige Freiheitsgrade bedeuten starke Regularisierung. number_deg_free: 16 # minimale Anzahl Freiheitsgrade, # die vom Programm ausprobiert wird max_number_deg_free: 16 # maximale Anzahl die probiert wird. # Wenn beide Angaben gleich sind, wird nur dieser Wert verwendet. # Anzahl der Knoten: Geben quasi das interne Binning der gesuchten Verteilung an. # Knoten sind Stützstellen für Spline Fits, aus denen die Verteilung gebildet wird. number_knots: 50 # minimale Anzahl Knoten, die verwendet wird. max_number_knots: 51 # maximale Anzahl Knoten, die ausprobiert wird # Minimale und maximale Anzahl der Bins des Ergebnishistogramms können angegeben werden. # Falls nicht angegeben, wählt TRUEE die Anzahl der Bins selbst. # Es sollten nie wesentlich mehr Bins als Anzahl Freiheitsgrade gewählt werden. number_bins: 16 max_number_bins: 16 # Die Grenzen des Ergebnis-Histogramms können selbst gewählt werden. # Falls nicht angegeben, bestimmt TRUEE sie selbst. # bin_limits: 4 4.5 5 5.5 6 6.5 7 7.5 8 8.5 9 9.5 10 10.5 11 11.5 12 12.5 13 13.5 14 14.5 15 15.5 16 # Grundsätzlich entfaltet TRUEE die Verteilung der getriggerten Events. # Das Programm kann jedoch auch die Akzeptanz des Detektors berücksichtigen und damit # auf die wahre Verteilung der Daten vor dem Experiment-Trigger rückschließen. # Die Akzeptanz bestimmt TRUEE aus dem Verhältnis der generierten Monte Carlo Events # zu den Monte Carlo Events, die das Experiment getriggert haben. # Um solch eine Akzeptanzkorrektur durchzuführen muss TRUEE also die Verteilung wissen, # mit der die Monte Carlo Events produziert wurden. # Da in unserem Beispiel eine flache Verteilung vorliegt, ist der Wert nicht x-abhängig, # sondern eine Konstante. # Wenn mc_func nicht definiert ist, entfaltet TRUEE die Verteilung der getriggerten Events # mc_func: 62500. Jetzt kann TRUEE im gleichen Verzeichnis (noch immer /home/doert/software/TRUEE/trunk/example/build/bin) gestartet werden: ./truee 3 Der TRUEE Output: TRUEE gibt eine Reihe von ROOT Dateien aus, die sich nun im Verzeichnis trunk/example/build/bin befinden. Diese können nun mit ROOT’s TBrowser geöffnet und angesehen werden. Die wichtigsten Output Dateien sind • MCfileA.root Hier lässt sich an Hand der Monte Carlo Simulationen überprüfen, ob die gewählte(n) Observable(n) gut mit der Zielvariablen korreliert sind. • CheckParameterSets.root Hier lässt sich überprüfen, ob die Datenpunkte des Ergebnis-Histogramms zu stark miteinander korreliert sind. Die enthaltenen Plots sind vor allem sinnvoll, wenn Bereiche in der Anzahl der Freiheitsgrade und der Knotenanzahl gewählt wurden. Ein großer Korrelationswert deutet auf ein tendenziell schlechteres Entfaltungsergebnis hin. • DataPointCorrelation.root Hier findet sich der ”‘Wäscheleinenplot”’. Er zeigt eine Verteilung von p-Werten (deren Herkunft hier jetzt nicht erläutert werden soll). Eine gute Entfaltung zeichnet sich durch eine ungefähre Gleichverteilung dieser Werte aus. Hängt die Wäscheleine durch, spricht das für ein schlechtes Entfaltungsergebnis. • ResultFile.root Hier befinden sich die Ergebnis-Histogramme der Entfaltung. • CheckUnfolding.root Mit dieser Datei kann die Konsistenz des Entfaltungsergebnisses überprüft werden. Die Observablen-Verteilung der Datenevents VOR der Entfaltung werden verglichen mit der ObservablenVerteilung der durch den Entfaltungsfit umgewichteten Monte Carlo Events. Dies ist vor allem sinnvoll, wenn TRUEE Observablen bekannt sind, die nicht beim Entfalten verwendet werden. Die Verteilung in den Observablen, die im Entfaltungsfit benutzt werden, sollten ja ohnehin gleich sein. Im Testmode gibt es zusätzlich noch das File • TestModeCompareDist.root Vergleich mit der wahren Verteilung: In dem Ordner TRUEE/example_data/ liegt die Datei vergleich.C. Dies ist ein ROOT Macro, mit dem das TRUEE Ergebnis mit der wahren Verteilung, nach der die Beispieldaten generiert wurden, verglichen werden kann. Sie lässt sich als Textfile editieren. In Zeile 32 und 33 muss YOURPATH durch den entprechenden Pfad auf eurem Rechner ersetzt werden. Dann lässt sich das Macro ausführen, wobei man das Entfaltungsergebnis aus ResultFile.root durch Angabe der Anzahl von Knoten, Freiheitsgraden und Bins auswählen muss. Folgende Eingabe vergleicht ein TRUEE Ergebnis, das mit 50 Knoten, 20 Freiheitsgraden und 18 Bins erstellt wurde, mit der wahren Verteilung: root .L vergleich.C+ vergleich(50,20,18) Dies macht jedoch hier nur Sinn, wenn eine Akzeptanzkorrektur beim Entfalten durchgeführt wurde. 4
© Copyright 2025 ExpyDoc