Changes between Version 2 and Version 3 of DatabaseBasedAnalysis/RandomForest


Ignore:
Timestamp:
08/15/18 17:35:15 (6 years ago)
Author:
tbretz
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DatabaseBasedAnalysis/RandomForest

    v2 v3  
    240240}}}
    241241
    242 
    243 
     242== Plotting Result ==
     243
     244{{{#!Spoiler
     245{{{#!cpp
     246#include <fstream>
     247#include <TH2.h>
     248#include <TF1.h>
     249#include <TGraph.h>
     250#include <TCanvas.h>
     251
     252void readsim()
     253{
     254    TH2F h2svse ("H_SvsE",      "", 26*3, 2.2, 4.8, 3*30, 1.3, 4.3);
     255    TH2F h2est  ("H_EstVsMC",   "", 26*3, 2.2, 4.8, 26*3, 2.2, 4.8);
     256    TH2F h2bias ("H_BiasLog",   "", 26*3, 2.2, 4.8, 100, -1, 1);
     257    TH2F h2lin  ("H_BiasLin",   "", 26*3, 2.2, 4.8, 100, -1, 2);
     258
     259    TH2F h2size ("H_ResSize",   "", 26*3, 2.2, 4.8, 100, -1, 1);
     260    TH2F h2dist ("H_ResDist",   "", 50,  0, 2.5,    100, -1, 1);
     261    TH2F h2slope("H_ResSlope",  "", 50, -10, 10,    100, -1, 1);
     262    TH2F h2zd   ("H_ResZd",     "", 90, 0,   90,    100, -1, 1);
     263
     264    ifstream fin0("sim-test-cuts.csv");
     265    ifstream fin1("sim-test-results-cuts.csv");
     266
     267    TString str;
     268    str.ReadLine(fin0);
     269    str.ReadLine(fin1);
     270
     271    while (1)
     272    {
     273        if (!fin0 || !fin1)
     274            break;
     275
     276        double Emc, Size, Zd, Dist, Disp, Slope, M3L, Leakage, Width, Length, Eest;
     277        fin0 >> Emc >> Size >> Zd >> Dist >> Disp >> Slope >> M3L >> Leakage >> Width >> Length;
     278        fin1 >> Eest;
     279
     280        h2svse.Fill(Emc,  Size);
     281        h2est.Fill( Emc,  Eest);
     282        h2bias.Fill(Eest, Eest-Emc);
     283        h2lin.Fill( Eest, (pow(10, Eest)-pow(10, Emc))/pow(10, Emc));
     284
     285        h2size.Fill( Size,  Eest-Emc);
     286        h2dist.Fill( Dist,  Eest-Emc);
     287        h2slope.Fill(Slope, Eest-Emc);
     288        h2zd.Fill(   Zd,    Eest-Emc);
     289    }
     290
     291
     292    TF1 fx("f", "x", -100, 100);
     293    TF1 f0("f", "0", -100, 100);
     294
     295    TCanvas *canv = new TCanvas("Canvas", "Energy estimation", 800, 900);
     296    canv->Divide(2,4);
     297
     298    canv->cd(1);
     299    gPad->SetTopMargin(0.005);
     300    gPad->SetGridy();
     301    h2size.SetStats(kFALSE);
     302    h2size.SetXTitle("lg(E_{mc}/GeV)");
     303    h2size.SetYTitle("lg(E_{est}/GeV)-lg(E_{mc}/GeV)");
     304    h2size.DrawCopy("colz");
     305    f0.DrawCopy("same");
     306
     307    canv->cd(3);
     308    gPad->SetTopMargin(0.005);
     309    gPad->SetGridy();
     310    h2dist.SetStats(kFALSE);
     311    h2dist.SetXTitle("Dist / degree");
     312    h2dist.SetYTitle("lg(E_{est}/GeV)-lg(E_{mc}/GeV)");
     313    h2dist.DrawCopy("colz");
     314    f0.DrawCopy("same");
     315
     316    canv->cd(5);
     317    gPad->SetTopMargin(0.005);
     318    gPad->SetGridy();
     319    h2slope.SetStats(kFALSE);
     320    h2slope.SetXTitle("Slope / ns/degree");
     321    h2slope.SetYTitle("lg(E_{est}/GeV)-lg(E_{mc}/GeV)");
     322    h2slope.DrawCopy("colz");
     323    f0.DrawCopy("same");
     324
     325    canv->cd(7);
     326    gPad->SetTopMargin(0.005);
     327    gPad->SetGridy();
     328    h2zd.SetStats(kFALSE);
     329    h2zd.SetXTitle("Zenith Distance / degree");
     330    h2zd.SetYTitle("lg(E_{est}/GeV)-lg(E_{mc}/GeV)");
     331    h2zd.DrawCopy("colz");
     332    f0.DrawCopy("same");
     333
     334    canv->cd(2);
     335    gPad->SetTopMargin(0.005);
     336    gPad->SetGridy();
     337    h2svse.SetStats(kFALSE);
     338    h2svse.SetXTitle("lg(Size)");
     339    h2svse.SetYTitle("lg(E_{mc}/GeV)");
     340    h2svse.DrawCopy("colz");
     341    fx.DrawCopy("same");
     342
     343    canv->cd(4);
     344    gPad->SetTopMargin(0.005);
     345    gPad->SetGridy();
     346    h2est.SetStats(kFALSE);
     347    h2est.SetXTitle("lg(E_{mc})");
     348    h2est.SetYTitle("lg(E_{est}/GeV)");
     349    h2est.DrawCopy("colz");
     350    fx.DrawCopy("same");
     351
     352    canv->cd(6);
     353    gPad->SetTopMargin(0.005);
     354    gPad->SetGridy();
     355    h2bias.SetStats(kFALSE);
     356    h2bias.SetXTitle("lg(E_{est}/GeV)");
     357    h2bias.SetYTitle("lg(E_{est}/GeV)-lg(E_{mc}/GeV)");
     358    h2bias.DrawCopy("colz");
     359    f0.DrawCopy("same");
     360
     361
     362    canv->cd(8);
     363    gPad->SetTopMargin(0.005);
     364    gPad->SetGridy();
     365
     366    TGraph grlin;
     367    TGraph grlog;
     368
     369    for (int x=1; x<h2bias.GetNbinsX(); x++)
     370    {
     371        TH1D *p = h2bias.ProjectionY("_py", x, x);
     372        if (p->GetRMS()>0)
     373            grlog.SetPoint(grlog.GetN(), h2bias.GetXaxis()->GetBinCenter(x), pow(10, p->GetRMS())-1);
     374        delete p;
     375
     376        p = h2lin.ProjectionY("_py", x, x);
     377        if (p->GetRMS()>0)
     378            grlin.SetPoint(grlin.GetN(), h2lin.GetXaxis()->GetBinCenter(x), p->GetRMS());
     379        delete p;
     380    }
     381
     382    grlog.SetMarkerColor(kBlue);
     383    grlin.SetMinimum(0);
     384    grlin.GetHistogram()->SetXTitle("log(E_{est}/GeV)");
     385    grlin.GetHistogram()->SetYTitle("RMS");
     386    grlin.DrawClone("A*");
     387    grlog.DrawClone("*");
     388}
     389}}}
     390}}}
     391
     392