599enum EInconsistencyBits {
 
  701   if (nbins <= 0) {
Warning(
"TH1",
"nbins is <=0 - set to nbins = 1"); nbins = 1; }
 
 
  723   if (nbins <= 0) {
Warning(
"TH1",
"nbins is <=0 - set to nbins = 1"); nbins = 1; }
 
 
  745   if (nbins <= 0) {
Warning(
"TH1",
"nbins is <=0 - set to nbins = 1"); nbins = 1; }
 
 
  764   Draw(
b ? 
b->GetDrawOption() : 
"");
 
 
  829      Error(
"Add",
"Attempt to add a non-existing function");
 
  849   for (
Int_t i = 0; i < 10; ++i) 
s1[i] = 0;
 
 
  889         Info(
name, 
"Histograms have different dimensions - trying to use TH1::Merge");
 
  891         Error(
name, 
"Histograms have different dimensions");
 
  895         Info(
name, 
"Histograms have different number of bins - trying to use TH1::Merge");
 
  897         Error(
name, 
"Histograms have different number of bins");
 
  901         Info(
name, 
"Histograms have different axis limits - trying to use TH1::Merge");
 
  903         Warning(
name, 
"Histograms have different axis limits");
 
  906         Info(
name, 
"Histograms have different bin limits - trying to use TH1::Merge");
 
  908         Warning(
name, 
"Histograms have different bin limits");
 
  912         Info(
name, 
"Histograms have different labels - trying to use TH1::Merge");
 
  914         Info(
name, 
"Histograms have different labels");
 
 
  957      Error(
"Add",
"Attempt to add a non-existing histogram");
 
  978      l.Add(
const_cast<TH1*
>(
h1));
 
 1026               double sf = (
s2[0] != 0) ? 
s2[1]/
s2[0] : 1;
 
 1035               double sf = (
s1[0] != 0) ? 
s1[1]/
s1[0] : 1;
 
 
 1108      Error(
"Add",
"Attempt to add a non-existing histogram");
 
 1139         l.Add(
const_cast<TH1*
>(
h1));
 
 1140         l.Add(
const_cast<TH1*
>(h2));
 
 1219               double sf = (
s1[0] != 0) ? 
s1[1]/
s1[0] : 1;
 
 1224         else if (h2->fSumw2.fN) {
 
 1227               double sf = (
s2[0] != 0) ? 
s2[1]/
s2[0] : 1;
 
 
 1312   return ((next && 
x > 0.) || (!next && 
x <= 0.)) ? std::ldexp(std::copysign(1., f2), nn)
 
 1313                                                   : std::ldexp(std::copysign(1., f2), --nn);
 
 
 1326      return (
Int_t)std::ldexp(1., nn);
 
 
 1451         if (!std::isfinite(
x)) 
continue;
 
 1460                       "inconsistency found by power-of-2 autobin algorithm: fallback to standard method");
 
 
 1551         for ( 
int i = 0; i < fN; ++i ) {
 
 1554            double binWidth = 
a1->GetBinWidth(i);
 
 
 1579   if (
l1->GetSize() != 
l2->GetSize() ) {
 
 1582   for (
int i = 1; i <= 
a1->GetNbins(); ++i) {
 
 
 1600   double lastBin = 
a1->GetBinWidth( 
a1->GetNbins() );
 
 
 1613   if (
a1->GetNbins() != 
a2->GetNbins() ) {
 
 1614      ::Info(
"CheckEqualAxes",
"Axes have different number of bins : nbin1 = %d nbin2 = %d",
a1->GetNbins(),
a2->GetNbins() );
 
 1618      ::Info(
"CheckEqualAxes",
"Axes have different limits");
 
 1622      ::Info(
"CheckEqualAxes",
"Axes have different bin limits");
 
 1628      ::Info(
"CheckEqualAxes",
"Axes have different labels");
 
 
 1659      ::Info(
"CheckConsistentSubAxes",
"Axes have different number of bins");
 
 1667      ::Info(
"CheckConsistentSubAxes",
"Axes have different limits");
 
 
 1692   if (
nbinsx != h2->GetNbinsX() ||
 
 1693       (dim > 1 && 
nbinsy != h2->GetNbinsY())  ||
 
 1694       (dim > 2 && 
nbinsz != h2->GetNbinsZ()) ) {
 
 1713   if ( !
h1->
IsEmpty() && !h2->IsEmpty() ) {
 
 
 2024      if (
ndf == 0) 
return 0;
 
 
 2103      Error(
"Chi2TestX",
"Histograms have different dimensions.");
 
 2109      Error(
"Chi2TestX",
"different number of x channels");
 
 2112      Error(
"Chi2TestX",
"different number of y channels");
 
 2115      Error(
"Chi2TestX",
"different number of z channels");
 
 2158      Info(
"Chi2TestX", 
"NORM option should be used together with UU option. It is ignored");
 
 2182         Warning(
"Chi2TestX",
"First histogram is not unweighted and option UW has been requested");
 
 2187         Warning(
"Chi2TestX",
"Both histograms are not unweighted and option UU has been requested");
 
 2220         Error(
"Chi2TestX", 
"Cannot use option NORM when one histogram has all zero errors");
 
 2232               sum2 += h2->RetrieveBinContent(bin);
 
 2242      Error(
"Chi2TestX",
"one histogram is empty");
 
 2247      Error(
"Chi2TestX",
"Hist1 and Hist2 have both all zero errors\n");
 
 2305         Info(
"Chi2TestX",
"There is a bin in h1 with less than 1 event.\n");
 
 2309         Info(
"Chi2TestX",
"There is a bin in h2 with less than 1 event.\n");
 
 2347                     Error(
"Chi2TestX",
"Hist2 has in bin (%d,%d,%d) zero content and zero errors\n", i, 
j, k);
 
 2414         Info(
"Chi2TestX",
"There is a bin in h1 with less than 1 event.\n");
 
 2418         Info(
"Chi2TestX",
"There is a bin in h2 with less than 10 effective events.\n");
 
 2447                  Error(
"Chi2TestX",
"h1 and h2 both have bin %d,%d,%d with all zero errors\n", i,
j,k);
 
 2479         Info(
"Chi2TestX",
"There is a bin in h1 with less than 10 effective events.\n");
 
 2483         Info(
"Chi2TestX",
"There is a bin in h2 with less than 10 effective events.\n");
 
 
 2501      Error(
"Chisquare",
"Function pointer is Null - return -1");
 
 
 2561                 Error(
"ComputeIntegral",
"Bin content is negative - return a NaN value");
 
 2572      Error(
"ComputeIntegral", 
"Integral = 0, no hits in histogram bins (excluding over/underflow).");
 
 
 2679      ((
TH1&)obj).fDirectory->Remove(&obj);
 
 2680      ((
TH1&)obj).fDirectory = 
nullptr;
 
 2694      delete [] ((
TH1&)obj).fBuffer;
 
 2695      ((
TH1&)obj).fBuffer = 
nullptr;
 
 2701      ((
TH1&)obj).fBuffer    = buf;
 
 2731   ((
TH1&)obj).fXaxis.SetParent(&obj);
 
 2732   ((
TH1&)obj).fYaxis.SetParent(&obj);
 
 2733   ((
TH1&)obj).fZaxis.SetParent(&obj);
 
 2743      ((
TH1&)obj).fFunctions->UseRWLock();
 
 
 2845      Error(
"Divide",
"Attempt to divide by a non-existing function");
 
 
 2913      Error(
"Divide", 
"Input histogram passed does not exist (NULL).");
 
 
 2976      Error(
"Divide", 
"At least one of the input histograms passed does not exist (NULL).");
 
 2989      Error(
"Divide",
"Coefficient of dividing histogram cannot be zero");
 
 3002      Double_t b2 = h2->RetrieveBinContent(i);
 
 
 3085      if (!
gPad->IsEditable()) 
gROOT->MakeDefCanvas();
 
 3087         if (
gPad->GetX1() == 0   && 
gPad->GetX2() == 1 &&
 
 3088             gPad->GetY1() == 0   && 
gPad->GetY2() == 1 &&
 
 3089             gPad->GetListOfPrimitives()->GetSize()==0) 
opt2.Remove(
index,4);
 
 3096      gPad->IncrementPaletteColor(1, 
opt1);
 
 
 3123   newth1->SetDirectory(
nullptr);
 
 3125   if (
gPad) 
gPad->IncrementPaletteColor(1, opt);
 
 
 3150      Error(
"DrawNormalized",
"Sum of weights is null. Cannot normalize histogram: %s",
GetName());
 
 3162      if (opt.
IsNull() || opt == 
"SAME") opt += 
"HIST";
 
 
 3319   if (!
fft) 
return nullptr;
 
 
 3353   if (bin <0) 
return -1;
 
 
 3386   if (bin <0) 
return -1;
 
 
 3419   if (bin <0) 
return -1;
 
 
 3462         auto weights = 
w ? &
w[i] : 
nullptr;
 
 
 3485      if (bin <0) 
continue;
 
 3490      if (bin == 0 || bin > nbins) {
 
 
 3527   if (!
f1) { 
Error(
"FillRandom", 
"Unknown function: %s",
fname); 
return; }
 
 3537      Info(
"FillRandom",
"Using function axis and range [%g,%g]",
xmin, 
xmax);
 
 3553   if (integral[
nbinsx] == 0 ) {
 
 3555      Error(
"FillRandom", 
"Integral = zero"); 
return;
 
 3557   for (bin=1;bin<=
nbinsx;bin++)  integral[bin] /= integral[
nbinsx];
 
 3560   for (loop=0;loop<
ntimes;loop++) {
 
 
 3594   if (!
h) { 
Error(
"FillRandom", 
"Null histogram"); 
return; }
 
 3596      Error(
"FillRandom", 
"Histograms with different dimensions"); 
return;
 
 3598   if (std::isnan(
h->ComputeIntegral(
true))) {
 
 3599      Error(
"FillRandom", 
"Histograms contains negative bins, does not represent probabilities");
 
 3607   Int_t nbins = last-first+1;
 
 3612         if (
sumw == 0) 
return;
 
 3614         for (
Int_t bin=first;bin<=last;bin++) {
 
 3654   if (
h->ComputeIntegral() ==0) 
return;
 
 3657   for (loop=0;loop<
ntimes;loop++) {
 
 
 3742      Warning(
"FindFirstBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
 
 3764   else if (axis == 2) {
 
 3776   else if (axis == 3) {
 
 
 3806      Warning(
"FindFirstBinAbove",
"Invalid axis number : %d, axis x assumed\n",axis);
 
 3828   else if (axis == 2) {
 
 3840   else if (axis == 3) {
 
 
 3921      if (!
f1) { 
Printf(
"Unknown function: %s",
fname); 
return -1; }
 
 
 4289      gROOT->MakeDefCanvas();
 
 4292      Error(
"FitPanel", 
"Unable to create a default canvas");
 
 4299   if (handler && handler->
LoadPlugin() != -1) {
 
 4301         Error(
"FitPanel", 
"Unable to create the FitPanel");
 
 
 4304         Error(
"FitPanel", 
"Unable to find the FitPanel plug-in");
 
 4349   asym->SetTitle(title);
 
 4361   asym->Divide(top,bottom);
 
 4368   if (h2->fBuffer) h2->BufferEmpty(1);
 
 4375         for(
Int_t k=1; k<= zmax; k++){
 
 4380            Double_t b   = h2->RetrieveBinContent(bin);
 
 4392               asym->SetBinError(i,
j,k,error);
 
 
 4454   return (s[1] ? s[0]*s[0]/s[1] : 
TMath::Abs(s[0]) );
 
 4466      Info(
"SetHighlight", 
"Supported only 1-D or 2-D histograms");
 
 
 4483   return ((
TH1*)
this)->GetPainter()->GetObjectInfo(px,py);
 
 4584      Error(
"GetQuantiles",
"Only available for 1-d histograms");
 
 4599      for (i=1;i<
nq;i++) {
 
 4604   for (i = 0; i < 
nq; i++) {
 
 
 4752   if (
m > 
idim || 
m > 
n) 
return;
 
 4755   for (
l = 2; 
l <= 
m; ++
l) {
 
 4769      for (
l = 2; 
l <= 
m; ++
l) {
 
 4774      for (
l = 2; 
l <= 
m; ++
l) {
 
 4779   for (i = 3; i <= 
m; ++i) {
 
 4780      for (k = i; k <= 
m; ++k) {
 
 4781         b[k - 1 + (i-1)*20 - 21] = 
b[k + (i-2)*20 - 21];
 
 4786   for (i=0; i<
m; ++i) 
a[i] = 
da[i];
 
 
 4815         if (
yk <= 0) 
yk = 1
e-9;
 
 
 4858   if (
idim < 
n) 
return;
 
 4861   for (
j = 1; 
j <= 
n; ++
j) {
 
 4864      if (
j == 
n) 
continue;
 
 4875   for (
l = 1; 
l <= k; ++
l) {
 
 4879   for (
l = 1; 
l <= k; ++
l) {
 
 4880      for (i = 2; i <= 
n; ++i) {
 
 4883         for (
j = 1; 
j <= 
im1; ++
j) {
 
 4889      for (i = 1; i <= 
nm1; ++i) {
 
 4892         for (
j = 1; 
j <= i; ++
j) {
 
 
 4983      Error(
"GetRandom",
"Function only valid for 1-d histograms");
 
 4993      integral = ((
TH1*)
this)->ComputeIntegral(
true);
 
 4995   if (integral == 0) 
return 0;
 
 
 5034   if (bin < 0) bin = 0;
 
 
 5060      Error(
"GetBinWithContent",
"function is only valid for 1-D histograms");
 
 
 5117   Error(
"Interpolate",
"This function must be called with 1 argument for a TH1");
 
 
 5126   Error(
"Interpolate",
"This function must be called with 1 argument for a TH1");
 
 
 5176   Error(
"IsBinOverflow",
"Invalid axis value");
 
 
 5206   Error(
"IsBinUnderflow",
"Invalid axis value");
 
 
 5218   TAxis *axis = 
nullptr;
 
 5223      Error(
"LabelsDeflate",
"Invalid axis option %s",
ax);
 
 5234   while ((obj = next())) {
 
 5238   if (nbins < 1) nbins = 1;
 
 5241   if (nbins==axis->
GetNbins()) 
return;
 
 5245   hold->SetDirectory(
nullptr);
 
 5267   for (bin=0; bin < 
hold->fNcells; ++bin) {
 
 
 5288   TAxis *axis = 
nullptr;
 
 5295   hold->SetDirectory(
nullptr);
 
 
 5355   TAxis *axis = 
nullptr;
 
 5366      Warning(
"LabelsOption", 
"Axis %s has no labels!",axis->
GetName());
 
 5409         Error(
"LabelsOption", 
"%s is an invalid label placement option!",opt.
Data());
 
 5424      for (
Int_t i = 0; i < 
n; ++i) {
 
 5430         Error(
"LabelsOption", 
"%s of Histogram %s contains bins without labels. Sorting will not work correctly - return",
 
 5436      Warning(
"LabelsOption", 
"axis %s of Histogram %s has extra following bins without labels. Sorting will work only for first label bins",
 
 5439   std::vector<Int_t> 
a(
n);
 
 5440   std::vector<Int_t> 
b(
n);
 
 5444   std::vector<Double_t> 
cont;
 
 5445   std::vector<Double_t> 
errors2;
 
 5462         for (i = 0; i < 
n; i++) {
 
 5466            b[i] = 
labold->At(i)->GetUniqueID(); 
 
 5473         for (i = 0; i < 
n; i++) {
 
 5477               Info(
"LabelsOption",
"setting bin %d value %f from bin %d label %s at pos %d ",
 
 5482         for (i = 0; i < 
n; i++) {
 
 5488         std::vector<Double_t> 
pcont(
n + 2);
 
 5494         for (i = 0; i < 
nx; i++) {
 
 5495            for (
j = 0; 
j < 
ny; 
j++) {
 
 5504               if (k >= 0 && k < 
n) { 
 
 5514         for (i = 0; i < 
n; i++) {
 
 5518            while ((obj = next())) {
 
 5526               R__ASSERT(
"LabelsOption - No corresponding bin found when ordering labels");
 
 5532               std::cout << 
" set label " << obj->
GetName() << 
" to bin " << i + 1 << 
" from order " << 
a[i] << 
" bin " 
 5533                         << 
b[
a[i]] << 
"content " << 
pcont[
a[i]] << std::endl;
 
 5537         for (i = 0; i < 
n; i++) {
 
 5542            for (i = 0; i < 
n; i++) {
 
 5544               for (
j = 0; 
j < 
ny; 
j++) {
 
 5553            for (i = 0; i < 
nx; i++) {
 
 5554               for (
j = 0; 
j < 
n; 
j++) {
 
 5565         std::vector<Double_t> 
pcont(
n + 2);
 
 5573         for (i = 0; i < 
nx; i++) {
 
 5574            for (
j = 0; 
j < 
ny; 
j++) {
 
 5575               for (k = 0; k < 
nz; k++) {
 
 5584                  if (
l >= 0 && 
l < 
n) { 
 
 5598         for (i = 0; i < 
n; i++) {
 
 5603            while ((obj = next())) {
 
 5611               R__ASSERT(
"LabelsOption - No corresponding bin found when ordering labels");
 
 5616               std::cout << 
" set label " << obj->
GetName() << 
" to bin " << i + 1 << 
" from bin " << 
a[i] << 
"content " 
 5617                         << 
pcont[
a[i]] << std::endl;
 
 5622         for (i = 0; i < 
n; i++) {
 
 5627            for (i = 0; i < 
n; i++) {
 
 5629               for (
j = 0; 
j < 
ny; 
j++) {
 
 5630                  for (k = 0; k < 
nz; k++) {
 
 5640            for (i = 0; i < 
nx; i++) {
 
 5641               for (
j = 0; 
j < 
n; 
j++) {
 
 5643                  for (k = 0; k < 
nz; k++) {
 
 5653            for (i = 0; i < 
nx; i++) {
 
 5654               for (
j = 0; 
j < 
ny; 
j++) {
 
 5655                  for (k = 0; k < 
n; k++) {
 
 5671      for (i = 0; i < 
n; i++) {
 
 5673         b[i] = 
labold->At(i)->GetUniqueID(); 
 
 5679      for (i = 0; i < 
n; i++) {
 
 5685            std::cout << 
"bin " << i + 1 << 
" setting new labels for axis " << 
labold->At(
a[i])->GetName() << 
" from " 
 5686                      << 
b[
a[i]] << std::endl;
 
 5693         for (i = 0; i < 
n; i++) {
 
 5698         for (i = 0; i < 
n; i++) {
 
 5711         for (i = 0; i < 
nx; i++) {
 
 5712            for (
j = 0; 
j < 
ny; 
j++) { 
 
 5720            for (i = 0; i < 
n; i++) {
 
 5721               for (
j = 0; 
j < 
ny; 
j++) {
 
 5729            for (i = 0; i < 
nx; i++) {
 
 5730               for (
j = 0; 
j < 
n; 
j++) {
 
 5746         for (i = 0; i < 
nx; i++) {
 
 5747            for (
j = 0; 
j < 
ny; 
j++) {
 
 5748               for (k = 0; k < 
nz; k++) {
 
 5758            for (i = 0; i < 
n; i++) { 
 
 5759               for (
j = 0; 
j < 
ny; 
j++) {
 
 5760                  for (k = 0; k < 
nz; k++) {
 
 5770            for (i = 0; i < 
nx; i++) {
 
 5771               for (
j = 0; 
j < 
n; 
j++) {
 
 5772                  for (k = 0; k < 
nz; k++) {
 
 5782            for (i = 0; i < 
nx; i++) {
 
 5783               for (
j = 0; 
j < 
ny; 
j++) {
 
 5784                  for (k = 0; k < 
n; k++) {
 
 5798   for (i = 0; i < 
n; ++i) {
 
 5812      } 
else if (
iaxis == 2) {
 
 5817      } 
else if (
iaxis == 3) {
 
 
 5851   if (!axis.
GetXbins()->fN) 
return true;  
 
 5855   for (
int i = 1; i < axis.
GetNbins(); ++i) {
 
 
 5869   return axis1.GetNbins() == 
axis2.GetNbins() &&
 
 
 5934      printf(
"TH1::RecomputeAxisLimits - Impossible\n");
 
 
 6022      Error(
"Multiply",
"Attempt to multiply by a non-existing function");
 
 
 6084      Error(
"Multiply",
"Attempt to multiply by a non-existing histogram");
 
 
 6137      Error(
"Multiply",
"Attempt to multiply by a non-existing histogram");
 
 6160      Double_t b2 = h2->RetrieveBinContent(i);
 
 
 6251      Error(
"Rebin", 
"Illegal value of ngroup=%d",
ngroup);
 
 6256      Error(
"Rebin", 
"Operation valid on 1-D histograms only");
 
 6260      Error(
"Rebin",
"if xbins is specified, newname must be given");
 
 6268         Warning(
"Rebin", 
"ngroup=%d is not an exact divider of nbins=%d.",
ngroup,nbins);
 
 6293         Warning(
"Rebin",
"underflow entries will not be used when rebinning");
 
 6295         Warning(
"Rebin",
"overflow entries will not be used when rebinning");
 
 6363   for (bin = 1;bin<=
newbins;bin++) {
 
 6371                                       hnew->GetXaxis()->GetBinLowEdge(bin),
 
 6374         Warning(
"Rebin",
"Bin edge %d of rebinned histogram does not match any bin edges of the old histogram. Result can be inconsistent",bin);
 
 6377         if( (
oldbin+i > nbins) ||
 
 6402   for (i = 
oldbin; i <= nbins+1; ++i)  {
 
 6412   hnew->SetEntries(entries);
 
 
 6439   while (point < 
xmin) {
 
 6445   while (point >= 
xmax) {
 
 
 6491   hold->SetDirectory(
nullptr);
 
 6528            Warning(
"ExtendAxis",
"Histogram %s has underflow or overflow in the axis that is extendable" 
 6529                    " their content will be lost",
GetName() );
 
 
 6589         if (i == 1)   s[i] = 
c1*
c1*s[i];
 
 6590         else          s[i] = 
c1*s[i];
 
 
 6704         str2.ReplaceAll(
"#semicolon",10,
";",1);
 
 6711            str2.ReplaceAll(
"#semicolon",10,
";",1);
 
 6715            str1.ReplaceAll(
"#semicolon",10,
";",1);
 
 6718            str1.ReplaceAll(
"#semicolon",10,
";",1);
 
 6722         str1.ReplaceAll(
"#semicolon",10,
";",1);
 
 
 6741      ::Error(
"SmoothArray",
"Need at least 3 points for smoothing: n = %d",nn);
 
 6746   std::array<double, 3> 
hh{};
 
 6748   std::vector<double> 
yy(nn);
 
 6749   std::vector<double> 
zz(nn);
 
 6750   std::vector<double> 
rr(nn);
 
 6759         for  (
int kk = 0; 
kk < 3; 
kk++)  {
 
 6763            int ilast       = (
kk != 1 ) ? nn-1 : nn -2;
 
 6775               hh[2] = 3*
zz[1] - 2*
zz[2];
 
 6780               hh[2] = 3*
zz[nn - 2] - 2*
zz[nn - 3];
 
 6798         for (
ii = 2; 
ii < (nn - 2); 
ii++) {
 
 6799            if  (
zz[
ii - 1] != 
zz[
ii]) 
continue;
 
 6800            if  (
zz[
ii] != 
zz[
ii + 1]) 
continue;
 
 6805            if  ( std::abs(
tmp0) > std::abs(
tmp0) ) 
jk = -1;
 
 6812         for  (
ii = 1; 
ii < nn - 1; 
ii++) {
 
 6816         zz[nn - 1] = 
yy[nn - 1];
 
 6824            for  (
ii = 0; 
ii < nn; 
ii++)  {
 
 6833      for  (
ii = 0; 
ii < nn; 
ii++) {
 
 
 6852      Error(
"Smooth",
"Smooth only supported for 1-d histograms");
 
 6857      Error(
"Smooth",
"Smooth only supported for histograms with >= 3 bins. Nbins = %d",nbins);
 
 6875   for (i=0;i<nbins;i++) {
 
 6881   for (i=0;i<nbins;i++) {
 
 
 6905   if (
b.IsReading()) {
 
 6919         while ((obj=next())) {
 
 6949         Int_t n = 
b.ReadArray(contour);
 
 
 7046               if(
fSumw2.
fN) 
printf(
" fSumw[%d][%d][%d]=%g, x=%g, y=%g, z=%g, error=%g\n",
binx,
biny,
binz,
w,
x,
y,z,
e);
 
 7047               else          printf(
" fSumw[%d][%d][%d]=%g, x=%g, y=%g, z=%g\n",
binx,
biny,
binz,
w,
x,
y,z);
 
 
 7108   if (opt == 
"ICES") 
return;
 
 
 7159      if (
fname.EndsWith(
".csv")) {
 
 7162      } 
else if (
fname.EndsWith(
".tsv")) {
 
 7165      } 
else if (
fname.EndsWith(
".txt")) {
 
 7182         out << 
"#\tBinLowEdge\tBinUpEdge\t" 
 7184             << 
"\tey" << std::endl;
 
 7186         out << 
"#\tBinLowEdge\tBinUpEdge\t" << 
GetYaxis()->
GetTitle() << 
"\tey" << std::endl;
 
 
 7201   Info(
"SaveAs", 
"%s file: %s has been generated", 
ext.Data(), 
filename);
 
 7230         if (i != 0) out << 
", ";
 
 7233      out << 
"}; " << std::endl;
 
 7246            if (i != 0) out << 
", ";
 
 7249         out << 
"}; " << std::endl;
 
 7262            if (i != 0) out << 
", ";
 
 7265         out << 
"}; " << std::endl;
 
 7269   out <<
"   "<<std::endl;
 
 7320   out << 
");" << std::endl;
 
 7324   for (bin=0;bin<
fNcells;bin++) {
 
 7327         out<<
"   "<<
hname<<
"->SetBinContent("<<bin<<
","<<
bc<<
");"<<std::endl;
 
 7333      for (bin=0;bin<
fNcells;bin++) {
 
 7336            out<<
"   "<<
hname<<
"->SetBinError("<<bin<<
","<<
be<<
");"<<std::endl;
 
 
 7359      out<<
"   "<<
hname<<
"->SetMinimum("<<
fMinimum<<
");"<<std::endl;
 
 7362      out<<
"   "<<
hname<<
"->SetMaximum("<<
fMaximum<<
");"<<std::endl;
 
 7368      out<<
"   "<<
hname<<
"->SetEntries("<<
fEntries<<
");"<<std::endl;
 
 7371      out<<
"   "<<
hname<<
"->SetDirectory(nullptr);"<<std::endl;
 
 7374      out<<
"   "<<
hname<<
"->SetStats(0);"<<std::endl;
 
 7386         if (
gPad->GetLogz()) {
 
 7391         out<<
"   "<<
hname<<
"->SetContourLevel("<<bin<<
","<<
zlevel<<
");"<<std::endl;
 
 7399      auto obj = 
lnk->GetObject();
 
 7404         out << 
"   " << 
fname << 
"->SetParent(" << 
hname << 
");\n";
 
 7405         out<<
"   "<<
hname<<
"->GetListOfFunctions()->Add(" 
 7406            << 
fname <<
");"<<std::endl;
 
 7407      } 
else if (obj->InheritsFrom(
"TPaveStats")) {
 
 7408         out<<
"   "<<
hname<<
"->GetListOfFunctions()->Add(ptstats);"<<std::endl;
 
 7409         out<<
"   ptstats->SetParent("<<
hname<<
");"<<std::endl;
 
 7410      } 
else if (obj->InheritsFrom(
"TPolyMarker")) {
 
 7411         out<<
"   "<<
hname<<
"->GetListOfFunctions()->Add(" 
 7412            <<
"pmarker ,"<<
quote<<
lnk->GetOption()<<
quote<<
");"<<std::endl;
 
 7414         out<<
"   "<<
hname<<
"->GetListOfFunctions()->Add(" 
 7431      out<<
"   "<<
hname<<
"->Draw(" 
 
 7475   while ((obj = next())) {
 
 
 7507   if (axis<1 || (axis>3 && axis<11) || axis>13) 
return 0;
 
 7511   if (
stats[0] == 0) 
return 0;
 
 
 7579   if (axis<1 || (axis>3 && axis<11) || axis>13) 
return 0;
 
 7584   if (
stats[0] == 0) 
return 0;
 
 
 7644   if (axis > 0 && axis <= 3){
 
 7683               sum+=
w*(
x-mean)*(
x-mean)*(
x-mean);
 
 7690   else if (axis > 10 && axis <= 13) {
 
 7697      Error(
"GetSkewness", 
"illegal value of parameter");
 
 
 7716   if (axis > 0 && axis <= 3){
 
 7755               sum+=
w*(
x-mean)*(
x-mean)*(
x-mean)*(
x-mean);
 
 7762   } 
else if (axis > 10 && axis <= 13) {
 
 7769      Error(
"GetKurtosis", 
"illegal value of parameter");
 
 
 7816      for (bin=0;bin<4;bin++) 
stats[bin] = 0;
 
 7832         stats[1] += err*err;
 
 
 
 8053      Error(
"AndersonDarlingTest",
"Histograms must be 1-D");
 
 
 8155   if (h2 == 
nullptr) 
return 0;
 
 8163      Error(
"KolmogorovTest",
"Histograms must be 1-D\n");
 
 8169      Error(
"KolmogorovTest",
"Histograms have different number of bins, %d and %d\n",
ncx1,
ncx2);
 
 8177   for(
Int_t i = 1; i <= 
axis1->GetNbins() + 1; ++i) {
 
 8179         Error(
"KolmogorovTest",
"Histograms are not consistent: they have different bin edges");
 
 8196      sum2 += h2->RetrieveBinContent(bin);
 
 8198      ew2   = h2->GetBinError(bin);
 
 8203      Error(
"KolmogorovTest",
"Histogram1 %s integral is zero\n",
h1->
GetName());
 
 8207      Error(
"KolmogorovTest",
"Histogram2 %s integral is zero\n",h2->GetName());
 
 8226      Error(
"KolmogorovTest",
"Errors are zero for both histograms\n");
 
 8239      rsum2 += 
s2*h2->RetrieveBinContent(bin);
 
 8286         int num = atoi(
snum.Data());
 
 8288            Warning(
"KolmogorovTest",
"invalid number of toys given: %d - use 1000",num);
 
 8302      if (
hparent.GetMinimum() < 0.0) {
 
 8305         Warning(
"KolmogorovTest", 
"Detected bins with negative weights, these have been ignored and output might be " 
 8306                                   "skewed. Reduce number of bins for histogram?");
 
 8307         while (
hparent.GetMinimum() < 0.0) {
 
 8309            hparent.SetBinContent(idx, 0.0);
 
 8349      printf(
" Kolmo Prob  h2 = %s, sum bin content =%g  effective entries =%g\n",h2->GetName(),
sum2,
esum2);
 
 8352         printf(
" Kolmo Prob     = %f for shape alone, =%f for normalisation alone\n",
prb1,
prb2);
 
 8358   if (
TMath::Abs(
rsum2-1) > 0.002) 
Warning(
"KolmogorovTest",
"Numerical problems with h2=%s\n",h2->GetName());
 
 
 8419      if (
zlevel <= 0) 
return 0;
 
 
 8471      if ((zmin == zmax) && (zmin != 0)) {
 
 8477         if (zmax <= 0) 
return;
 
 8478         if (zmin <= 0) zmin = 0.001*zmax;
 
 8483      for (level=0; level<
nlevels; level++) {
 
 
 8740      Error(
"SetBins",
"Operation only valid for 1-d histograms");
 
 
 8767      Error(
"SetBins",
"Operation only valid for 1-d histograms");
 
 
 8793      Error(
"SetBins",
"Operation only valid for 2-D histograms");
 
 
 8821      Error(
"SetBins",
"Operation only valid for 2-D histograms");
 
 
 8848      Error(
"SetBins",
"Operation only valid for 3-D histograms");
 
 
 8878      Error(
"SetBins",
"Operation only valid for 3-D histograms");
 
 
 9000         Warning(
"Sumw2",
"Sum of squares of weights structure already created");
 
 
 9032   if (bin < 0) bin = 0;
 
 
 9052   if (bin < 0) bin = 0;
 
 9062      Warning(
"GetBinErrorLow",
"Histogram has negative bin content-force usage to normal errors");
 
 9067   if (
n == 0) 
return 0;
 
 
 9082   if (bin < 0) bin = 0;
 
 9092      Warning(
"GetBinErrorUp",
"Histogram has negative bin content-force usage to normal errors");
 
 
 9111   Error(
"GetBinCenter",
"Invalid method for a %d-d histogram - return a NaN",
fDimension);
 
 
 9122   Error(
"GetBinLowEdge",
"Invalid method for a %d-d histogram - return a NaN",
fDimension);
 
 
 9133   Error(
"GetBinWidth",
"Invalid method for a %d-d histogram - return a NaN",
fDimension);
 
 
 9160   Error(
"GetLowEdge",
"Invalid method for a %d-d histogram ",
fDimension);
 
 9193   if (bin < 0) 
return;
 
 
 9288   if (!
fft ||  !
fft->GetN() ) {
 
 9289      ::Error(
"TransformHisto",
"Invalid FFT transform class");
 
 9293   if (
fft->GetNdim()>2){
 
 9294      ::Error(
"TransformHisto",
"Only 1d and 2D transform are supported");
 
 9307      if (
fft->GetNdim()==1)
 
 9309      else if (
fft->GetNdim()==2)
 
 9316      if (
type.Contains(
"2C") || 
type.Contains(
"2HC")) {
 
 9335      if (
type.Contains(
"2C") || 
type.Contains(
"2HC")) {
 
 9345         ::Error(
"TransformHisto",
"No complex numbers in the output");
 
 9350      if (
type.Contains(
"2C") || 
type.Contains(
"2HC")) {
 
 9369      if (
type.Contains(
"2C") || 
type.Contains(
"2HC")){
 
 9394         printf(
"Pure real output, no phase");
 
 
 9424std::string cling::printValue(
TH1 *val) {
 
 9425  std::ostringstream 
strm;
 
 9452: 
TH1(
name,title,nbins,xlow,xup)
 
 
 9498   h1c.TH1C::Copy(*
this);
 
 9557      h1.TH1C::Copy(*
this);
 
 
 9568   hnew.SetDirectory(
nullptr);
 
 
 9579   hnew.SetDirectory(
nullptr);
 
 
 9590   hnew.SetDirectory(
nullptr);
 
 
 9601   hnew.SetDirectory(
nullptr);
 
 
 9612   hnew.SetDirectory(
nullptr);
 
 
 9638: 
TH1(
name,title,nbins,xlow,xup)
 
 
 9684   h1s.TH1S::Copy(*
this);
 
 9743      h1.TH1S::Copy(*
this);
 
 
 9754   hnew.SetDirectory(
nullptr);
 
 
 9765   hnew.SetDirectory(
nullptr);
 
 
 9776   hnew.SetDirectory(
nullptr);
 
 
 9787   hnew.SetDirectory(
nullptr);
 
 
 9798   hnew.SetDirectory(
nullptr);
 
 
 9825: 
TH1(
name,title,nbins,xlow,xup)
 
 
 9871   h1i.TH1I::Copy(*
this);
 
 9930      h1.TH1I::Copy(*
this);
 
 
 9942   hnew.SetDirectory(
nullptr);
 
 
 9953   hnew.SetDirectory(
nullptr);
 
 
 9964   hnew.SetDirectory(
nullptr);
 
 
 9975   hnew.SetDirectory(
nullptr);
 
 
 9986   hnew.SetDirectory(
nullptr);
 
 
10013: 
TH1(
name,title,nbins,xlow,xup)
 
 
10059   h1l.TH1L::Copy(*
this);
 
10118      h1.TH1L::Copy(*
this);
 
 
10130   hnew.SetDirectory(
nullptr);
 
 
10141   hnew.SetDirectory(
nullptr);
 
 
10152   hnew.SetDirectory(
nullptr);
 
 
10162   hnew.Multiply(&h2);
 
10163   hnew.SetDirectory(
nullptr);
 
 
10174   hnew.SetDirectory(
nullptr);
 
 
10200: 
TH1(
name,title,nbins,xlow,xup)
 
 
10238: 
TH1(
"TVectorF",
"",
v.GetNrows(),0,
v.GetNrows())
 
 
10256   h1f.TH1F::Copy(*
this);
 
10300      h1f.TH1F::Copy(*
this);
 
 
10311   hnew.SetDirectory(
nullptr);
 
 
10322   hnew.SetDirectory(
nullptr);
 
 
10333   hnew.SetDirectory(
nullptr);
 
 
10343   hnew.Multiply(&h2);
 
10344   hnew.SetDirectory(
nullptr);
 
 
10355   hnew.SetDirectory(
nullptr);
 
 
10381: 
TH1(
name,title,nbins,xlow,xup)
 
 
10419: 
TH1(
"TVectorD",
"",
v.GetNrows(),0,
v.GetNrows())
 
 
10493   hnew.SetDirectory(
nullptr);
 
 
10504   hnew.SetDirectory(
nullptr);
 
 
10515   hnew.SetDirectory(
nullptr);
 
 
10525   hnew.Multiply(&h2);
 
10526   hnew.SetDirectory(
nullptr);
 
 
10537   hnew.SetDirectory(
nullptr);
 
 
 
 
 
 
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t SetLineWidth
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t SetFillStyle
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t del
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t np
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t SetLineColor
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t SetFillColor
Option_t Option_t SetMarkerStyle
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Option_t Option_t TPoint TPoint const char y1
static bool IsEquidistantBinning(const TAxis &axis)
Test if the binning is equidistant.
void H1LeastSquareLinearFit(Int_t ndata, Double_t &a0, Double_t &a1, Int_t &ifail)
Least square linear fit without weights.
void H1InitGaus()
Compute Initial values of parameters for a gaussian.
void H1InitExpo()
Compute Initial values of parameters for an exponential.
TH1C operator+(const TH1C &h1, const TH1C &h2)
Operator +.
TH1C operator-(const TH1C &h1, const TH1C &h2)
Operator -.
TH1C operator/(const TH1C &h1, const TH1C &h2)
Operator /.
void H1LeastSquareSeqnd(Int_t n, Double_t *a, Int_t idim, Int_t &ifail, Int_t k, Double_t *b)
Extracted from CERN Program library routine DSEQN.
static Bool_t AlmostEqual(Double_t a, Double_t b, Double_t epsilon=0.00000001)
Test if two double are almost equal.
static Bool_t AlmostInteger(Double_t a, Double_t epsilon=0.00000001)
Test if a double is almost an integer.
TH1 * R__H(Int_t hid)
return pointer to histogram with name hid if id >=0 h_id if id <0
TH1C operator*(Double_t c1, const TH1C &h1)
Operator *.
void H1LeastSquareFit(Int_t n, Int_t m, Double_t *a)
Least squares lpolynomial fitting without weights.
void H1InitPolynom()
Compute Initial values of parameters for a polynom.
R__EXTERN TVirtualMutex * gROOTMutex
R__EXTERN TRandom * gRandom
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
R__EXTERN TStyle * gStyle
#define R__LOCKGUARD(mutex)
#define R__WRITE_LOCKGUARD(mutex)
Class describing the binned data sets : vectors of x coordinates, y values and optionally error on y ...
class describing the range in the coordinates it supports multiple range in a coordinate.
void AndersonDarling2SamplesTest(Double_t &pvalue, Double_t &testStat) const
Performs the Anderson-Darling 2-Sample Test.
const_iterator begin() const
const_iterator end() const
Array of chars or bytes (8 bits per element).
void Set(Int_t n) override
Set size of this array to n chars.
Array of doubles (64 bits per element).
void Streamer(TBuffer &) override
Stream a TArrayD object.
void Copy(TArrayD &array) const
void Set(Int_t n) override
Set size of this array to n doubles.
const Double_t * GetArray() const
Array of floats (32 bits per element).
void Set(Int_t n) override
Set size of this array to n floats.
Array of integers (32 bits per element).
void Set(Int_t n) override
Set size of this array to n ints.
Array of long64s (64 bits per element).
void Set(Int_t n) override
Set size of this array to n long64s.
Array of shorts (16 bits per element).
void Set(Int_t n) override
Set size of this array to n shorts.
Abstract array base class.
virtual void Set(Int_t n)=0
virtual Color_t GetTitleColor() const
virtual Color_t GetLabelColor() const
virtual Int_t GetNdivisions() const
virtual Color_t GetAxisColor() const
virtual void SetTitleOffset(Float_t offset=1)
Set distance between the axis and the axis title.
virtual Style_t GetTitleFont() const
virtual Float_t GetLabelOffset() const
virtual void SetAxisColor(Color_t color=1, Float_t alpha=1.)
Set color of the line axis and tick marks.
virtual void SetLabelSize(Float_t size=0.04)
Set size of axis labels.
virtual Style_t GetLabelFont() const
virtual void SetTitleFont(Style_t font=62)
Set the title font.
virtual void SetLabelOffset(Float_t offset=0.005)
Set distance between the axis and the labels.
virtual void SetLabelFont(Style_t font=62)
Set labels' font.
virtual void SetTitleSize(Float_t size=0.04)
Set size of axis title.
virtual void SetTitleColor(Color_t color=1)
Set color of axis title.
virtual Float_t GetTitleSize() const
virtual Float_t GetLabelSize() const
virtual Float_t GetTickLength() const
virtual void ResetAttAxis(Option_t *option="")
Reset axis attributes.
virtual Float_t GetTitleOffset() const
virtual void SetTickLength(Float_t length=0.03)
Set tick mark length.
virtual void SetNdivisions(Int_t n=510, Bool_t optim=kTRUE)
Set the number of divisions for this axis.
virtual void SetLabelColor(Color_t color=1, Float_t alpha=1.)
Set color of labels.
Fill Area Attributes class.
virtual void Streamer(TBuffer &)
virtual Color_t GetFillColor() const
Return the fill area color.
void Copy(TAttFill &attfill) const
Copy this fill attributes to a new TAttFill.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void SaveFillAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
Save fill attributes as C++ statement(s) on output stream out.
virtual void Streamer(TBuffer &)
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual Style_t GetLineStyle() const
Return the line style.
void Copy(TAttLine &attline) const
Copy this line attributes to a new TAttLine.
virtual void SaveLineAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual void SaveMarkerAttributes(std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
Save line attributes as C++ statement(s) on output stream out.
virtual Style_t GetMarkerStyle() const
Return the marker style.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual Color_t GetMarkerColor() const
Return the marker color.
virtual Size_t GetMarkerSize() const
Return the marker size.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
void Copy(TAttMarker &attmarker) const
Copy this marker attributes to a new TAttMarker.
virtual void Streamer(TBuffer &)
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Class to manage histogram axis.
virtual void GetCenter(Double_t *center) const
Return an array with the center of all bins.
virtual Bool_t GetTimeDisplay() const
Bool_t IsAlphanumeric() const
const char * GetTitle() const override
Returns title of object.
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
virtual void SetParent(TObject *obj)
const TArrayD * GetXbins() const
void SetCanExtend(Bool_t canExtend)
void Copy(TObject &axis) const override
Copy axis structure to another axis.
virtual Int_t FindBin(Double_t x)
Find bin number corresponding to abscissa x.
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
virtual void SetTimeDisplay(Int_t value)
virtual void Set(Int_t nbins, Double_t xmin, Double_t xmax)
Initialize axis with fix bins.
virtual Int_t FindFixBin(Double_t x) const
Find bin number corresponding to abscissa x.
void SaveAttributes(std::ostream &out, const char *name, const char *subname) override
Save axis attributes as C++ statement(s) on output stream out.
Int_t GetLast() const
Return last bin on the axis i.e.
virtual void SetLimits(Double_t xmin, Double_t xmax)
void Streamer(TBuffer &) override
Stream an object of class TAxis.
virtual void GetLowEdge(Double_t *edge) const
Return an array with the low edge of all bins.
virtual void SetRange(Int_t first=0, Int_t last=0)
Set the viewing range for the axis using bin numbers.
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width.
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
Int_t GetFirst() const
Return first bin on the axis i.e.
THashList * GetLabels() const
Using a TBrowser one can browse all ROOT objects.
Buffer base class used for serializing objects.
void * New(ENewType defConstructor=kClassNew, Bool_t quiet=kFALSE) const
Return a pointer to a newly allocated object of this class.
ROOT::NewFunc_t GetNew() const
Return the wrapper around new ThisClass().
Collection abstract base class.
virtual bool UseRWLock(Bool_t enable=true)
Set this collection to use a RW lock upon access, making it thread safe.
TObject * Clone(const char *newname="") const override
Make a clone of an collection using the Streamer facility.
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
Describe directory structure in memory.
virtual void Append(TObject *obj, Bool_t replace=kFALSE)
Append object to this directory.
virtual TObject * Remove(TObject *)
Remove an object from the in-memory list.
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
static void RejectPoint(Bool_t reject=kTRUE)
Static function to set the global flag to reject points the fgRejectPoint global flag is tested by al...
virtual TH1 * GetHistogram() const
Return a pointer to the histogram used to visualise the function Note that this histogram is managed ...
virtual Int_t GetNpar() const
virtual Double_t Integral(Double_t a, Double_t b, Double_t epsrel=1.e-12)
IntegralOneDim or analytical integral.
virtual void InitArgs(const Double_t *x, const Double_t *params)
Initialize parameters addresses.
virtual void GetRange(Double_t *xmin, Double_t *xmax) const
Return range of a generic N-D function.
virtual Double_t EvalPar(const Double_t *x, const Double_t *params=nullptr)
Evaluate function with given coordinates and parameters.
virtual void SetParLimits(Int_t ipar, Double_t parmin, Double_t parmax)
Set lower and upper limits for parameter ipar.
static Bool_t RejectedPoint()
See TF1::RejectPoint above.
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
Evaluate this function.
virtual void SetParameter(Int_t param, Double_t value)
virtual Bool_t IsInside(const Double_t *x) const
return kTRUE if the point is inside the function range
A 2-Dim function with parameters.
A 3-Dim function with parameters.
Provides an indirection to the TFitResult class and with a semantics identical to a TFitResult pointe...
1-D histogram with a byte per channel (see TH1 documentation)
~TH1C() override
Destructor.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
TH1C & operator=(const TH1C &h1)
Operator =.
void Copy(TObject &hnew) const override
Copy this to newth1.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
void Reset(Option_t *option="") override
Reset.
1-D histogram with a double per channel (see TH1 documentation)
~TH1D() override
Destructor.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
void Copy(TObject &hnew) const override
Copy this to newth1.
TH1D & operator=(const TH1D &h1)
Operator =.
1-D histogram with a float per channel (see TH1 documentation)
Double_t RetrieveBinContent(Int_t bin) const override
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
TH1F & operator=(const TH1F &h1)
Operator =.
void Copy(TObject &hnew) const override
Copy this to newth1.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
~TH1F() override
Destructor.
1-D histogram with an int per channel (see TH1 documentation)
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
~TH1I() override
Destructor.
void Copy(TObject &hnew) const override
Copy this to newth1.
TH1I & operator=(const TH1I &h1)
Operator =.
1-D histogram with a long64 per channel (see TH1 documentation)
TH1L & operator=(const TH1L &h1)
Operator =.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
~TH1L() override
Destructor.
void Copy(TObject &hnew) const override
Copy this to newth1.
1-D histogram with a short per channel (see TH1 documentation)
TH1S & operator=(const TH1S &h1)
Operator =.
void Copy(TObject &hnew) const override
Copy this to newth1.
void SetBinsLength(Int_t n=-1) override
Set total number of bins including under/overflow Reallocate bin contents array.
~TH1S() override
Destructor.
void AddBinContent(Int_t bin) override
Increment bin content by 1.
TH1 is the base class of all histogram classes in ROOT.
~TH1() override
Histogram default destructor.
virtual void SetError(const Double_t *error)
Replace bin errors by values in array error.
virtual void SetDirectory(TDirectory *dir)
By default, when a histogram is created, it is added to the list of histogram objects in the current ...
virtual void FitPanel()
Display a panel with all histogram fit options.
Double_t * fBuffer
[fBufferSize] entry buffer
virtual Int_t AutoP2FindLimits(Double_t min, Double_t max)
Buffer-based estimate of the histogram range using the power of 2 algorithm.
virtual Double_t GetEffectiveEntries() const
Number of effective entries of the histogram.
char * GetObjectInfo(Int_t px, Int_t py) const override
Redefines TObject::GetObjectInfo.
virtual void Smooth(Int_t ntimes=1, Option_t *option="")
Smooth bin contents of this histogram.
virtual Double_t GetBinCenter(Int_t bin) const
Return bin center for 1D histogram.
virtual void Rebuild(Option_t *option="")
Using the current bin info, recompute the arrays for contents and errors.
virtual void SetBarOffset(Float_t offset=0.25)
Set the bar offset as fraction of the bin width for drawing mode "B".
static Bool_t fgStatOverflows
! Flag to use under/overflows in statistics
virtual Int_t FindLastBinAbove(Double_t threshold=0, Int_t axis=1, Int_t firstBin=1, Int_t lastBin=-1) const
Find last bin with content > threshold for axis (1=x, 2=y, 3=z) if no bins with content > threshold i...
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a line.
virtual Bool_t Multiply(TF1 *f1, Double_t c1=1)
Performs the operation:
@ kNoAxis
NOTE: Must always be 0 !!!
Int_t fNcells
Number of bins(1D), cells (2D) +U/Overflows.
virtual void GetStats(Double_t *stats) const
fill the array stats from the contents of this histogram The array stats must be correctly dimensione...
void Copy(TObject &hnew) const override
Copy this histogram structure to newth1.
void SetTitle(const char *title) override
Change/set the title.
Double_t fTsumw
Total Sum of weights.
virtual Float_t GetBarWidth() const
Double_t fTsumw2
Total Sum of squares of weights.
static void StatOverflows(Bool_t flag=kTRUE)
if flag=kTRUE, underflows and overflows are used by the Fill functions in the computation of statisti...
virtual Float_t GetBarOffset() const
TList * fFunctions
->Pointer to list of functions (fits and user)
static Bool_t fgAddDirectory
! Flag to add histograms to the directory
static int CheckConsistency(const TH1 *h1, const TH1 *h2)
Check histogram compatibility.
static Int_t GetDefaultBufferSize()
Static function return the default buffer size for automatic histograms the parameter fgBufferSize ma...
virtual Double_t DoIntegral(Int_t ix1, Int_t ix2, Int_t iy1, Int_t iy2, Int_t iz1, Int_t iz2, Double_t &err, Option_t *opt, Bool_t doerr=kFALSE) const
Internal function compute integral and optionally the error between the limits specified by the bin n...
Double_t fTsumwx2
Total Sum of weight*X*X.
virtual Double_t GetStdDev(Int_t axis=1) const
Returns the Standard Deviation (Sigma).
TH1()
Histogram default constructor.
static TH1 * TransformHisto(TVirtualFFT *fft, TH1 *h_output, Option_t *option)
For a given transform (first parameter), fills the histogram (second parameter) with the transform ou...
void UseCurrentStyle() override
Copy current attributes from/to current style.
virtual void LabelsOption(Option_t *option="h", Option_t *axis="X")
Sort bins with labels or set option(s) to draw axis with labels.
virtual Int_t GetNbinsY() const
Short_t fBarOffset
(1000*offset) for bar charts or legos
virtual Double_t Chi2TestX(const TH1 *h2, Double_t &chi2, Int_t &ndf, Int_t &igood, Option_t *option="UU", Double_t *res=nullptr) const
The computation routine of the Chisquare test.
static bool CheckBinLimits(const TAxis *a1, const TAxis *a2)
Check bin limits.
virtual void AddBinContent(Int_t bin)
Increment bin content by 1.
virtual Double_t GetBinError(Int_t bin) const
Return value of error associated to bin number bin.
static Int_t FitOptionsMake(Option_t *option, Foption_t &Foption)
Decode string choptin and fill fitOption structure.
virtual Int_t GetNbinsZ() const
virtual Double_t GetNormFactor() const
virtual Double_t GetMean(Int_t axis=1) const
For axis = 1,2 or 3 returns the mean value of the histogram along X,Y or Z axis.
virtual Double_t GetSkewness(Int_t axis=1) const
virtual void ClearUnderflowAndOverflow()
Remove all the content from the underflow and overflow bins, without changing the number of entries A...
virtual Double_t GetContourLevelPad(Int_t level) const
Return the value of contour number "level" in Pad coordinates.
virtual TH1 * DrawNormalized(Option_t *option="", Double_t norm=1) const
Draw a normalized copy of this histogram.
@ kNeutral
Adapt to the global flag.
virtual Int_t GetDimension() const
void Streamer(TBuffer &) override
Stream a class object.
static void AddDirectory(Bool_t add=kTRUE)
Sets the flag controlling the automatic add of histograms in memory.
@ kIsAverage
Bin contents are average (used by Add)
@ kUserContour
User specified contour levels.
@ kNoStats
Don't draw stats box.
@ kAutoBinPTwo
different than 1.
@ kIsNotW
Histogram is forced to be not weighted even when the histogram is filled with weighted.
@ kIsHighlight
bit set if histo is highlight
virtual void SetContourLevel(Int_t level, Double_t value)
Set value for one contour level.
virtual Bool_t CanExtendAllAxes() const
Returns true if all axes are extendable.
TDirectory * fDirectory
! Pointer to directory holding this histogram
virtual void Reset(Option_t *option="")
Reset this histogram: contents, errors, etc.
void SetNameTitle(const char *name, const char *title) override
Change the name and title of this histogram.
virtual void GetBinXYZ(Int_t binglobal, Int_t &binx, Int_t &biny, Int_t &binz) const
Return binx, biny, binz corresponding to the global bin number globalbin see TH1::GetBin function abo...
TH1 * GetCumulative(Bool_t forward=kTRUE, const char *suffix="_cumulative") const
Return a pointer to a histogram containing the cumulative content.
static Double_t AutoP2GetPower2(Double_t x, Bool_t next=kTRUE)
Auxiliary function to get the power of 2 next (larger) or previous (smaller) a given x.
virtual Int_t GetNcells() const
virtual Int_t ShowPeaks(Double_t sigma=2, Option_t *option="", Double_t threshold=0.05)
Interface to TSpectrum::Search.
static Bool_t RecomputeAxisLimits(TAxis &destAxis, const TAxis &anAxis)
Finds new limits for the axis for the Merge function.
virtual void PutStats(Double_t *stats)
Replace current statistics with the values in array stats.
TVirtualHistPainter * GetPainter(Option_t *option="")
Return pointer to painter.
TObject * FindObject(const char *name) const override
Search object named name in the list of functions.
virtual void FillRandom(const char *fname, Int_t ntimes=5000, TRandom *rng=nullptr)
Fill histogram following distribution in function fname.
void Print(Option_t *option="") const override
Print some global quantities for this histogram.
static Bool_t GetDefaultSumw2()
Return kTRUE if TH1::Sumw2 must be called when creating new histograms.
virtual Int_t FindFirstBinAbove(Double_t threshold=0, Int_t axis=1, Int_t firstBin=1, Int_t lastBin=-1) const
Find first bin with content > threshold for axis (1=x, 2=y, 3=z) if no bins with content > threshold ...
virtual TFitResultPtr Fit(const char *formula, Option_t *option="", Option_t *goption="", Double_t xmin=0, Double_t xmax=0)
Fit histogram with function fname.
virtual Int_t GetBin(Int_t binx, Int_t biny=0, Int_t binz=0) const
Return Global bin number corresponding to binx,y,z.
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
virtual Int_t GetNbinsX() const
virtual void SetMaximum(Double_t maximum=-1111)
virtual TH1 * FFT(TH1 *h_output, Option_t *option)
This function allows to do discrete Fourier transforms of TH1 and TH2.
virtual void LabelsInflate(Option_t *axis="X")
Double the number of bins for axis.
virtual TH1 * ShowBackground(Int_t niter=20, Option_t *option="same")
This function calculates the background spectrum in this histogram.
static Bool_t SameLimitsAndNBins(const TAxis &axis1, const TAxis &axis2)
Same limits and bins.
virtual Bool_t Add(TF1 *h1, Double_t c1=1, Option_t *option="")
Performs the operation: this = this + c1*f1 if errors are defined (see TH1::Sumw2),...
Double_t fMaximum
Maximum value for plotting.
Int_t fBufferSize
fBuffer size
virtual Double_t RetrieveBinContent(Int_t bin) const
Raw retrieval of bin content on internal data structure see convention for numbering bins in TH1::Get...
virtual Double_t IntegralAndError(Int_t binx1, Int_t binx2, Double_t &err, Option_t *option="") const
Return integral of bin contents in range [binx1,binx2] and its error.
Int_t fDimension
! Histogram dimension (1, 2 or 3 dim)
virtual void SetBinError(Int_t bin, Double_t error)
Set the bin Error Note that this resets the bin eror option to be of Normal Type and for the non-empt...
EBinErrorOpt fBinStatErrOpt
Option for bin statistical errors.
static Int_t fgBufferSize
! Default buffer size for automatic histograms
virtual void SetBinsLength(Int_t=-1)
Double_t fNormFactor
Normalization factor.
virtual Int_t Fill(Double_t x)
Increment bin with abscissa X by 1.
TArrayD fContour
Array to display contour levels.
virtual Double_t GetBinErrorLow(Int_t bin) const
Return lower error associated to bin number bin.
void Browse(TBrowser *b) override
Browse the Histogram object.
virtual void SetContent(const Double_t *content)
Replace bin contents by the contents of array content.
void Draw(Option_t *option="") override
Draw this histogram with options.
virtual void SavePrimitiveHelp(std::ostream &out, const char *hname, Option_t *option="")
Helper function for the SavePrimitive functions from TH1 or classes derived from TH1,...
Short_t fBarWidth
(1000*width) for bar charts or legos
virtual Double_t GetBinErrorSqUnchecked(Int_t bin) const
Int_t AxisChoice(Option_t *axis) const
Choose an axis according to "axis".
virtual void SetMinimum(Double_t minimum=-1111)
Bool_t IsBinUnderflow(Int_t bin, Int_t axis=0) const
Return true if the bin is underflow.
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive as a C++ statement(s) on output stream out.
static bool CheckBinLabels(const TAxis *a1, const TAxis *a2)
Check that axis have same labels.
virtual Double_t Interpolate(Double_t x) const
Given a point x, approximates the value via linear interpolation based on the two nearest bin centers...
static void SetDefaultSumw2(Bool_t sumw2=kTRUE)
When this static function is called with sumw2=kTRUE, all new histograms will automatically activate ...
Bool_t IsBinOverflow(Int_t bin, Int_t axis=0) const
Return true if the bin is overflow.
UInt_t GetAxisLabelStatus() const
Internal function used in TH1::Fill to see which axis is full alphanumeric, i.e.
Double_t * fIntegral
! Integral of bins used by GetRandom
Double_t fMinimum
Minimum value for plotting.
virtual Double_t Integral(Option_t *option="") const
Return integral of bin contents.
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
virtual void DirectoryAutoAdd(TDirectory *)
Perform the automatic addition of the histogram to the given directory.
virtual void GetLowEdge(Double_t *edge) const
Fill array with low edge of bins for 1D histogram Better to use h1.GetXaxis()->GetLowEdge(edge)
virtual Double_t GetBinLowEdge(Int_t bin) const
Return bin lower edge for 1D histogram.
void Build()
Creates histogram basic data structure.
virtual Double_t GetEntries() const
Return the current number of entries.
virtual TF1 * GetFunction(const char *name) const
Return pointer to function with name.
virtual TH1 * Rebin(Int_t ngroup=2, const char *newname="", const Double_t *xbins=nullptr)
Rebin this histogram.
virtual Int_t BufferFill(Double_t x, Double_t w)
accumulate arguments in buffer.
virtual Double_t GetBinWithContent(Double_t c, Int_t &binx, Int_t firstx=0, Int_t lastx=0, Double_t maxdiff=0) const
Compute first binx in the range [firstx,lastx] for which diff = abs(bin_content-c) <= maxdiff.
virtual UInt_t SetCanExtend(UInt_t extendBitMask)
Make the histogram axes extendable / not extendable according to the bit mask returns the previous bi...
TList * GetListOfFunctions() const
void SetName(const char *name) override
Change the name of this histogram.
virtual TH1 * DrawCopy(Option_t *option="", const char *name_postfix="_copy") const
Copy this histogram and Draw in the current pad.
Bool_t IsEmpty() const
Check if a histogram is empty (this is a protected method used mainly by TH1Merger )
virtual Double_t GetMeanError(Int_t axis=1) const
Return standard error of mean of this histogram along the X axis.
void Paint(Option_t *option="") override
Control routine to paint any kind of histograms.
virtual Double_t AndersonDarlingTest(const TH1 *h2, Option_t *option="") const
Statistical test of compatibility in shape between this histogram and h2, using the Anderson-Darling ...
virtual void ResetStats()
Reset the statistics including the number of entries and replace with values calculated from bin cont...
static void SetDefaultBufferSize(Int_t buffersize=1000)
Static function to set the default buffer size for automatic histograms.
virtual void SetBinErrorOption(EBinErrorOpt type)
virtual void SetBuffer(Int_t buffersize, Option_t *option="")
Set the maximum number of entries to be kept in the buffer.
virtual void DrawPanel()
Display a panel with all histogram drawing options.
virtual Double_t GetRandom(TRandom *rng=nullptr) const
Return a random number distributed according the histogram bin contents.
virtual Double_t Chisquare(TF1 *f1, Option_t *option="") const
Compute and return the chisquare of this histogram with respect to a function The chisquare is comput...
virtual Double_t Chi2Test(const TH1 *h2, Option_t *option="UU", Double_t *res=nullptr) const
test for comparing weighted and unweighted histograms.
virtual void DoFillN(Int_t ntimes, const Double_t *x, const Double_t *w, Int_t stride=1)
Internal method to fill histogram content from a vector called directly by TH1::BufferEmpty.
virtual void GetMinimumAndMaximum(Double_t &min, Double_t &max) const
Retrieve the minimum and maximum values in the histogram.
@ kNstat
Size of statistics data (up to TProfile3D)
virtual Int_t GetMaximumBin() const
Return location of bin with maximum value in the range.
static Int_t AutoP2GetBins(Int_t n)
Auxiliary function to get the next power of 2 integer value larger then n.
Double_t fEntries
Number of entries.
virtual Long64_t Merge(TCollection *list)
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
virtual Double_t * GetIntegral()
Return a pointer to the array of bins integral.
TAxis fZaxis
Z axis descriptor.
EStatOverflows fStatOverflows
Per object flag to use under/overflows in statistics.
TClass * IsA() const override
virtual void FillN(Int_t ntimes, const Double_t *x, const Double_t *w, Int_t stride=1)
Fill this histogram with an array x and weights w.
virtual void UpdateBinContent(Int_t bin, Double_t content)
Raw update of bin content on internal data structure see convention for numbering bins in TH1::GetBin...
static bool CheckEqualAxes(const TAxis *a1, const TAxis *a2)
Check that the axis are the same.
@ kPoisson2
Errors from Poisson interval at 95% CL (~ 2 sigma)
@ kNormal
Errors with Normal (Wald) approximation: errorUp=errorLow= sqrt(N)
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
virtual Int_t GetContour(Double_t *levels=nullptr)
Return contour values into array levels if pointer levels is non zero.
TAxis fXaxis
X axis descriptor.
virtual Bool_t IsHighlight() const
virtual void ExtendAxis(Double_t x, TAxis *axis)
Histogram is resized along axis such that x is in the axis range.
virtual Double_t GetBinWidth(Int_t bin) const
Return bin width for 1D histogram.
TArrayD fSumw2
Array of sum of squares of weights.
TH1 * GetAsymmetry(TH1 *h2, Double_t c2=1, Double_t dc2=0)
Return a histogram containing the asymmetry of this histogram with h2, where the asymmetry is defined...
virtual Double_t GetContourLevel(Int_t level) const
Return value of contour number level.
virtual void SetContour(Int_t nlevels, const Double_t *levels=nullptr)
Set the number and values of contour levels.
virtual void SetHighlight(Bool_t set=kTRUE)
Set highlight (enable/disable) mode for the histogram by default highlight mode is disable.
virtual Int_t GetQuantiles(Int_t nprobSum, Double_t *q, const Double_t *probSum=nullptr)
Compute Quantiles for this histogram Quantile x_q of a probability distribution Function F is defined...
virtual Double_t GetBinErrorUp(Int_t bin) const
Return upper error associated to bin number bin.
virtual void Scale(Double_t c1=1, Option_t *option="")
Multiply this histogram by a constant c1.
virtual Int_t GetMinimumBin() const
Return location of bin with minimum value in the range.
virtual Int_t GetSumw2N() const
virtual Int_t FindBin(Double_t x, Double_t y=0, Double_t z=0)
Return Global bin number corresponding to x,y,z.
Bool_t GetStatOverflowsBehaviour() const
void SaveAs(const char *filename="hist", Option_t *option="") const override
Save the histogram as .csv, .tsv or .txt.
TObject * Clone(const char *newname="") const override
Make a complete copy of the underlying object.
virtual Double_t GetStdDevError(Int_t axis=1) const
Return error of standard deviation estimation for Normal distribution.
virtual Bool_t Divide(TF1 *f1, Double_t c1=1)
Performs the operation: this = this/(c1*f1) if errors are defined (see TH1::Sumw2),...
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
Return minimum value larger than minval of bins in the range, unless the value has been overridden by...
int LoggedInconsistency(const char *name, const TH1 *h1, const TH1 *h2, bool useMerge=false) const
static bool CheckConsistentSubAxes(const TAxis *a1, Int_t firstBin1, Int_t lastBin1, const TAxis *a2, Int_t firstBin2=0, Int_t lastBin2=0)
Check that two sub axis are the same.
void RecursiveRemove(TObject *obj) override
Recursively remove object from the list of functions.
TAxis fYaxis
Y axis descriptor.
virtual Double_t KolmogorovTest(const TH1 *h2, Option_t *option="") const
Statistical test of compatibility in shape between this histogram and h2, using Kolmogorov test.
virtual Double_t GetSumOfWeights() const
Return the sum of weights excluding under/overflows.
static void SmoothArray(Int_t NN, Double_t *XX, Int_t ntimes=1)
Smooth array xx, translation of Hbook routine hsmoof.F.
virtual void GetCenter(Double_t *center) const
Fill array with center of bins for 1D histogram Better to use h1.GetXaxis()->GetCenter(center)
TVirtualHistPainter * fPainter
! Pointer to histogram painter
virtual void SetBins(Int_t nx, Double_t xmin, Double_t xmax)
Redefine x axis parameters.
virtual Int_t FindFixBin(Double_t x, Double_t y=0, Double_t z=0) const
Return Global bin number corresponding to x,y,z.
virtual void Sumw2(Bool_t flag=kTRUE)
Create structure to store sum of squares of weights.
virtual void SetEntries(Double_t n)
virtual Bool_t FindNewAxisLimits(const TAxis *axis, const Double_t point, Double_t &newMin, Double_t &newMax)
finds new limits for the axis so that point is within the range and the limits are compatible with th...
static bool CheckAxisLimits(const TAxis *a1, const TAxis *a2)
Check that the axis limits of the histograms are the same.
static Bool_t AddDirectoryStatus()
Static function: cannot be inlined on Windows/NT.
static Bool_t fgDefaultSumw2
! Flag to call TH1::Sumw2 automatically at histogram creation time
Double_t fTsumwx
Total Sum of weight*X.
virtual void LabelsDeflate(Option_t *axis="X")
Reduce the number of bins for the axis passed in the option to the number of bins having a label.
virtual Double_t ComputeIntegral(Bool_t onlyPositive=false)
Compute integral (normalized cumulative sum of bins) w/o under/overflows The result is stored in fInt...
TString fOption
Histogram options.
virtual void Eval(TF1 *f1, Option_t *option="")
Evaluate function f1 at the center of bins of this histogram.
virtual void SetBarWidth(Float_t width=0.5)
Set the width of bars as fraction of the bin width for drawing mode "B".
virtual Int_t BufferEmpty(Int_t action=0)
Fill histogram with all entries in the buffer.
virtual void SetStats(Bool_t stats=kTRUE)
Set statistics option on/off.
virtual Double_t GetKurtosis(Int_t axis=1) const
2-D histogram with a double per channel (see TH1 documentation)
static THLimitsFinder * GetLimitsFinder()
Return pointer to the current finder.
THashList implements a hybrid collection class consisting of a hash table and a list to store TObject...
void Clear(Option_t *option="") override
Remove all objects from the list.
void Streamer(TBuffer &) override
Stream all objects in the collection to or from the I/O buffer.
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void RecursiveRemove(TObject *obj) override
Remove object from this collection and recursively remove the object from all other objects (and coll...
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
virtual TObjLink * FirstLink() const
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
TObject * At(Int_t idx) const override
Returns the object at position idx. Returns 0 if idx is out of range.
The TNamed class is the base class for all named ROOT classes.
void Copy(TObject &named) const override
Copy this to obj.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
const char * GetName() const override
Returns name of object.
void Streamer(TBuffer &) override
Stream an object of class TObject.
const char * GetTitle() const override
Returns title of object.
virtual void SetName(const char *name)
Set the name of the TNamed.
Mother of all ROOT objects.
void AbstractMethod(const char *method) const
Use this method to implement an "abstract" method that you don't want to leave purely abstract.
virtual const char * GetName() const
Returns name of object.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual UInt_t GetUniqueID() const
Return the unique object id.
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
virtual void SaveAs(const char *filename="", Option_t *option="") const
Save this object in the file specified by filename.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
@ kCanDelete
if object in a list can be deleted
@ kInvalidObject
if object ctor succeeded but object should not be used
@ kMustCleanup
if object destructor must call RecursiveRemove()
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Longptr_t ExecPlugin(int nargs)
Int_t LoadPlugin()
Load the plugin library for this handler.
This is the base class for the ROOT Random number generators.
Double_t Rndm() override
Machine independent random number generator.
virtual Double_t PoissonD(Double_t mean)
Generates a random number according to a Poisson law.
virtual ULong64_t Poisson(Double_t mean)
Generates a random integer N according to a Poisson law.
void ToLower()
Change string to lower-case.
const char * Data() const
TString & ReplaceAll(const TString &s1, const TString &s2)
void ToUpper()
Change string to upper case.
virtual void Streamer(TBuffer &)
Stream a string object.
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
void SetHistFillColor(Color_t color=1)
Color_t GetHistLineColor() const
Float_t GetBarOffset() const
void SetHistLineStyle(Style_t styl=0)
Style_t GetHistFillStyle() const
Color_t GetHistFillColor() const
Float_t GetBarWidth() const
Bool_t GetCanvasPreferGL() const
void SetHistLineColor(Color_t color=1)
void SetBarOffset(Float_t baroff=0.5)
Style_t GetHistLineStyle() const
void SetBarWidth(Float_t barwidth=0.5)
void SetHistFillStyle(Style_t styl=0)
Width_t GetHistLineWidth() const
void SetHistLineWidth(Width_t width=1)
TVirtualFFT is an interface class for Fast Fourier Transforms.
static TVirtualFFT * FFT(Int_t ndim, Int_t *n, Option_t *option)
Returns a pointer to the FFT of requested size and type.
static TVirtualFFT * SineCosine(Int_t ndim, Int_t *n, Int_t *r2rkind, Option_t *option)
Returns a pointer to a sine or cosine transform of requested size and kind.
Abstract Base Class for Fitting.
static TVirtualFitter * GetFitter()
static: return the current Fitter
Abstract interface to a histogram painter.
virtual void DrawPanel()=0
Int_t DistancetoPrimitive(Int_t px, Int_t py) override=0
Computes distance from point (px,py) to the object.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override=0
Execute action corresponding to an event at (px,py).
virtual void SetHighlight()=0
static TVirtualHistPainter * HistPainter(TH1 *obj)
Static function returning a pointer to the current histogram painter.
void Paint(Option_t *option="") override=0
This method must be overridden if a class wants to paint itself.
double gamma_quantile_c(double z, double alpha, double theta)
Inverse ( ) of the cumulative distribution function of the upper tail of the gamma distribution (gamm...
double gamma_quantile(double z, double alpha, double theta)
Inverse ( ) of the cumulative distribution function of the lower tail of the gamma distribution (gamm...
R__ALWAYS_INLINE bool HasBeenDeleted(const TObject *obj)
Check if the TObject's memory has been deleted.
TFitResultPtr FitObject(TH1 *h1, TF1 *f1, Foption_t &option, const ROOT::Math::MinimizerOptions &moption, const char *goption, ROOT::Fit::DataRange &range)
fitting function for a TH1 (called from TH1::Fit)
double Chisquare(const TH1 &h1, TF1 &f1, bool useRange, EChisquareType type)
compute the chi2 value for an histogram given a function (see TH1::Chisquare for the documentation)
void FitOptionsMake(EFitObjectType type, const char *option, Foption_t &fitOption)
Decode list of options into fitOption.
void FillData(BinData &dv, const TH1 *hist, TF1 *func=nullptr)
fill the data vector from a TH1.
R__EXTERN TVirtualRWMutex * gCoreMutex
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Double_t Prob(Double_t chi2, Int_t ndf)
Computation of the probability for a certain Chi-squared (chi2) and number of degrees of freedom (ndf...
Double_t Median(Long64_t n, const T *a, const Double_t *w=nullptr, Long64_t *work=nullptr)
Same as RMS.
Double_t QuietNaN()
Returns a quiet NaN as defined by IEEE 754.
Double_t Floor(Double_t x)
Rounds x downward, returning the largest integral value that is not greater than x.
Double_t ATan(Double_t)
Returns the principal value of the arc tangent of x, expressed in radians.
Double_t Ceil(Double_t x)
Rounds x upward, returning the smallest integral value that is not less than x.
T MinElement(Long64_t n, const T *a)
Returns minimum of array a of length n.
Double_t Log(Double_t x)
Returns the natural logarithm of x.
Double_t Sqrt(Double_t x)
Returns the square root of x.
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
Returns x raised to the power y.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Bool_t AreEqualRel(Double_t af, Double_t bf, Double_t relPrec)
Comparing floating points.
Bool_t AreEqualAbs(Double_t af, Double_t bf, Double_t epsilon)
Comparing floating points.
Double_t KolmogorovProb(Double_t z)
Calculates the Kolmogorov distribution function,.
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)
Sort the n elements of the array a of generic templated type Element.
Long64_t BinarySearch(Long64_t n, const T *array, T value)
Binary search in an array of n values to locate value.
Double_t Log10(Double_t x)
Returns the common (base-10) logarithm of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
Double_t Infinity()
Returns an infinity as defined by the IEEE standard.
static uint64_t sum(uint64_t i)