Skip to content
Snippets Groups Projects
Commit 089b027b authored by Bertram Kopf's avatar Bertram Kopf
Browse files

changed minor things in DataFitCompare.C

parent 83f96867
No related branches found
No related tags found
No related merge requests found
......@@ -8,6 +8,7 @@
#include <algorithm> // std::max
double CalcHistoChi2(TH1F* histoData, TH1F* histoFit);
double CalcKolmogorov(TH1F* histoData, TH1F* histoFit);
void DataFitCompare(std::string rootFileName, std::string histname, bool createcanvas=true);
void DataFitComp2(TH1F* histoData, TH1F* histoFit);
void DataFitCompareAll(std::string rootFileName, bool saveImage=false);
......@@ -44,7 +45,8 @@ void DataFitCompare(std::string rootFileName, std::string histname, bool createc
std::cout << "\n" << std::endl;
CalcHistoChi2(histoData, histoFit);
CalcKolmogorov(histoData, histoFit);
std::cout << "\n" << std::endl;
DataFitComp2(histoData, histoFit);
}
......@@ -61,21 +63,34 @@ double CalcHistoChi2(TH1F* histoData, TH1F* histoFit){
int nonzerobins=0;
for(int i=1;i<=nbins1;i++){
if(histoData->GetBinContent(i) == 0 || histoFit->GetBinContent(i) == 0)
continue;
continue;
// if(histoData->GetBinContent(i) == 0 && histoFit->GetBinContent(i) == 0)
// continue;
double error = sqrt(histoData->GetBinContent(i) + histoFit->GetBinContent(i));
// double error = sqrt(histoData->GetBinContent(i) + histoFit->GetBinContent(i));
double error = sqrt(histoData->GetBinError(i)*histoData->GetBinError(i) + histoFit->GetBinError(i)*histoFit->GetBinError(i));
chi2+=pow(histoData->GetBinContent(i) - histoFit->GetBinContent(i), 2)/(error*error);
// std::cout << pow(histoData->GetBinContent(i) - histoFit->GetBinContent(i), 2)/(error*error) << std::endl;
nonzerobins++;
}
double chi2Root=histoData->Chi2Test(histoFit,"WW");
std::cout << "Chi2 for histo " << histoData->GetName() << "\t" << chi2/nonzerobins
<< "\tp =" << TMath::Prob(chi2, nonzerobins) << std::endl;
<< "\tp =" << TMath::Prob(chi2, nonzerobins)
<< "\tpRoot=" << chi2Root << std::endl;
return chi2;
}
double CalcKolmogorov(TH1F* histoData, TH1F* histoFit){
double ksTestResult = histoData->KolmogorovTest(histoFit);
std::cout << "Kolmogorov-Smirnov test for histo " << histoData->GetName()
<< "\tp = " << ksTestResult << std::endl;
return ksTestResult;
}
void DataFitCompareAll(std::string rootFileName, bool saveImage){
TFile* tFile= new TFile(rootFileName.c_str());
std::vector<std::string> histnames;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment