ingo.strauch.diplom - Desy
ingo.strauch.diplom - Desy
ingo.strauch.diplom - Desy
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.3. DAS FÜR DIESE ARBEIT GEWÄHLTE MODELL 33<br />
4.3.1 Klassenhierarchie<br />
In dieser hier im folgenden vorgestellten Analyse kommen die beiden Vererbungsbäume aus Abbildungen<br />
4.1 und 4.2 zum Einsatz, d.h. der Baum für die generellen Klassen sowie derjenige<br />
für die Zeigerklassen. Zusätzlich stehen weitere Klassen zur Verfügung, die unter dem Oberbegriff<br />
“Detektorobjekte” zusammengefaßt werden. Sie enthalten Informationen über verschiedene<br />
Typen von Endzuständen, Teilchen aus dem elektromagnetischen Kalorimeter, Myonkandidaten<br />
und Spuren. Die Verbindung zu den anderen Klassen ist dergestalt, daß identifizierte Teilchen<br />
einen oder mehrere Zeiger auf Detektorobjekte besitzen. Ein Beispiel wäre das gestreute Elektron,<br />
dem ein Objekt der H1LtEmParticle Klasse zugeordnet ist. Diese Klasse speichert<br />
Informationen über Teilchen, welche Energie im elektromagnetischen Teil des Kalorimeters deponiert<br />
haben. Von dort sind unter anderem der Spur-Cluster Abstand sowie detailierte Informationen<br />
zu den ursprünglichen Spuren und/oder Clustern zugänglich.<br />
Die Detektorobjekte stammen aus den Informationen, die der LOTUS Code bereitstellt. Dabei<br />
handelt es sich um ein Softwarepaket, das auf H1PHAN aufbaut. Zusätzlich führt es aber<br />
schon eine endgültige Kalibrierung durch, um die Daten zu verbessern. LOTUS stellt auf diese<br />
Weise einen Großteil der Variablen zur Verfügung, die bei H1-Analysen benötigt werden<br />
[Hei00]. Eine Liste aller LOTUS Variablen findet sich in [H1 99c].<br />
Für das OO-Projekt wurde eine Wrapper-Bibliothek namens lotus++ bereitgestellt, die<br />
die Informationen aus den FORTRAN Common Blöcken in C++ zugänglich macht. Diese wird<br />
ebenfalls benutzt, um µODS und HAT zu füllen solange es noch keinen Code für H1PHAN++<br />
gibt. Eine Übersicht der derzeitigen Produktionsweise der drei Datenlagen zeigt Abbildung 4.5.<br />
Die Konvertierung zwischen den Formaten auf DST und ODS in beide Richtungen erfolgt mittels<br />
des Paketes bos2oop (siehe auch die Paketübersicht in Anhang A.4), die Erzeugung von<br />
µODS und HAT geschieht mit Hilfe der lotus++ Bibliothek. Dies soll in der Zukunft durch<br />
eine Produktionskette ersetzt werden, in der H1PHAN++ auf ODS aufbauend die übergeordneten<br />
Ebenen erzeugt.<br />
4.3.2 Die konkrete Analyseumgebung<br />
In diesem Abschnitt wird näher auf die konkrete Implementierung der in 4.3.1 vorgestellten Klassenhierarchie<br />
eingegangen. Der Schwerpunkt soll dabei auf den tatsächlich benutzbaren Klassen<br />
liegen. Auf fehlende Funktionalität oder bisher nur unzureichend implementierte und somit noch<br />
nicht benutzbare Klassen wird zumindest hingewiesen.<br />
Kernstück für die Datenanalyse auf dem Teilchenniveau ist die Klasse H1ParticleCand,<br />
die prinzipiell für jedes Objekt benutzt wird, das im Detektor gemessen wurde und bestimmte<br />
Mindestvoraussetzungen erfüllt. Sie erbt von H1Particle die kinematischen Informationen<br />
pt, θ, ϕ, Energie im elektromagnetischen und hadronischen Kalorimeter sowie die gemessene<br />
Ladung. Ebenfalls in der Basisklasse befindet sich ein Datenelement H1Bits, das 32 binäre Zustände<br />
speichern kann. Dies wird z.B. benutzt um zu kennzeichnen, ob ein Teilchen gewissen<br />
Kriterien der Identifikation genügt. Die Klasse H1ParticleCand selbst beinhaltet zusätzlich<br />
die Relationen zu Müttern/Töchtern und seinem Vertex. Diese Funktionalität ist aber noch nicht<br />
implementiert. Die Behandlung von zugehörigen Spuren und Clustern fehlt noch ganz.