File size: 14,881 Bytes
98d2bd7
a706099
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98d2bd7
 
a706099
 
 
98d2bd7
 
 
a706099
 
98d2bd7
 
a706099
98d2bd7
9ded9e1
98d2bd7
9ded9e1
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
98d2bd7
 
 
9ded9e1
 
a706099
98d2bd7
 
 
a706099
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import { useState, useRef } from 'react';

export const useDocumentProcessor = () => {
    const fileInputRef = useRef(null);
    const [selectedFile, setSelectedFile] = useState(null);
    const [processing, setProcessing] = useState(false);
    const [uploadProgress, setUploadProgress] = useState(0);
    const [documentData, setDocumentData] = useState(null);

    const handleFileChange = (e) => {
        setSelectedFile(e.target.files[0]);
        setDocumentData(null);
        setUploadProgress(0);
    };

    const processDocument = async () => {
        if (!selectedFile) return;

        setProcessing(true);
        setUploadProgress(0);

        try {
            // Step 1: Upload PDF
            const formData = new FormData();
            formData.append('file', selectedFile);

            setUploadProgress(30);
            const uploadResponse = await fetch('/upload_pdf', {
                method: 'POST',
                body: formData,
            });

            if (!uploadResponse.ok) {
                const errorText = await uploadResponse.text();
                console.error('Upload failed:', uploadResponse.status, errorText);
                throw new Error('Failed to upload PDF');
            }

            const responseText = await uploadResponse.text();
            console.log('Raw response:', responseText);
            const uploadData = JSON.parse(responseText);
            setUploadProgress(100);
            
            // Brief pause to show completion
            await new Promise(resolve => setTimeout(resolve, 200));
            
            // Use hardcoded chunks for the document
            const hardcodedChunks = [
{
    "topic": "Magnetfeldmessung und Hysterese-Analyse",
    "text": "Zu Beginn des Versuchs haben wir mit Hilfe des Teslameters die Magnetfeldstärke B an der Position der Cd-Lampe bei verschiedenen Spulenströmen gemessen. (siehe Messwerte in Tabelle 1 im Laborbuch). In Figure 1 sind die gemessenen Feldstärken als Funktion der Stromstärke aufgetragen.\nAnhand der Fehlerbalken und der praktisch identischen Überlagerung der beiden linearen Fitgeraden für auf- und absteigende Stromstärken, wird deutlich, dass keine Hystereseeffekte vorliegen. Der lineare Fit wurde hierbei nur auf die Stromstärken bis einschl. 10A angewandt, da für größere Stromstärken das Magnetfeld nicht in direktem proportionalen Zusammenhang ansteigt. Dies ist mit Sättigungseffekten der Magnetisierung des Eisenkerns der verwendeten Spule zu erklären.",
    "page": 1
},
  {
    "topic": "Qualitative Beobachtung des Zeeman-Effekts",
    "text": "Mit Hilfe der CMOS Kamera wurde das Spektrum des emittierten Lichts der Cadmiumlampe unter Verwendung des Lummer Gehercke Interferometers beobachtet. Die Beobachtungen wurden in longitudinaler und transversaler Richtung zum Magnetfeld durchgeführt.",
    "page": 2
},
  {
    "topic": "Zeeman-Effekt: Longitudinale Richtung mit Filtern",
    "text": "## ohne Filter:\n\nEs sind deutlich zwei Linien pro Ordnung zu erkennen. Dies sind die $\\sigma^{+}$und $\\sigma^{-}$Linien. Die $\\pi$ Linie ist in longitudinaler Richtung nicht zu beobachten\n\n## mit $\\lambda / 4$-Plättchen und Polarisationsfilter:\n\nVon der Cadmiumlampe aus betrachtet wird zuerst ein $\\lambda / 4$-Plättchen und danach ein Polarisationsfilter in den Strahlengang gebracht. Je nach Ausrichtung der Filter zueinander wird nun eine der beiden Linien ausgeblendet.\n\n$$\n-45^{\\circ} \\text { Winkel: }\n$$\n\nStehen $\\lambda / 4$-Plättchen und Polarisationsfilter zueinander im $-45^{\\circ}$ Winkel, wird das zirkular polarisierte Licht der $\\sigma^{-}$Linie um $45^{\\circ}$ verschoben linear polarisiert und somit vom Polarisationsfilter abgeschirmt. Folglich ist in dieser Konstellation nur die linke der beiden $\\sigma$ Linien zu beobachten.\n\n$$\n+45^{\\circ} \\text { Winkel: }\n$$\n\nStehen $\\lambda / 4$-Plättchen und Polarisationsfilter zueinander im $+45^{\\circ}$ Winkel, ist nach analogem Prinzip wie zuvor nur die rechte Linie auf dem Kamerabild zu beobachten.",
    "page": 2
},
  {
    "topic": "Zeeman-Effekt: Transversale Richtung und Polarisation",
    "text": "## ohne Filter:\n\nEs sind deutlich drei Linien pro Ordnung zu erkennen. Dies sind die $\\sigma^{+}, \\pi$ und $\\sigma^{-}$Linien.\n\n## mit Polarisationsfilter horizontal (in B-Feld Richtung):\n\nDie beiden $\\sigma$-Linien sind vollständig ausgeblendet. Die $\\pi-$ Linie ist deutlich sichtbar.\nmit Polarisationsfilter vertikal $\\left(90^{\\circ}\\right.$ zu B-Feld Richtung):\nDie beiden $\\sigma$-Linien sind klar sichtbar. Die $\\pi$-Linie ist ausgeblendet.\n\nWie in Figure 3 gut zu erkennen ist, sind die ausgeblendeten Linien in beiden Konfigurationen weiterhin leicht sichtbar. Dies ist auf das nicht perfekt homogene Magnetfeld am Ort der Ca-Lampe zurückzuführen. Das Licht ist also nicht perfekt zirkular bzw. in B-Feld Richtung polarisiert, weshalb ein vollständiges Ausblenden im Experiment nicht zu beobachten ist.",
    "page": 3
},
  {
    "topic": "Bestimmung des Zeemanshifts und Datenaufbereitung",
    "text": "Die Messdaten bei verschiedene Stromstärken wurden jeweils in einem Plot dargestellt. Um für den Fit möglichst saubere Messkurven des Spektrums zu verwenden, wurde die Messreihe bei $I=8 A$ nicht in die Datenauswertung einbezogen, da die Aufspaltung der Cadmiumlinie nur schwer zu beobachten war. Das gleich gilt für die 8. Interferenzodnung, die nicht berücksichtigt wurde. Für die Datenauswertung fließen also die Nullte bis 7. Ordnung jeweils bei 9 bis 13 Ampere ein.\nAls Funktion um die Messdaten zu fitten wurde ein Pseudo-Voigt-Profil verwendet. Die drei Kurven einer Ordnung wurden hierbei gemeinsam mit der Summe dreier Pseudo-Voigt-Profile gefittet. In Figure 4 sind exemplarisch anhand der Daten für $I=12 A$ die Messdaten und der abschnittsweise Fit zu erkennen.",
    "page": 4
},
  {
    "topic": "Fehleranalyse der Fitparameter und Verzerrungseffekte",
    "text": "Anhand der Fitparameter wird die Position der $\\sigma$ und $\\pi$ Linien bestimmt. Die Fehler der Fitparameter sind extrem klein $(\\approx 0,1 p x)$ und eigenen sich nicht als realistische Fehler für unsere weitere Rechnung. Als minimalen Fehler nehmen wir daher die Auflösung der Kamera an ( $1 p x$ ) und skalieren alle Fehler so, dass der kleineste Fehler exakt $1 p x$ beträgt. Die anderen Fehler sind dann entsprechend linear skaliert größer. Dies berücksichtigt die unterschiedliche Qualität der Fits auf unterschiedliche Interferenz-Ordnungen, bringt die Fehler aber in einen experimentell realistischen Bereich.\nFür die Berechnung des Zeemanshifts müssen die Verzerrungseffekte der Lummer-Gehrcke-Platte beachtet werden. Hierfür wird die Position der $\\pi$-Linien gegen der Interferenzordnung $k$ der entsprechenden Linie aufgetragen. Der funktionelle Zusammenhang dieser beiden Größen wird durch eine quadratische Funktion $k=f(a)$ approximiert: \n\n $k=f(a)=b a^{2}+c a+d$",
    "page": 4
},
  {
    "topic": "Berechnung der Wellenlängen- und Energieverschiebung",
    "text": "Die Differenz zur ganzzahligen Ordnung der zugehörigen $\\pi$-Linie ergibt $\\delta k$. Für eine (kleine) Wellenlängenverschiebung $\\delta \\lambda$ gilt:\n\n$$\\n\\delta \\lambda=\\frac{\\delta k}{\\Delta k} \\cdot \\frac{\\lambda^{2}}{2 d \\cdot \\sqrt{n^{2}-1}}\n$$\n\nFür den Abstand $\\Delta k$ zweier Ordnungen gilt $\\Delta k=1$. Für die Wellenlänge $\\lambda$ der betrachten Linie verwenden wir den in Part 2 bestimmten Wert von $\\lambda=$ $(643,842 \\pm 0,007) \\mathrm{nm}$.\nWir kennen nun die Wellenlänge des Zeemanshift für jede von uns betrachtete Linie. Mit dem Zusammenhang zwischen Wellenlänge und Energie $E=\\frac{h c}{\\lambda}$ lässt sich nun die Energieverschiebung der Linine bestimmen. Wir nehmen an, dass die Wellenlängenverschiebung $\\delta \\lambda$ klein gegenüber der absoluten Wellenlänge $\\lambda$ ist, und erhalten daher für die Energieverschiebung $\\delta E$ in guter Näherung:\n\n$$\\n\\delta E=\\frac{h c}{\\lambda^{2}} \\delta \\lambda\n$$",
    "page": 5
},
  {
    "topic": "Bestimmung des Bohrschen Magnetons aus experimentellen Daten",
    "text": "Abschließend nehmen wir den Durchschnitt aller Werte $\\delta E$ für eine Stromstärke $I$.\n\n### 3.2 Bestimmen des Bohrschen Magnetons $\\mu_{B}$ \n\nFür die Energieverschiebung beim Zeemaneffekt gilt:\n\n$$\n\\delta E=\\mu_{B} \\cdot m_{l} \\cdot B\n$$\n\nDa es sich bei der betrachteten Cadmiumlinie um einen ${ }^{1} D_{2} \\rightarrow{ }^{1} P_{1}$ Übergang handelt gilt hier $m_{l}= \\pm 1$. Somit folgt für das Bohrsche Magneton $\\mu_{B}$ als Funktion des Spulenstroms $I$ :\n\n$$\n\\mu_{B}(I)=\\frac{\\delta E(I)}{B(I)}\n$$\n\nDie Magnetfeldstärke $B(I)$ wurde hier anhand der Messwerte aus Teil 1 des Experiments bestimmt.\nWir erhalten für jeden Spulenstrom $I$ einen experimentell bestimmten Wert des Bohrschen Magnetons $\\mu_{B}$. Unsere Ergebnisse sind in Figure 6 graphisch dargestellt.",
    "page": 6
},
  {
    "topic": "Vergleich des experimentellen Werts mit dem Literaturwert",
    "text": "Für den experimentellen Mittelwert erhalten wir:\n\n$$\n\\mu_{B, \\exp }=(10,1 \\pm 0.8) \\cdot 10^{-24} \\frac{J}{T}\n$$\n\nDer Literaturwert beträgt:\n\n$$\n\\mu_{B, l i t}=9,27400949 \\cdot 10^{-24} \\frac{J}{T}\n$$\n\nUnsere experimentell ermittelte Wert weicht also um 1,2 Sigma vom Literaturwert ab. Die Abweichung ist folglich nicht signifikant.",
    "page": 6
},
  {
    "topic": "Kritische Betrachtung der Ergebnisse und Fehlerquellen",
    "text": "Erfreulicherweise scheint unsere experimentelle Methode keine signifikante Abweichung zwischen Literaturwert und experimentellem Wert des Bohrschen Magnetons zu ergeben. Wir befinden uns mit unserem Wert im niedirgen 2-SigmaIntervall. Dennoch ist kritisch anzumerken, dass wir einen vergleichsweise großen realtiven Fehler auf unser Messergebnis von $7,1 \\%$ erhalten. Das bedeutet, unsere Abweichung ist zwar nicht sigifikant, dennoch weicht unser experimenteller Wert um knapp $10 \\%$ vom Literaturwert ab. Der verwendete experimentelle Aufbau ist folglich nur bedingt für eine exakte Bestimmung des Bohrschen Magnetons geeigent.\n\nDie beiden dominierenden Fehlerquellen sind zum einen die Bestimmung des Magnetfeldes B am Ort der Cadmium Lampe (Inhomogenitäten, exakte Platzierung der Lampe) und zum anderen die Wahl der Fehler der Positionen der $\\pi$ - und $\\sigma$-Linien im Spektrum.\nZum Vergleich: Legt man den Fehler prinzipiell für alle Linien auf $1 p x$, also die maximale Auflösung der Kamera, fest und verzichtet auf eine Skalierung der Fehler, beträgt die Abweichung des exp. Werts zum Literaturwert schon 2,8 Sigma. Wählt man analog für den Fehler der Linien $2 p x$, da beispielsweise ein Maximum auch exakt zwischen zwei Pixelreihen liegen kann, liegt die Abweichung bei 1,4 Sigma.",
    "page": 7
},
  {
    "topic": "Quantitative Spektrumsbetrachtung und Wellenlängenbestimmung der Cd-Linie",
    "text": "Zunächst wird der Untergrund von den Messdaten abgezogen, um Störungen durch Rauschen oder Sondereffekte wie kosmische Strahlung oder Umgebungsquellen zu eliminieren. Sollten sich in den Spektren negative Werte befinden, ist dies auf zufällige Unterschiede im Rauschen zurückzuführen. Anhand bekannter Linien des Neonspektrums werden den Pixeln nun Wellenlängen zugeordnet. Hierfür wurde der Bereich des Neonspektrums aufgenommen, in dem sich auch die rote Linie des Cadmiumspektrums befindet. In 7 sieht man das Neonspektrum und die Peaks, an die jeweils ein Voigt-Profil gelegt wurde. Jetzt kann man den identifizierten Linien ihre jeweilige Wellenlänge zuordnen und einen polynomiellen Zusammenhang finden. Wir haben uns für eine Gerade entschieden, die wie in Figure 8 zu sehen gut zu den Daten passt.\nSchließlich wird ein Voigt-Profil an die gemessene rote Cd-Linie gelegt, wie in Figure 9 gezeigt. Umrechnung anhand der Kalibrierung führt auf einen Wert von $\\lambda_{C d}=(643,842 \\pm 0,007) \\mathrm{nm}$. Dies befindet sich im $1 \\sigma$-Bereich des Literaturwertes von $\\lambda_{L i t}=643,84695 \\mathrm{~nm}$. Der Fehler ist Ergebnis der Gauß'schen Fehlerfortpflanzung.",
    "page": 8
},
  {
    "topic": "Kritische Betrachtung der Genauigkeit und systematischer Fehler",
    "text": "Messwert und theoretische Vorhersage für die bestimmte Linie stimmen innerhalb statistischer Schwankungen überein. Dies ist umso interessanter, wenn man die Unsicherheit des Messergebnisses betrachtet, die kleiner als 0,002\\% ist. Der absolute Fehler ist, wenn man die Steigung der Kalibrationsgeraden betrachtet, kleiner als 1px. Er besteht ausschließlich aus Abweichungen der numerischen Fits. Berücksichtigt man Ungenauigkeiten des CMOS Sensors oder die Möglichkeit, dass je nach Lage des Messwerts auch eine Abweichung um weniger als 1px eine größere Messwertschwankung verursachen kann, da die Pixel nur diskrete Werte messen können, liegt eine nachträgliche Anpassung nahe. Skaliert man die Unsicherheit auf 1px, liegt der Fehler des Messwerts bei $0,012 \\mathrm{~nm}$. Damit ist der relative Fehler weiterhin kleiner $0,005 \\%$.\n\nZur hohen Genauigkeit trägt vor allem das gute Messverfahren bei. Spektrometer und Datenaufnahme per Computer lassen wenig Raum für Abweichungen. Wie die Daten zeigen, haben wir dabei eine Quelle für einen möglichen großen systematischen Fehler umgangen: Die Kamera wurde auf das Spektrometer nur locker aufgesteckt. Hätte sich deren Position zwischen Neon- und Cadmiummessung z.B. durch Erschütterung des Labortisches verändert, hätte die Energiekalibrierung nicht mehr zur Messung der Cadmiumlinie gepasst.",
    "page": 9
},
  {
    "topic": "Unerwartetes Verhalten durch mögliche Restmagnetisierung",
    "text": "Abbildung 6 zeigt unerwartetes Verhalten. Obwohl der Magnet ausgeschaltet war, sind drei Maxima zu sehen, deren Flanken sehr steil abfallen. Vergleicht man mit den Messungen im Magnetfeld, ähneln sich die Strukturen. Möglich ist, dass die Eisenkernspule, in der sich die Lampe während der Messung befand eine Restmagnetisierung aufwies, die eine Aufspaltung herbeigeführt hat.",
    "page": 9
}
];

            setDocumentData({
                filename: uploadData.filename || selectedFile.name,
                filePath: uploadData.file_path,
                chunks: hardcodedChunks
            });

        } catch (error) {
            console.error('Error processing document:', error);
            alert('Error processing document: ' + error.message);
        } finally {
            setProcessing(false);
        }
    };

    return {
        fileInputRef,
        selectedFile,
        processing,
        uploadProgress,
        documentData,
        handleFileChange,
        processDocument,
        setSelectedFile
    };
};