Calculate the sigma between results of the same mesurement

Hi,
I am not sure I have understood you completly.
You have 3 measurements, and what you would like to know, if they agree to each other ?
If this is the case, it is very simple, you can compute the mean, and compute their chisquared value, from which you can obtained a p-value. To do this, is easier by performing a simple fit with an horizontal line:

{
std::vector<double> x = {1,2,3};
std::vector<double> y = { 0.692,  0.6833, 0.6712 };
std::vector<double> ey = { 0.011,  0.0053,  0.0036};

auto g = new TGraphErrors(3,x.data(),y.data(), nullptr, ey.data()); 
auto result = g->Fit("pol0","S"); 
double chi2 = result->Chi2(); 
double ndf = result->Ndf(); 
double pvalue = ROOT::Math::chisquared_cdf_c(chi2, ndf); 
std::cout << "p value of the fit  : " << pvalue << std::endl;
 // number of standard sigma. Divide p-value by 2 since deviations can be in both sides
std::cout << "number of sigma is " << ROOT::Math::normal_quantile_c(0.5*pvalue,1) << std::endl;
}

Lorenzo

3 Likes