ROOT: Datenein-/ausgabe, Mittelwert

  1. 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.

  2. Aufwärmübungen mit ROOT

  3. 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)

  4. 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.

  5. Korrelation
    In rohr2.dat ist eine Liste mit jeweils zwei Messungen der Drahtpostion. Berechnen Sie Mittelwerte, und Standardabweichungen, sowie den Korrelationskoeffizienten.

  6. Zentraler Grenzwert Satz
    Überprüfen Sie das Theorem, dass die Mittelwerte beliebiger Verteilungen normalverteilt sind für große $n$.

    (a) Verwenden Sie gleichverteilte Zufallszahlen (gRandom->Rndm() ) und testen Sie wie die Verteilung von $n$ 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)

  7. Verteilungen plotten
    Erstellen Sie ROOT Macros zum Plotten 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 \ensuremath{\displaystyle n} und analog Binomial vs Gauss und Poisson vs Gauss.

GDuckeck 2018-04-10