- C++ I/O und Mittelwert
In der Datei
rohr1.dat
finden Sie eine Liste von Messungen der Drahtposition in
verschiedenen Atlas Muon-Kammer Rohren.
Lesen Sie die Zahlen ein:
In C++: while ( cin >>val ) ;
In Linux: ./myprog < rohr1.dat
Berechnen Sie Mittelwert, kleinsten und grössten Wert.
- Aufwärmübungen mit ROOT
- Initialisieren und Starten Sie ROOT
- Gehen Sie einige der Beispiele aus 1.2 durch
- Rohrdaten mit ROOT
Lesen Sie die Daten aus
rohr1.dat
in ROOT ein.
ifstream data_file;
data_file.open("rohr1.dat");
while ( data_file >>val );
Erzeugen Sie ein Histogramm und Füllen die Werte ein.
( Lösungsbeispiel:
.C,
.py
)
Analog für rohr2.dat
in ein 2-dim Histogramm (`scatter-plot').
TH2F("h","mytitle",nx,xlow,xhig,ny,ylow,yhigh);
h->Fill(x,y)
- C++ Mittelwert und Standardabweichung
In der Datei
rohr1.dat
finden Sie eine Liste von
Messungen der Drahtposition in
verschiedenen Atlas Muon-Kammer Rohren.
Lesen Sie die Zahlen ein:
In C++: while ( (cin >>val[i++]) != 0 ) ;
In Linux: ./myprog < rohr1.dat
Berechnen Sie Mittelwert,
und Standardabweichung, sowie Median und 25/75% Quartile (Tip: Zahlen sortieren).
Beispiellösungen:
readRohr1.C
Root macro,
liest Werte ein und fuellt Histogramm.
readRohr2.C
C++ Programm,
liest Werte in vector ein, berechnet Mittelwert, Median, etc.
- Korrelation
In rohr2.dat
ist eine Liste
mit jeweils zwei Messungen der Drahtpostion.
Berechnen Sie Mittelwerte,
und Standardabweichungen, sowie den Korrelationskoeffizienten.
- Zentraler Grenzwert Satz
Überprüfen Sie das Theorem, dass die Mittelwerte beliebiger
Verteilungen normalverteilt sind für große .
(a) Verwenden Sie gleichverteilte Zufallszahlen (gRandom->Rndm() ) und testen Sie
wie die Verteilung von abhängt.
void tclim( Int_t n = 12, Int_t ns = 1000 )
{
TH1F * hclim = new TH1F("hclim", "central limit test", 100, -5, 5);
for ( Int_t i = 0; i<ns; i++ ) {
Float_t sum = 0;
for ( Int_t j = 0; j<n ; j++ ) {
sum += gRandom->Rndm() - 0.5;
}
hclim->Fill( sum );
}
}
(b) Nehmen Sie statt der Gleichverteilung die Exponentialverteilung (gRandom->Exp(1)
- Verteilungen plotten
Erstellen Sie ROOT Macros zum Plotten von
- Binomial-verteilung in Abhängigkeit von
- Poisson-verteilung in Abhängigkeit von
- Gauss-verteilung in Abhängigkeit von
(Tip: Die TMath Klasse
stellt entsprechende Funktionen oder Hilfsmittel bereit:
TMath::Gamma(n+1), TMath::Binomial(n,k), TMath::Poisson( x, mu), ...)
Vergleichen Sie die Binomial-verteilung mit der entsprechenden
Poisson-verteilung für verschiedene
und analog
Binomial vs Gauss und Poisson vs Gauss.