quantiles.C: demo for quantiles | Math tutorials | testUnfold1.C: Test program for the classes TUnfold, TUnfoldSys |
// Example macro describing the student t distribution // // root[0]: .x tStudent.C // // It draws the pdf, the cdf and then 10 quantiles of the t Student distribution // // Author: Magdalena Slawinska #include "TH1.h" #include "TF1.h" #include "TCanvas.h" #include "TSystem.h" #include "TLegend.h" #include "TLegendEntry.h" #ifndef __CINT__ #include "Math/DistFunc.h" #endif void tStudent() { gSystem->Load("libMathCore"); gSystem->Load("libMathMore"); int n=100; double a=-5.; double b=5.; //double r = 3; TF1* pdf = new TF1("pdf", "ROOT::Math::tdistribution_pdf(x,3.0)", a,b); TF1* cum = new TF1("cum", "ROOT::Math::tdistribution_cdf(x,3.0)", a,b); TH1D* quant = new TH1D("quant", "", 9, 0, 0.9); for(int i=1; i < 10; i++) quant->Fill((i-0.5)/10.0, ROOT::Math::tdistribution_quantile((1.0*i)/10, 3.0 ) ); double xx[10]; xx[0] = -1.5; for(int i=1; i<9; i++) xx[i]= quant->GetBinContent(i); xx[9] = 1.5; TH1D* pdfq[10]; //int nbin = n/10.0; for(int i=0; i < 10; i++) { int nbin = n * (xx[i+1]-xx[i])/3.0+1.0; TString name = "pdf" + i; pdfq[i]= new TH1D(name, "", nbin,xx[i],xx[i+1] ); for(int j=1; j<nbin; j++) { double x= j*(xx[i+1]-xx[i])/nbin + xx[i]; pdfq[i]->SetBinContent(j, ROOT::Math::tdistribution_pdf(x,3)); } } TCanvas *Canvas = new TCanvas("DistCanvas", "Student Distribution graphs", 10, 10, 1000, 800); pdf->SetTitle("Student t distribution function"); cum->SetTitle("Cumulative for Student t"); quant->SetTitle("10-quantiles for Student t"); Canvas->Divide(2, 2); Canvas->cd(1); pdf->SetLineWidth(2); pdf->DrawCopy(); Canvas->cd(2); cum->SetLineWidth(2); cum->SetLineColor(kRed); cum->Draw(); Canvas->cd(3); quant->Draw(); quant->SetLineWidth(2); quant->SetLineColor(kBlue); quant->SetStats(0); Canvas->cd(4); pdfq[0]->SetTitle("Student t & its quantiles"); pdf->SetTitle(""); pdf->Draw(); //pdfq[0]->SetAxisRange(-1.5, 0, 1.5,1.0); pdfq[0]->SetTitle("Student t & its quantiles"); for(int i=0; i < 10; i++) { pdfq[i]->SetStats(0); pdfq[i]->SetFillColor(i+1); pdfq[i]->Draw("same"); } Canvas->Modified(); Canvas->cd(); } tStudent.C:1 tStudent.C:2 tStudent.C:3 tStudent.C:4 tStudent.C:5 tStudent.C:6 tStudent.C:7 tStudent.C:8 tStudent.C:9 tStudent.C:10 tStudent.C:11 tStudent.C:12 tStudent.C:13 tStudent.C:14 tStudent.C:15 tStudent.C:16 tStudent.C:17 tStudent.C:18 tStudent.C:19 tStudent.C:20 tStudent.C:21 tStudent.C:22 tStudent.C:23 tStudent.C:24 tStudent.C:25 tStudent.C:26 tStudent.C:27 tStudent.C:28 tStudent.C:29 tStudent.C:30 tStudent.C:31 tStudent.C:32 tStudent.C:33 tStudent.C:34 tStudent.C:35 tStudent.C:36 tStudent.C:37 tStudent.C:38 tStudent.C:39 tStudent.C:40 tStudent.C:41 tStudent.C:42 tStudent.C:43 tStudent.C:44 tStudent.C:45 tStudent.C:46 tStudent.C:47 tStudent.C:48 tStudent.C:49 tStudent.C:50 tStudent.C:51 tStudent.C:52 tStudent.C:53 tStudent.C:54 tStudent.C:55 tStudent.C:56 tStudent.C:57 tStudent.C:58 tStudent.C:59 tStudent.C:60 tStudent.C:61 tStudent.C:62 tStudent.C:63 tStudent.C:64 tStudent.C:65 tStudent.C:66 tStudent.C:67 tStudent.C:68 tStudent.C:69 tStudent.C:70 tStudent.C:71 tStudent.C:72 tStudent.C:73 tStudent.C:74 tStudent.C:75 tStudent.C:76 tStudent.C:77 tStudent.C:78 tStudent.C:79 tStudent.C:80 tStudent.C:81 tStudent.C:82 tStudent.C:83 tStudent.C:84 tStudent.C:85 tStudent.C:86 tStudent.C:87 tStudent.C:88 tStudent.C:89 tStudent.C:90 tStudent.C:91 tStudent.C:92 |
|