Seminararbeit in Astroteilchenphysik Dokumentation der Expertengruppe zu Messgeräte für Myonen



Ähnliche Dokumente
Modellbildungssysteme: Pädagogische und didaktische Ziele

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Anleitung über den Umgang mit Schildern

EM-Wellen. david vajda 3. Februar Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören:

Erstellen von x-y-diagrammen in OpenOffice.calc

Primzahlen und RSA-Verschlüsselung

Dokumentation IBIS Monitor

Mediator 9 - Lernprogramm

Animationen erstellen

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Arbeiten mit UMLed und Delphi

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

AutoCAD Dienstprogramm zur Lizenzübertragung

1 Mathematische Grundlagen

Wir arbeiten mit Zufallszahlen

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

GEVITAS Farben-Reaktionstest

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Handbuch ECDL 2003 Basic Modul 5: Datenbank Access starten und neue Datenbank anlegen

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Anwendungshinweise zur Anwendung der Soziometrie

Wie halte ich Ordnung auf meiner Festplatte?

Protokoll des Versuches 7: Umwandlung von elektrischer Energie in Wärmeenergie

Gutes Leben was ist das?

Korrelation (II) Korrelation und Kausalität

Zur drittletzten Zeile scrollen

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Hinweise zum Übungsblatt Formatierung von Text:

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Zahlen auf einen Blick

Bekannte Effekte bei Soft- und Hardware der ESTEC Datenlogger sowie der PC Auswertesoftware

Spezielle Relativitätstheorie

1. Theorie: Kondensator:

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

1 Vom Problem zum Programm

Informationsblatt Induktionsbeweis

1 topologisches Sortieren

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Professionelle Seminare im Bereich MS-Office

Aufgaben Leiten Sie die Formeln (9) und (10) her! Vorbetrachtungen. Der High-Fall

Objektorientierte Programmierung

Bedienung des Web-Portales der Sportbergbetriebe

Papierverbrauch im Jahr 2000

Elektrische Messtechnik Protokoll - Bestimmung des Frequenzgangs durch eine Messung im Zeitbereich

Erstellen der Barcode-Etiketten:

Persönliche Zukunftsplanung mit Menschen, denen nicht zugetraut wird, dass sie für sich selbst sprechen können Von Susanne Göbel und Josef Ströbl

Der Leverage-Effekt wirkt sich unter verschiedenen Umständen auf die Eigenkapitalrendite aus.

FAQ Spielvorbereitung Startspieler: Wer ist Startspieler?

Umwandelung einer Physikalischen Größe in eine Elektrische

Datensicherung. Beschreibung der Datensicherung

Stammdatenanlage über den Einrichtungsassistenten

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

COMPUTERIA VOM SERIENBRIEFE UND ETIKETTENDRUCK

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Simulation LIF5000. Abbildung 1

Anzeige von eingescannten Rechnungen

ltlasten in der Registrierdatenbank löschen

Übung Theoretische Grundlagen

GEONET Anleitung für Web-Autoren

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

AUSBILDUNG eines OBEDIENCE HUNDES

Konfiguration der Messkanäle. Konfiguration der Zeitachse. Abb. 3: Konfigurationsmenü des Sensoreingangs A. Abb. 4: Messparameter Konfigurationsmenü

Mobile Intranet in Unternehmen

Programme im Griff Was bringt Ihnen dieses Kapitel?

Beispiel(unten ist der Spielfeldrand):

Zwischenablage (Bilder, Texte,...)

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

2.8 Grenzflächeneffekte

AutoTexte und AutoKorrektur unter Outlook verwenden

R ist freie Software und kann von der Website.

Konzepte der Informatik

BUCHHALTUNG BUCHFÜHRUNG WO IST ER EIGENTLICH? - DER UNTERSCHIED?

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

BELIEBIG GROßE TAPETEN

Überlege du: Wann brauchen wir Strom. Im Haushalt In der Schule In Büros/Firmen Auf Straßen

Repetitionsaufgaben Wurzelgleichungen

LANGFRISTIGE HAUSAUFGABE (LINEARE GLEICHUNGSSYSTEME)

Handbuch für Redakteure

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Dokumentation für das Spiel Pong

Buchhaltung mit WISO EÜR & Kasse 2011

Der kleine große Unterschied

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Einstein-Wellen-Mobil

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

7 Rechnen mit Polynomen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Erfahrungen mit Hartz IV- Empfängern

Anleitung für Autoren auf sv-bofsheim.de

Dokumentation zur Versendung der Statistik Daten

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Leichte-Sprache-Bilder

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Info zum Zusammenhang von Auflösung und Genauigkeit

Übungen Programmieren 1 Felix Rohrer. Übungen

Transkript:

Seminararbeit in Astroteilchenphysik Dokumentation der Expertengruppe zu Messgeräte für Myonen Experten: Ilja Pricker, Felix Dehnen, Florian Djuran Inhalt: Einleitung und Zielsetzung Physikalische Grundlagen o Allgemeines zu Myonen o Wie entstehen Myonen und wo kommen sie vor? o Zeitdilatation Experimenteller Aufbau o Szintillatorplatten und DAQ Karte o Raspberry Pi Software o Python o Wichtige Programmstrukturen Matplotlib, argparse o Unser Programm mymeasure Bedienung Funktionsweise Ergebnisse o Bilder o Trigger Bilder zur Gruppenarbeit Zusammenfassung/Gruppenfazit Anhang

Einleitung und Zielsetzung Unsere Expertengruppe konzentrierte sich auf das Thema Messgeräte für Myonen. Dabei galt es zum einen sich nähere Informationen über Myonen allgemein zu verschaffen, als auch mithilfe eines bestimmten Messgerätes und durch eigene Experimente diese zu messen und nachzuweisen. Hierbei kooperierten wir mit dem KIT in Person von Dominik Haitz, einem Physikdoktorand, mit dessen Unterstützung wir die Grundlagen der Programmiersprache Python kennen lernten, durch welche gleichzeitig unser eigenes Programm geschrieben werden sollte. Die Hardware für unseren experimentellen Versuch war am KIT bereits gegeben, wozu unter anderem auch der Raspberry Pi, ein Einplatinencomputer zählte, welcher essentiell für unsere Programmierung war. Die bereitgestellte Hardware für unser Experiment zusammen mit den neuen Kenntnissen über Python, machten es uns möglich unser Ziel in Angriff nehmen zu können. Dies bestand in der selbstständigen und durch eigenes Wissen angeeigneten Programmierung einer Software, die es uns ermöglichen sollte, Myonen nachzuweisen, zu messen und die erlangten Ergebnisse graphisch darzustellen, demnach auszuwerten.

Physikalische Grundlagen Allgemeines zu Myonen Bei der Untersuchung kosmischer Strahlung entdeckten 1936 Carl D. Anderson und Seth Neddermeyer erstmals Myonen, Teilchen mit einer Masse zwischen den Massen des Elektrons und Protons. Ihre Bezeichnung µ Mesonen behielten die Myonen bis in die 1960er Jahre bei. Dabei ist zu erwähnen, dass das Myon vor seiner Entdeckung nicht wie andere Teilchen postuliert wurde. Erst nach dessen Entdeckung stellte man erste Nachforschungen zum Myon an. Ein Myon ist ein Elementarteilchen, ein Fermion, dessen physikalische Eigenschaften, ausgenommen der Masse, mit denen des Elektrons übereinstimmen. Beide Teilchen tragen eine einfach negative Elementarladung, besitzen einen halbzahligen Spin von ½ und unterliegen der elektroschwachen jedoch nicht der starken Wechselwirkung. Der Unterschied liegt wie eben erwähnt in deren Masse. Das Myon entspricht mit seinen 105,6 MeV/c2 207 Elektronenmassen, weshalb es gelegentlich auch als schweres Elektron bezeichnet wird. Bei Betrachtung des Standardmodells erkennt man, dass das Myon und das Elektron verwandte Teilchen sind. Die Klasse der Leptonen, welche wiederum in drei Familien aufgeteilt wird, ist die Klasse, zu welcher man Myon und Elektron zuordnet. Hierbei gehören das Elektron jedoch zur ersten Familie und das Myon zur zweiten Familie der Leptonen. Auch das Myon hat ein Antiteilchen, das Antimyon µ+, welches wie das Positron eine positive Elementarladung besitzt. Wie entstehen Myonen und wo kommen sie vor? Aus dem Weltall gelangt die primäre kosmische Strahlung, welche vor allem aus hochenergetischen Protonen zusammengesetzt ist, in unsere Atmosphäre und beschießt diese förmlich. Durch Stöße dieser geladenen Atomkerne der Strahlung mit den Atomkernen und Molekülen der Atmosphäre entstehen neue subatomare Teilchen. Diese durch Reaktionen neu entstandenen Teilchen bilden einen Teilchenschauer, welcher sich über die Erdoberfläche in höheren Ebenen der Atmosphäre zunächst erstreckt und auch als sekundäre kosmische Strahlung bezeichnet wird. Zu diesem Teilchenschauer gehören auch Pionen. Bei Pionen handelt es sich um Hadronen, spezieller Mesonen, da sie aus einem up und einem Antidownquark bestehen. Die Erkenntnis, dass das Pion außerdem das leichteste Meson ist, hilft uns, seine Zerfallsprodukte besser verstehen zu können.

Im nebenstehenden Bild wird die Hadronenerzeugung, verursacht durch die primäre kosmische Strahlung (schwarzer dicker Pfeil), veranschaulicht. Stöße mit den Luftmolekülen lassen Hadronen entstehen. Diese bilden eine der drei Komponenten der sekundären kosmischen Strahlung, nämlich die hadronische Komponente. Dies geschieht in etwa 20 km Höhe. Hierbei entstehen neben Pionen auch deren Antiteilchen π+. Da das Pion nicht stabil ist und mit einer mittleren Lebensdauer von ca. 2,6 10 8 s weiter zerfällt, werden weitere Prozesse in Gang gesetzt. Ein Zerfall eines Teilchens stellt immer den Übergang eines Zustands in einen für das Teilchen energetisch günstigeren Zustand dar. Da es sich beim Pion wie bereits angedeutet um das leichteste Meson handelt, kann es nur in leichtere Teilchen als Mesonen zerfallen. In diesem Falle sind das die Leptonen. Das elektrisch neutrale Pion π0 zerfällt jedoch nur in Photonen. Dessen Zerfall zieht elektromagnetische Strahlung nach sich und beschreibt somit die elektromagnetische Komponente der sekundären kosmischen Strahlung (dargestellt in der linken Spalte des Bildes). In der rechten Spalte finden wir den für unser experimentelles Vorhaben wichtigen myonischen Zweig der kosmischen Sekundärstrahlung, bestehend aus Myonen und Antimyonen. Dies macht das Myon zu einem der Hauptbestandteile der sekundären kosmischen Strahlung. Mit dem Zerfall der Pionen entstehen sie etwa in 10 15km Höhe, wo sich auch bereits 90% aller produzierten Myonen der gesamten Atmosphäre wiederfinden lassen.

Diese Myonen bewegen sich mit 99,8% der Vakuumlichtgeschwindigkeit fort, sind aber auch instabil und zerfallen sehr schnell innerhalb einer mittleren Lebensdauer von 2,197 µs zu einem Elektron, einem Myon Neutrino und einem Anti Elektron Neutrino. Zeitdilatation Doch diese mittlere Lebensdauer stellt ein Problem dar. Man weiß, dass, wie vorhin erwähnt, etwa 90% aller produzierten Myonen in 10 15km Höhe auftreten. Mit dem Wissen über die Lebensdauer und der Geschwindigkeit eines Myons lässt sich durch eine einfache Rechnung der Weg berechnen, den das Myon in seiner Lebenszeit zurücklegt. Das Ergebnis stimmt nachdenklich, da es nur ca. 660m sind, die das Myon zurücklegt. Wie aber kann es sein, dass man Myonen hier auf der Erdoberfläche messen kann, obwohl sie doch in 10 15km Höhe auftreten oder sogar noch höher? Dies dürfte nach der Berechnung nicht der Fall sein. Ein Myon bräuchte um eine Strecke von 15km hinter sich zu bringen nämlich 50µs. Doch es existiert nur für 2,2µs. Experimentelle Ergebnisse beweisen jedoch tatsächlich das Gegenteil (z.b. Teilchenbeschleuniger). Den Erklärungsansatz hierfür liefert Einsteins spezielle Relativitätstheorie. Laut dem Relativitätsprinzip hängen Zeiten und Längen unter anderem von der so genannten Zeitdilatation vom Bewegungszustand des Betrachters ab. Das Phänomen der Zeitdilatation besagt, dass ein im Inertialsystem ruhender Beobachter, jede relativ zu ihm bewegte Uhr als langsamer empfindet, als sie eigentlich läuft. Dies bedeutet auf unsere Myonen übertragen: Für uns als ruhende Betrachter im Inertialsystem vergeht die Zeit normal. Doch für Körper oder Teilchen, die sich mit beinahe Lichtgeschwindigkeit fortbewegen vergeht die Zeit langsamer und deren Weg verkürzt sich wegen der Lorentzkontraktion. Daher erkennen wir als Betrachter nur, dass ein Myon in 50µs 15km Richtung Erdoberfläche zurücklegt. In diesen 50µs vergehen für das Myon jedoch nur diese 2,2µs, da sich die Zeit für dieses verlangsamt, aufgrund seiner hohen Geschwindigkeit. Daher schafft es das Myon in seiner eigentlich zu kurzen Lebensdauer diese Distanz zu überbrücken und die Erdoberfläche zu erreichen, weshalb wir hier in der Lage sind es zu messen. Experimenteller Aufbau Szintillatoren und die DAQ Card Wenn ein Myon durch die Szintillatorplatten fliegt, so wird ein Signal in Form von einem kurzen Spannungsimpuls registriert. Dies funktioniert folgendermaßen: Dadurch, dass das Myon durch ein dichteres Medium (in dem Fall die Szintillatorplatten) fliegt, wird es langsamer und gibt dadurch einen Teil seiner mitgeführten Energie an die dort vorhandenen Atome ab. Wenn die nun angeregten Atome in ihren Grundzustand zurückkehren, so wird die überschüssige Energie in Form von Photonen abgegeben. Daraufhin wandelt der Photomultiplier diese Photonen in elektrische Signale um und verstärkt sie proportional zum optischen Signal. Folglich resultiert aus relativ wenigen Photonen ein schwaches elektrisches Signal.

An einem Ende jeder Platte sind Netzkabel zu finden, die die Szintillatoren mit Strom versorgen. Am anderen Ende sind Verbindungskabel, die die Platten mit der DAQ Card (engl.: data acquisition) verbinden. Wenn ein Signal, das an der DAQ Card ankommt, eine gewisse Schwellspannung überschreitet, so wird es erst als richtiges Signal gedeutet und ein blaues Lämpchen leuchtet auf. Eine unserer Aufgaben war es diese optimale Schwellspannung herauszufinden. Um ein Signal eines Myons von elektrischem Rauschen zu unterscheiden, muss das Myon durch alle drei Platten zum gleichen Zeitpunkt fliegen. Somit postuliert die Triggerbedinung, dass das Signal eines Myons in allen drei Kanälen in einem sehr kurzen Zeitintervall erfasst werden muss. Erst dann wird das Myon als solches wahrgenommen und gezählt. Durch das Wegnehmen einer Platte kann man beobachten, dass keine Myonen mehr gezählt werden, aber die blauen Lämpchen immer noch leuchten. Also registrieren die einzelnen Platten immer noch Signale, aber es wird kein Myon mehr zum gleichen Zeitpunkt in allen drei Platten erfasst. Raspberry Pi Die Signale und Daten, wie Triggeranzahl und Triggerzeiten werden über die USB Schnittstelle von der DAQ Karte an den Raspberry Pi geschickt: Dort werden diese Daten mit Hilfe unseres Programms, mymeasure, ausgewertet. Das dem Raspberry Pi zugrunde liegende Betriebssystem ist Linux. Dieses zeichnet sich durch die einfache Handhabung ihrer Kommandozeile aus: Mit Hilfe der Kommandozeile kann man viel einfacher und viel schneller Befehle eingeben und Aktionen ausführen. Einige wichtige der vielen Kommandozeilenbefehle werden im Folgenden aufgeführt:,startx : startet den Desktopmodus,cd : Verzeichnis öffnen,ls : zeige, was sich in dem Verzeichnis befindet,chomd : mache ausführbar,./ : führe das Programm aus,cp : Kopiere,mv : bewege in,python : öffne Python Software Python Die Programmiersprache, mit welcher wir unser Programm gestalteten war Python. Sie zeichnet sich dadurch aus, dass sie leicht zu erlernen und zu bedienen ist. Weiterhin ist sie sehr übersichtlich durch beispielsweise ihre Einrückungen. Der wohl entscheidende Vorteil Pythons ist, dass sie mit vielen nützlichen Hilfsprogrammen verbunden ist und man das gewünschte Programm nicht mit vielen verschiedenen Sprachen anfertigen muss, sondern Python allein genügt.

Wichtige Programmstrukturen Im Laufe unseres Projekts lernten wir immer mehr Programmstrukturen kennen, die die Grundlage zum Programmieren sind. Im Folgenden sind einige wichtige aufgeführt: o Module: Module verwendet man, um Dienste von anderen Programmen in Anspruch nehmen zu können Import o Funktionen definieren: Def o Bedingungen: If, else, elif Matplotlib o Zum Zeichnen von Diagrammen in diesem externen Hilfsprogramm argparse o Steuern einzelner Dinge, wie Schwellwert, Messzeit oder Durchgänge durch Eingaben in die Kommandozeile Damit nur bestimmte Argumente in einer Funktion verändert werden müssen und nicht das gesamte immer und immer wieder mit anderen Parametern geschrieben werden muss o Bessere Übersichtlichkeit; Verhindern von Fehlern Man benötigt Bedingungen, wenn man bestimmte Programmteile nur unter bestimmten Bedingungen ausgeführt haben möchte o Schleifen: z.b. for, while Schleife for Schleife wird bei bestimmten Listen, bzw. bei bestimmter Anzahl von Wiederholungen gebraucht while Schleife: solange die Bedingung(en) erfüllt ist/sind, wird die Schleife fortgesetzt Unser Programm o Bedienung Unser Programm kann sowohl die Daten aus der DAQ Card verarbeiten und speichern, als auch diese gespeicherten Daten verwenden, um verschiedene Diagramme zu zeichnen. Das Programm wird in der Kommandozeile oder direkt in Python gestartet. Man kann dabei die Funktion mithilfe einiger Zusätze anpassen. Diese Möglichkeiten sind nun tabellarisch dargestellt. Der Default Wert beschreibt dabei den Wert, den das Argument annimmt, wenn der Zusatz nicht ins Programm geschrieben wird.

Argument Name Beschreibung Default l lesen Hiermit kann entschieden werden, ob Daten DAQ Card mit der DAQ Card aufgenommen und in einer Textdatei gespeichert werden sollen ( l DAQ Card), oder ob gespeicherte Daten verwendet werden sollen, um ein Diagramm zu zeichnen ( l lesen). Wenn beide Schritte auf einmal ausgeführt werden sollen, lautet die Eingabe l beides n name Hier kann der Name des Diagramms gewählt mymyon werden p plotten Hier kann entschieden werden, was auf die zeit x und y Achsen aufgetragen werden soll: zeit trägt die Anzahl der detektierten Myonen gegen die Messzeit auf, schwellwerte trägt die Anzahl der detektierten Myonen gegen die Höhe der Schwellwerte auf und triggerrate tragt die Anzahl der detektierten Myonen pro Sekunde gegen die Zeit auf. Dabei wird jeweils die andere Variable auf einen festen Wert ( mit s oder z) gesetzt textname Hier kann der Name der Textdatei gewählt Messwerte KA werden t trigger Hier kann der Trigger auf zwei oder drei 3 gesetzt werden (d.h. ob zwei oder drei Detektoren gleichzeitig ein Signal senden müssen) s thresholds Hier kann die Höhe des Schwellwertes 150 eingestellt werden. Wird ein Diagramm mit der Messzeit als Variablen erstellt, wird hiermit der feste Schwellwert bestimmt z zeit Hier kann die Länge der Messzeit eingestellt 10 werden. Wird ein Diagramm mit den Svhwellwerten als Variablen erstellt, wird hiermit die feste Messzeit bestimmt d durchgaenge Hier kann die Anzahl der Messungen 10 eingestellt werden h Zeigt die Hilfe an Mögliche Eingaben wären also, um z.b. ein Diagramm zu erstellen, dass die Triggerrate gegen die Zeit aufträgt:./daq card.py textname versuch z 2 d 2./daq card.py textname versuch z 5 d 2./daq card.py textname versuch z 20 d 2./daq card.py textname versuch z 20 d 2 t 250

./daq card.py l lesen p triggerrate textname versuch n Triggerrate_Zeit t 150 In den ersten vier Eingaben werden dabei Ergebnisse erstellt, in der vieren Zeile wird aus den Ergebnissen der ersten drei Messungen ein Diagramm erstellt. o Funktionsweise Hierbei ist zu erwähnen, dass die zu den Erklärungen entsprechenden Codes im Anhang zu finden sind. Diese kann man parallel hinzuziehen, um zu verstehen, worum es genau bei den Erklärungen geht und worauf sich diese beziehen. Zeile Erklärung 1 Die sogenannte shebang sorgt dafür, dass das Programm auch in der Kommandozeile ausgeführt werden kann 2 6 Hier werden die verschiedenen Module importiert 7 Die class DAQ, die es ermöglicht, mit der DAQ Card zu kommunizieren, wird definiert (Diese wurde uns vorgegeben, und entspringt daher nicht unseren Überlegungen. (Unsere Quelle hierzu: https://qithub.com/dhaitz/muonrate/blob/master/daq.py). Diese class benutzt Befehle, die nur genau hier benötigt werden, also den normalen Programmierhorizont weit übersteigen). 8 12 Ein Objekt der class DAQ wird erstellt 13 15 Der Output der DAQ Card wird ausgelesen 16 18 Ermöglicht es, Befehle an die DAQ Card zu schicken 19 22 Setzt die Schwellwerte auf einen bestimmten Wert 23 32 Stellt Zweifach oder Dreifach Trigger ein 33 56 Startet die Messung und stellt die Zeit ein. Hier endet die class DAQ 57 Definition der Funktion PLOTTEN (Um Diagramme zu zeichnen) 58 Zeichnet die Punkte in das Diagramm (mit Fehlerbalken: +/ Wurzel des Wertes) 59 64 Zeichnet, skaliert und beschriftet die Achsen, beschriftet das Diagramm, 65 Gibt aus, dass ein Diagramm gezeichnet wurde 66 Definition der Funktion SPEICHERN (um die Daten in eie Textdatei zu speichern) 67 Öffnet die Bearbeitung der Textdatei 68 Schreibt die Messzeit in die Textdatei 69 Schreibt die Höhe der Schwellwerte in die Textdatei 70 Schreibt die Art des Triggers in die Textdatei 71 Schreibt die Ergebnisse in die Textdatei 72 Schreibt einen Absatz in die Textdatei (wichtig, um die Daten wieder einlesen zu können) 73 Schließt die Bearbeitung der Textdatei 74 Gibt aus, dass die Daten gespeichert wurden 75 Definition der Funktion LESEN (um Daten aus eine Texdatei einzulesen) 76 77 Die Daten werden Zeile für Zeile eingelesen 78 81 Es werden leere Listen für die Verschiedenen Parameter erstellt

82 83 Die Variablen z und e (Zählvariablen) werden definiert 84 85 Die Schleife wird für jede eingelesene Zeile ausgeführt, die variable z um eins hochgezählt 86 93 Die verschiedenen Listen werden um die einzelnen Ergebnisse ergänzt. Dabei wird die Zeit jeweils auf volle Sekunden gerundet. (Die Zählvariablen und die if Bedingungen sind notwendig, da die Werte in der letzten Zeile der Textdatei nicht verwendet werden könnten) 94 Es erfolgt die Ausgabe der Listen 95 Hier beginnt das eigentliche Programm 96 105 Hier werden die Zusätze (s. Bedienung) möglich gemacht 106 Dieser Teil wird nur ausgeführt, wenn man Daten von der DAQ Card erstellen will 107 Die DAQ class wird angesprochen 108 111 Trigger und Schwellwerte werden an die daq card übermittelt 112 114 Es werden leere Listen erzeugt, die mit den Werten gefüllt werden sollen (nur für frühere Version notwendig) 115 Die Schleife wird so oft ausgeführt, wie es Durchgänge gibt 116 Die Messung wird abhängig von der Zeit gestartet. Die Rückgabeliste (Schwellwerte, Anzahl der Ereignisse, ) wird als liste gespeichert, die echte Messzeit (die stets wenige Millisekunden über der angegebene liegt), wird als t gespeichert 117 Der vierte Wert der Liste, die Anzahl der Ereignisse wird als er gespeichert 118 120 Nur für frühere Version notwendig 121 Die Werte t (Messzeit), S (Schwellwerte), tr (Trigger) und er (Ergebnisse) werden in der Textdatei mit dem eingegebenen Namen (opt.textname) gespeichert 122 Dieser Teil wird nur ausgeführt, wenn man ein Diagramm erstellen will 123 Durch das Aufrufen der Funktion LESEN werden die Listen zeit, ergebnisse und schwellwerte gefüllt 124 127 Erzeugen von leeren Listen 128 Dieser Programmteil wird ausgeführt, wenn die Abhängigkeit zwischen der Zeit und den Ereignissen dargestellt werden soll 129 Hier startet eine dreifache for Schleife, das heißt, dass beim ersten Mal das erste Element aus jeder Liste verwendet wird, beim zweiten Mal das jeweils zweite usw. 130 134 Wenn der Schwellwert einer Messung (also in einer Zeile) der Vorgabe (opt.thresholds) entspricht, werden alle Listen aus Zeile 124 127 um die Werte dieser Messung ergänzt. Durch die Bedingung wird verhindert, dass mehrere Parameter in einem Diagramm gezeigt werden. Der Fehler berechnet sich aus der Wurzel des Ergebnisses 135 Mit der Funktion PLOTTEN wird eine Diagramm gezeichnet 136 Dieser Programmteil wird ausgeführt, wenn man die Abhängigkeit zwischen der Zeit und den Ereignissen pro Sekunde darstellen will 137 Hier startet die dreifache for Schleife 138 142 Wie oben werden die Listen aus Zeile 124 127 werden, wenn der Schwellwert einer Messung stimmt, um die Werte dieser Messung ergänzt. Allerdings werden die Ergebnisse und auch die Fehler durch die Zeit geteilt, um die Rate der Ergebnisse zu erhalten

143 Mit der Funktion PLOTTEN wird eine Diagramm gezeichnet 144 Dieser Programmteil wird ausgeführt, wenn die Abhängigkeit zwischen den Schwellwerten und den Ereignissen dargestellt werden soll 145 Hier startet die dreifache for Schleife 146 150 Wenn die Messzeit einer Messung der Vorgabe (opt.zeit) entspricht, werden alle Listen aus Zeile 124 127 um die Werte dieser Messung ergänzt 151 Mit der Funktion PLOTTEN wird eine Diagramm gezeichnet 152 153 Wenn wegen einer falschen Eingabe kein Diagramm gezeichnet werden konnte, wird freundlich darauf hingewiesen Ergebnisse Schwellwerte Man erkennt zwischen ca. 75 mv und 400 mv ein Plateau, bei dem sich die Anzahl der gemessenen Ereignisse kaum verändert. Dementsprechend sollten die Schwellwerte aus diesem Bereich gewählt werden. Zeit

Wie zu erwarten, steigt die Anzahl der gemessenen Ereignisse linear mit Zeit an. Wie zu erwarten, singt der Fehler mit zunehmender Messlänge, allerdings bleibt der Durchschnitt konstant. Der Wert von ca. 4 Ereignissen pro Sekunde pro 400 Quadratzentimeter, also 100 Ereignisse pro Sekunde pro Quadratmeter entspricht sehr genau dem Tabellenwert. Das bedeutet, dass pro Sekunde ein Myon durch eine Hand fliegt (siehe: http://de.wikipedia.org/wiki/myon unter dem Punkt Kosmische Strahlung ).

Trigger Es hat sich gezeigt, dass bei genauem Aufbau des Experiments die unterschiedlichen Trigger keinen wesentlichen Unterschied machen. Deshalb werden diese auch nicht in den Diagrammen als Parameter dargestellt. Anhang Programmcode Zeilen Programmcode 1 #!/usr/bin/env python 2 6 import math import serial import time, sys import matplotlib.pyplot as plt import argparse 7 class DAQ(): 8 12 def init (self, device): self.port=serial.serial(port=device,baudrate=115200,bytesize=8,parity='n',stopbits=1, timeout=0.5, xonxoff=true) time.sleep(0.5) self.write("st 0", 0.1) self.write("ve 0", 0.1) 13 15 def read(self): output = self.port.readline() return output[: 2] 16 18 def write(self, message, wait=0): self.port.write(str(message)+"\r") time.sleep(wait) 19 22 def set_thresholds(self, t1=200, t2=200, t3=200): for channel, threshold in zip(range(3), [t1,t2,t3]): print "Schwelle fuer Kanal %s: %smv" % (channel, threshold) self.write("tl %s %s" % (channel, threshold)) 23 32 def set_trigger(self, trigger=3): if trigger == 3: self.write("wc 00 27") print "Dreifach Trigger wird verwendet" elif trigger == 2: self.write("wc 00 1F") print "Zweifach Trigger wird verwendet" else: print "Gueltige trigger sind 2 oder 3!" sys.exit(0) 33 56 def measure(self, runtime): print "\nbeginne Messung... (%ss Messzeit)" % runtime self.write("cd", 0.1) self.write("rb", 0.1) # Zaehler zuruecksetzen start, counter, t, cycle = 0, 0, 0, 0 while t<runtime: self.write("ds") output = self.read() while not (output.startswith("ds") and len(output) > 5): time.sleep(0.01) output = self.read()

else: if output.startswith("ds") and len(output) > 5: outputlist = [int(f[3:],16) for f in output.split(" ") if len(f)>3] internal_count = outputlist[ 1] if internal_count<counter: cycle +=1 if start == 0: start = internal_count 1 counter = internal_count total_count = internal_count start + cycle * 4294967296 t = total_count * 0.000000040 self.write("ce", 0.1) return t, outputlist 57 65 def PLOTTEN(x,y,yfehler,ti="",xAchse="spannung",yAchse="test",name="mymyon.pdf"): plt.errorbar(x,y,yfehler, fmt='o') plt.xlabel(xachse) plt.ylabel(yachse) plt.ylim([0,max(y)*1.1]) plt.xlim([min(x)*0.9,max(x)*1.1]) plt.title(ti) plt.savefig(name) print "Diagramm wurde erstellt, Name= ",name 66 74 def SPEICHERN(messzeit,schwellwerte,trigger,ergebnisse,name="messwerte"): f=open(name,"a") f.write("messzeit= "+str(messzeit)) f.write(" ; schwellwerte sind jeweils "+str(schwellwerte)) f.write(" ; trigger: "+str(trigger)) f.write(" ; anzahl der Getriggere: "+str(ergebnisse)) f.write("\n") f.close() print("die Messung wurde gespeichert unter: ", name) 75 94 def LESEN(dateiname="messwerte_06_05_2014.txt"): f=open(dateiname,"r") auswertung=f.readlines() zeit=[] trigger=[] schwellwerte=[] ergebnisse=[] z=0 e=len(auswertung) for i in auswertung: z=z+1 zeit.append(int(i[10:i.find(".")])) trigger.append(i[i.find("trigger")+9:i.find("trigger")+10]) schwellwerte.append(float(i[i.find("jeweils")+8:i.find("jeweils")+11])) if (z==e): ergebnisse.append(float(i[i.find("getriggere")+12:])) if (z<e): ergebnisse.append(float(i[i.find("getriggere")+12: 1])) return zeit, ergebnisse, schwellwerte 95 105 if name == " main ": parser = argparse.argumentparser() parser.add_argument(' n', ' name',type=str, default='mymyon',help='name') parser.add_argument(' p', ' plotten',type=str, default='zeit',help='"zeit":plotten nach Zeit,"schwellwerte":Plotten nach Schwellwerten, "triggerrate": trigger pro sekunde aufgetragen gegen zeit') parser.add_argument(' l', ' lesen', type=str, default='daq card', help='"daq card"liest und speichert daten von daq card; "lesen" verwendet gespeicherte Daten; "beides" tut beides')

106 121 122 127 128 135 136 143 144 151 152 153 parser.add_argument(' t', ' trigger', type=int, default=3, help="trigger 2 oder 3") parser.add_argument(' textname', type=str, default='messwerte KA', help='name der Textdatei') parser.add_argument(' s', ' thresholds', type=int, default=150, help='schwellwerte') parser.add_argument(' z', ' zeit', type=int, default=10, help='zeit') parser.add_argument(' d', ' durchgaenge',type=int, default=10, help='anzahl der messdurchgaenge') opt = parser.parse_args() if opt.lesen == "daq card": or if opt.lesen == "beides": meindaq = DAQ('/dev/ttyUSB0') tr=opt.trigger meindaq.set_trigger(tr) S=opt.thresholds meindaq.set_thresholds(s,s,s) ergebnisse=[] spannungen=[] fehler = [] for i in range(opt.durchgaenge): t, liste = (meindaq.measure(opt.zeit)) er=liste[4] ergebnisse.append(liste[4]) fehler.append(math.sqrt(liste[4])) spannungen.append(10+50*i) SPEICHERN(t,S,tr,er,opt.textNAME) if opt.lesen == "lesen": or if opt.lesen == "beides": zeit, ergebnisse, schwellwerte = LESEN(opt.textNAME) fehler = [] ergebnisse2 = [] zeit2 = [] schwellwerte2 = [] if opt.plotten == 'zeit': for i,e,r in zip(schwellwerte,ergebnisse,zeit): if i == opt.thresholds: ergebnisse2.append(e) zeit2.append(r) schwellwerte2.append(i) fehler.append(math.sqrt(e)) PLOTTEN(zeit2,ergebnisse2, fehler,'abhaengig von Zeit, Schwellwerte=%s mv' %opt.thresholds,'zeit in Sekunden', "So oft hat's getriggert", opt.name) elif opt.plotten == 'triggerrate': for i,e,r in zip(schwellwerte,ergebnisse,zeit): if i == opt.thresholds: ergebnisse2.append(e/r) zeit2.append(r) schwellwerte2.append(i) fehler.append(math.sqrt(e)/r) PLOTTEN(zeit2,ergebnisse2, fehler,'triggerrate in Abhaengigkeit von der Zeit, Schwellwerte=%s mv' %opt.thresholds,'zeit in Sekunden', "Triggerrate in 1/s", opt.name) elif opt.plotten == "schwellwerte": for i,e,r in zip(schwellwerte,ergebnisse,zeit): if r == opt.zeit: ergebnisse2.append(e) zeit2.append(r) schwellwerte2.append(i) fehler.append(math.sqrt(e)) PLOTTEN(schwellwerte2,ergebnisse2, fehler,'abhaengig von Schwellwerten, Zeit=%s s' %opt.zeit,'schwellwerte in mv', "So oft hat's getriggert", opt.name) else: print Falsche Eingabe, versuchen Sie es nochmal!

Bilder zur Gruppenarbeit Man sieht im Vordergrund die drei Szintillatorplatten mit der DAQ Karte rechts daneben, welche die Messdaten der Platten auswertet und zur Verarbeitung an den Raspberry schickt Hier ein genaues Bild der DAQ Karte; Links die drei Signalkabel zu den drei Platten verlaufend

Bilder zum Arbeitsverlauf

Gruppenfazit Zusammenfassend können wir sagen, dass sich unsere Gruppenarbeit speziell auf diesem Themengebiet in jeglicher Hinsicht gelohnt hat! Besonders erwähnenswert ist hierbei der Arbeitsverlauf. Im Zuge der Zeit konnten wir selbstständig immer weiter Wissen anhäufen, welches wir ebenso lernten in Bezug auf unsere Software anzuwenden. So hat es viel Freude bereitet neue Strukturen und Gelerntes in unsere Arbeit miteinfließen zu lassen, was nicht nur unsere Software, sondern auch uns selbst im Bereich des Programmierens und der Physik enorm bereichert hat. Tatsächlich kann man hierbei von einem sehr erfolgreichen Pilotprojekt sprechen, da unsere Arbeit kein alltägliches Schulprojekt umfasste, sondern etwas, was Schüler bisher noch nie versucht haben, nämlich eben eine eigene Software zum Nachweis von Myonen zu schreiben. Dazu ist hinzuzufügen, dass es auch erstaunlich wie es durch so einfache, leicht verfügbare und günstige Mittel, wie den Raspberry Pi, möglich war physikalische Theorien und Effekt zu bestätigen und in der Natur wiederzufinden. Dies verlief sogar so gut, dass unsere Messergebnisse innerhalb der statistischen Fehler mit den theoretischen Vorhersagen übereinstimmten. All dies bestätigt uns in der Behauptung, dass der Raspberry Pi eine sehr gute Alternative für dieses Vorhaben ist. Daher sind wir sehr zufrieden mit dem Ergebnis unserer mühevollen Arbeit.