Hi
I have read in the ROOT documentation that the returned KS probability is a uniform distribution between 0 and 1 for unbinned data. I have written a small code to test that, but the probability distribution that I get is not uniform at all.
Am I doing something wrong?
Thanks
Berta
#include
#include
using namespace std;
void RootKSTest() {
Int_t n=1000;
TF1* func=new TF1(“func”,“exp(-0.5*((x)/2)^2)”, -4, 4);
Double_t a[1000];
Double_t b[1000];
Double_t ks_distance;
Double_t ks_probability;
TH1F* kSP=new TH1F(“kSP”, “KS proability distribution”, 50, 0, 1);
TH1F* kSD=new TH1F(“kSD”, “KS distance distribution”, 50, 0, 0.1);
for (int i=0; i<n; i++) {
a[i]=func->GetRandom();
}
sort(a, a+n);
for(int j=0; j<10000; j++){
for (int i=0; i<n; i++) {
b[i]=func->GetRandom();
}
sort(b, b+n);
ks_distance=TMath::KolmogorovTest(n,a,n,b,“M”);
ks_probability=TMath::KolmogorovTest(n,a,n,b,"");
kSD->Fill(ks_distance);
kSP->Fill(ks_probability);
}
TCanvas* c1=new TCanvas();
c1->Divide(1,2);
c1->cd(1);
kSD->Draw();
c1->cd(2);
kSP->Draw();
}