packages feed

HROOT-0.7: csrc/HROOTTH1.h

#ifdef __cplusplus
extern "C" { 
#endif 

#include "HROOTType.h"

#include "HROOTTNamed.h"
#include "HROOTTAttLine.h"
#include "HROOTTAttFill.h"
#include "HROOTTAttMarker.h"
#include "HROOTTObject.h"
#include "HROOTDeletable.h"

#undef ROOT_TH1_DECLARATIONVIRT
#define ROOT_TH1_DECLARATIONVIRT(Type) \
void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 ); \
void Type ## _AddBinContent ( Type ## _p p, int  bin, double w ); \
double Type ## _Chi2Test ( Type ## _p p, TH1_p h2, const char * option, double * res ); \
double Type ## _ComputeIntegral ( Type ## _p p ); \
void Type ## _DirectoryAutoAdd ( Type ## _p p, TDirectory_p dir ); \
void Type ## _Divide ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char * option ); \
Type ## _p Type ## _drawCopyTH1 ( Type ## _p p, const char * option ); \
TH1_p Type ## _DrawNormalized ( Type ## _p p, const char * option, double norm ); \
void Type ## _drawPanelTH1 ( Type ## _p p ); \
int  Type ## _BufferEmpty ( Type ## _p p, int  action ); \
void Type ## _evalF ( Type ## _p p, TF1_p f1, const char * option ); \
TH1_p Type ## _FFT ( Type ## _p p, TH1_p h_output, const char * option ); \
int  Type ## _fill1 ( Type ## _p p, double x ); \
int  Type ## _fill1w ( Type ## _p p, double x, double w ); \
void Type ## _fillN1 ( Type ## _p p, int  ntimes, double * x, double * w, int  stride ); \
void Type ## _FillRandom ( Type ## _p p, TH1_p h, int  ntimes ); \
int  Type ## _FindBin ( Type ## _p p, double x, double y, double z ); \
int  Type ## _FindFixBin ( Type ## _p p, double x, double y, double z ); \
int  Type ## _FindFirstBinAbove ( Type ## _p p, double threshold, int  axis ); \
int  Type ## _FindLastBinAbove ( Type ## _p p, double threshold, int  axis ); \
void Type ## _FitPanelTH1 ( Type ## _p p ); \
int  Type ## _getNdivisionA ( Type ## _p p, const char * axis ); \
int  Type ## _getAxisColorA ( Type ## _p p, const char * axis ); \
int  Type ## _getLabelColorA ( Type ## _p p, const char * axis ); \
int  Type ## _getLabelFontA ( Type ## _p p, const char * axis ); \
double Type ## _getLabelOffsetA ( Type ## _p p, const char * axis ); \
double Type ## _getLabelSizeA ( Type ## _p p, const char * axis ); \
int  Type ## _getTitleFontA ( Type ## _p p, const char * axis ); \
double Type ## _getTitleOffsetA ( Type ## _p p, const char * axis ); \
double Type ## _getTitleSizeA ( Type ## _p p, const char * axis ); \
double Type ## _getTickLengthA ( Type ## _p p, const char * axis ); \
double Type ## _GetBarOffset ( Type ## _p p ); \
double Type ## _GetBarWidth ( Type ## _p p ); \
int  Type ## _GetContour ( Type ## _p p, double * levels ); \
double Type ## _GetContourLevel ( Type ## _p p, int  level ); \
double Type ## _GetContourLevelPad ( Type ## _p p, int  level ); \
int  Type ## _GetBin ( Type ## _p p, int  binx, int  biny, int  binz ); \
double Type ## _GetBinCenter ( Type ## _p p, int  bin ); \
double Type ## _GetBinContent1 ( Type ## _p p, int  binx ); \
double Type ## _GetBinContent2 ( Type ## _p p, int  binx, int  biny ); \
double Type ## _GetBinContent3 ( Type ## _p p, int  binx, int  biny, int  binz ); \
double Type ## _GetBinError1 ( Type ## _p p, int  binx ); \
double Type ## _GetBinError2 ( Type ## _p p, int  binx, int  biny ); \
double Type ## _GetBinError3 ( Type ## _p p, int  binx, int  biny, int  binz ); \
double Type ## _GetBinLowEdge ( Type ## _p p, int  bin ); \
double Type ## _GetBinWidth ( Type ## _p p, int  bin ); \
double Type ## _GetCellContent ( Type ## _p p, int  binx, int  biny ); \
double Type ## _GetCellError ( Type ## _p p, int  binx, int  biny ); \
double Type ## _GetEntries ( Type ## _p p ); \
double Type ## _GetEffectiveEntries ( Type ## _p p ); \
TF1_p Type ## _GetFunction ( Type ## _p p, const char * name ); \
int  Type ## _GetDimension ( Type ## _p p ); \
double Type ## _GetKurtosis ( Type ## _p p, int  axis ); \
void Type ## _GetLowEdge ( Type ## _p p, double * edge ); \
double Type ## _getMaximumTH1 ( Type ## _p p, double maxval ); \
int  Type ## _GetMaximumBin ( Type ## _p p ); \
double Type ## _GetMaximumStored ( Type ## _p p ); \
double Type ## _getMinimumTH1 ( Type ## _p p, double minval ); \
int  Type ## _GetMinimumBin ( Type ## _p p ); \
double Type ## _GetMinimumStored ( Type ## _p p ); \
double Type ## _GetMean ( Type ## _p p, int  axis ); \
double Type ## _GetMeanError ( Type ## _p p, int  axis ); \
double Type ## _GetNbinsX ( Type ## _p p ); \
double Type ## _GetNbinsY ( Type ## _p p ); \
double Type ## _GetNbinsZ ( Type ## _p p ); \
int  Type ## _getQuantilesTH1 ( Type ## _p p, int  nprobSum, double * q, double * pbSum ); \
double Type ## _GetRandom ( Type ## _p p ); \
void Type ## _GetStats ( Type ## _p p, double * stats ); \
double Type ## _GetSumOfWeights ( Type ## _p p ); \
TArrayD_p Type ## _GetSumw2 ( Type ## _p p ); \
int  Type ## _GetSumw2N ( Type ## _p p ); \
double Type ## _GetRMS ( Type ## _p p, int  axis ); \
double Type ## _GetRMSError ( Type ## _p p, int  axis ); \
double Type ## _GetSkewness ( Type ## _p p, int  axis ); \
double Type ## _integral1 ( Type ## _p p, int  binx1, int  binx2, const char * option ); \
double Type ## _interpolate1 ( Type ## _p p, double x ); \
double Type ## _interpolate2 ( Type ## _p p, double x, double y ); \
double Type ## _interpolate3 ( Type ## _p p, double x, double y, double z ); \
double Type ## _KolmogorovTest ( Type ## _p p, TH1_p h2, const char * option ); \
void Type ## _LabelsDeflate ( Type ## _p p, const char * axis ); \
void Type ## _LabelsInflate ( Type ## _p p, const char * axis ); \
void Type ## _LabelsOption ( Type ## _p p, const char * option, const char * axis ); \
void Type ## _multiflyF ( Type ## _p p, TF1_p h1, double c1 ); \
void Type ## _Multiply ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char * option ); \
void Type ## _PutStats ( Type ## _p p, double * stats ); \
TH1_p Type ## _Rebin ( Type ## _p p, int  ngroup, const char * newname, double * xbins ); \
void Type ## _RebinAxis ( Type ## _p p, double x, TAxis_p axis ); \
void Type ## _Rebuild ( Type ## _p p, const char * option ); \
void Type ## _Reset ( Type ## _p p, const char * option ); \
void Type ## _ResetStats ( Type ## _p p ); \
void Type ## _Scale ( Type ## _p p, double c1, const char * option ); \
void Type ## _setAxisColorA ( Type ## _p p, int  color, const char * axis ); \
void Type ## _SetAxisRange ( Type ## _p p, double xmin, double xmax, const char * axis ); \
void Type ## _SetBarOffset ( Type ## _p p, double offset ); \
void Type ## _SetBarWidth ( Type ## _p p, double width ); \
void Type ## _setBinContent1 ( Type ## _p p, int  bin, double content ); \
void Type ## _setBinContent2 ( Type ## _p p, int  binx, int  biny, double content ); \
void Type ## _setBinContent3 ( Type ## _p p, int  binx, int  biny, int  binz, double content ); \
void Type ## _setBinError1 ( Type ## _p p, int  bin, double error ); \
void Type ## _setBinError2 ( Type ## _p p, int  binx, int  biny, double error ); \
void Type ## _setBinError3 ( Type ## _p p, int  binx, int  biny, int  binz, double error ); \
void Type ## _setBins1 ( Type ## _p p, int  nx, double * xBins ); \
void Type ## _setBins2 ( Type ## _p p, int  nx, double * xBins, int  ny, double * yBins ); \
void Type ## _setBins3 ( Type ## _p p, int  nx, double * xBins, int  ny, double * yBins, int  nz, double * zBins ); \
void Type ## _SetBinsLength ( Type ## _p p, int  bin ); \
void Type ## _SetBuffer ( Type ## _p p, int  buffersize, const char * option ); \
void Type ## _SetCellContent ( Type ## _p p, int  binx, int  biny, double content ); \
void Type ## _SetContent ( Type ## _p p, double * content ); \
void Type ## _SetContour ( Type ## _p p, int  nlevels, double * levels ); \
void Type ## _SetContourLevel ( Type ## _p p, int  level, double value ); \
void Type ## _SetDirectory ( Type ## _p p, TDirectory_p dir ); \
void Type ## _SetEntries ( Type ## _p p, double n ); \
void Type ## _SetError ( Type ## _p p, double * error ); \
void Type ## _setLabelColorA ( Type ## _p p, int  color, const char * axis ); \
void Type ## _setLabelSizeA ( Type ## _p p, double size, const char * axis ); \
void Type ## _setLabelFontA ( Type ## _p p, int  font, const char * axis ); \
void Type ## _setLabelOffsetA ( Type ## _p p, double offset, const char * axis ); \
void Type ## _SetMaximum ( Type ## _p p, double maximum ); \
void Type ## _SetMinimum ( Type ## _p p, double minimum ); \
void Type ## _SetNormFactor ( Type ## _p p, double factor ); \
void Type ## _SetStats ( Type ## _p p, int stats ); \
void Type ## _SetOption ( Type ## _p p, const char * option ); \
void Type ## _SetXTitle ( Type ## _p p, const char * title ); \
void Type ## _SetYTitle ( Type ## _p p, const char * title ); \
void Type ## _SetZTitle ( Type ## _p p, const char * title ); \
TH1_p Type ## _ShowBackground ( Type ## _p p, int  niter, const char * option ); \
int  Type ## _ShowPeaks ( Type ## _p p, double sigma, const char * option, double threshold ); \
void Type ## _Smooth ( Type ## _p p, int  ntimes, const char * option ); \
void Type ## _Sumw2 ( Type ## _p p )

#undef ROOT_TH1_DECLARATIONNONVIRT
#define ROOT_TH1_DECLARATIONNONVIRT(Type) \
Type ## _p Type ## _tH1GetAsymmetry ( Type ## _p p, TH1_p h2, double c2, double dc2 ); \
int  Type ## _tH1GetBufferLength ( Type ## _p p ); \
int  Type ## _tH1GetBufferSize ( Type ## _p p ); \
TDirectory_p Type ## _tH1GetDirectory ( Type ## _p p ); \
TAxis_p Type ## _tH1GetXaxis ( Type ## _p p ); \
TAxis_p Type ## _tH1GetYaxis ( Type ## _p p ); \
TAxis_p Type ## _tH1GetZaxis ( Type ## _p p ); \
int Type ## _tH1IsBinOverflow ( Type ## _p p, int  bin ); \
int Type ## _tH1IsBinUnderflow ( Type ## _p p, int  bin ); \
void Type ## _tH1UseCurrentStyle ( Type ## _p p )

#undef ROOT_TH1_DEFINITIONVIRT
#define ROOT_TH1_DEFINITIONVIRT(Type)\
void Type ## _Add ( Type ## _p p, TH1_p h1, double c1 )\
{\
to_nonconst<Type,Type ## _t>(p)->Add(to_nonconst<TH1,TH1_t>(h1), c1);\
}\
void Type ## _AddBinContent ( Type ## _p p, int  bin, double w )\
{\
to_nonconst<Type,Type ## _t>(p)->AddBinContent(bin, w);\
}\
double Type ## _Chi2Test ( Type ## _p p, TH1_p h2, const char * option, double * res )\
{\
return to_nonconst<Type,Type ## _t>(p)->Chi2Test(to_nonconst<TH1,TH1_t>(h2), option, res);\
}\
double Type ## _ComputeIntegral ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->ComputeIntegral();\
}\
void Type ## _DirectoryAutoAdd ( Type ## _p p, TDirectory_p dir )\
{\
to_nonconst<Type,Type ## _t>(p)->DirectoryAutoAdd(to_nonconst<TDirectory,TDirectory_t>(dir));\
}\
void Type ## _Divide ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Divide(to_nonconst<TH1,TH1_t>(h1), to_nonconst<TH1,TH1_t>(h2), c1, c2, option);\
}\
Type ## _p Type ## _drawCopyTH1 ( Type ## _p p, const char * option )\
{\
return to_nonconst<Type ## _t, Type>((Type *)to_nonconst<Type,Type ## _t>(p)->DrawCopy(option)) ;\
}\
TH1_p Type ## _DrawNormalized ( Type ## _p p, const char * option, double norm )\
{\
return to_nonconst<TH1_t,TH1>((TH1*)to_nonconst<Type,Type ## _t>(p)->DrawNormalized(option, norm));\
}\
void Type ## _drawPanelTH1 ( Type ## _p p )\
{\
to_nonconst<Type,Type ## _t>(p)->DrawPanel();\
}\
int  Type ## _BufferEmpty ( Type ## _p p, int  action )\
{\
return to_nonconst<Type,Type ## _t>(p)->BufferEmpty(action);\
}\
void Type ## _evalF ( Type ## _p p, TF1_p f1, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Eval(to_nonconst<TF1,TF1_t>(f1), option);\
}\
TH1_p Type ## _FFT ( Type ## _p p, TH1_p h_output, const char * option )\
{\
return to_nonconst<TH1_t,TH1>((TH1*)to_nonconst<Type,Type ## _t>(p)->FFT(to_nonconst<TH1,TH1_t>(h_output), option));\
}\
int  Type ## _fill1 ( Type ## _p p, double x )\
{\
return to_nonconst<Type,Type ## _t>(p)->Fill(x);\
}\
int  Type ## _fill1w ( Type ## _p p, double x, double w )\
{\
return to_nonconst<Type,Type ## _t>(p)->Fill(x, w);\
}\
void Type ## _fillN1 ( Type ## _p p, int  ntimes, double * x, double * w, int  stride )\
{\
to_nonconst<Type,Type ## _t>(p)->FillN(ntimes, x, w, stride);\
}\
void Type ## _FillRandom ( Type ## _p p, TH1_p h, int  ntimes )\
{\
to_nonconst<Type,Type ## _t>(p)->FillRandom(to_nonconst<TH1,TH1_t>(h), ntimes);\
}\
int  Type ## _FindBin ( Type ## _p p, double x, double y, double z )\
{\
return to_nonconst<Type,Type ## _t>(p)->FindBin(x, y, z);\
}\
int  Type ## _FindFixBin ( Type ## _p p, double x, double y, double z )\
{\
return to_nonconst<Type,Type ## _t>(p)->FindFixBin(x, y, z);\
}\
int  Type ## _FindFirstBinAbove ( Type ## _p p, double threshold, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->FindFirstBinAbove(threshold, axis);\
}\
int  Type ## _FindLastBinAbove ( Type ## _p p, double threshold, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->FindLastBinAbove(threshold, axis);\
}\
void Type ## _FitPanelTH1 ( Type ## _p p )\
{\
to_nonconst<Type,Type ## _t>(p)->FitPanel();\
}\
int  Type ## _getNdivisionA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetNdivisions(axis);\
}\
int  Type ## _getAxisColorA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetAxisColor(axis);\
}\
int  Type ## _getLabelColorA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetLabelColor(axis);\
}\
int  Type ## _getLabelFontA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetLabelFont(axis);\
}\
double Type ## _getLabelOffsetA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetLabelOffset(axis);\
}\
double Type ## _getLabelSizeA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetLabelSize(axis);\
}\
int  Type ## _getTitleFontA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetTitleFont(axis);\
}\
double Type ## _getTitleOffsetA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetTitleOffset(axis);\
}\
double Type ## _getTitleSizeA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetTitleSize(axis);\
}\
double Type ## _getTickLengthA ( Type ## _p p, const char * axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetTickLength(axis);\
}\
double Type ## _GetBarOffset ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBarOffset();\
}\
double Type ## _GetBarWidth ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBarWidth();\
}\
int  Type ## _GetContour ( Type ## _p p, double * levels )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetContour(levels);\
}\
double Type ## _GetContourLevel ( Type ## _p p, int  level )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetContourLevel(level);\
}\
double Type ## _GetContourLevelPad ( Type ## _p p, int  level )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetContourLevelPad(level);\
}\
int  Type ## _GetBin ( Type ## _p p, int  binx, int  biny, int  binz )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBin(binx, biny, binz);\
}\
double Type ## _GetBinCenter ( Type ## _p p, int  bin )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinCenter(bin);\
}\
double Type ## _GetBinContent1 ( Type ## _p p, int  binx )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinContent(binx);\
}\
double Type ## _GetBinContent2 ( Type ## _p p, int  binx, int  biny )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinContent(binx, biny);\
}\
double Type ## _GetBinContent3 ( Type ## _p p, int  binx, int  biny, int  binz )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinContent(binx, biny, binz);\
}\
double Type ## _GetBinError1 ( Type ## _p p, int  binx )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinError(binx);\
}\
double Type ## _GetBinError2 ( Type ## _p p, int  binx, int  biny )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinError(binx, biny);\
}\
double Type ## _GetBinError3 ( Type ## _p p, int  binx, int  biny, int  binz )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinError(binx, biny, binz);\
}\
double Type ## _GetBinLowEdge ( Type ## _p p, int  bin )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinLowEdge(bin);\
}\
double Type ## _GetBinWidth ( Type ## _p p, int  bin )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBinWidth(bin);\
}\
double Type ## _GetCellContent ( Type ## _p p, int  binx, int  biny )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetCellContent(binx, biny);\
}\
double Type ## _GetCellError ( Type ## _p p, int  binx, int  biny )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetCellError(binx, biny);\
}\
double Type ## _GetEntries ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetEntries();\
}\
double Type ## _GetEffectiveEntries ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetEffectiveEntries();\
}\
TF1_p Type ## _GetFunction ( Type ## _p p, const char * name )\
{\
return to_nonconst<TF1_t,TF1>((TF1*)to_nonconst<Type,Type ## _t>(p)->GetFunction(name));\
}\
int  Type ## _GetDimension ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetDimension();\
}\
double Type ## _GetKurtosis ( Type ## _p p, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetKurtosis(axis);\
}\
void Type ## _GetLowEdge ( Type ## _p p, double * edge )\
{\
to_nonconst<Type,Type ## _t>(p)->GetLowEdge(edge);\
}\
double Type ## _getMaximumTH1 ( Type ## _p p, double maxval )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMaximum(maxval);\
}\
int  Type ## _GetMaximumBin ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMaximumBin();\
}\
double Type ## _GetMaximumStored ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMaximumStored();\
}\
double Type ## _getMinimumTH1 ( Type ## _p p, double minval )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMinimum(minval);\
}\
int  Type ## _GetMinimumBin ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMinimumBin();\
}\
double Type ## _GetMinimumStored ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMinimumStored();\
}\
double Type ## _GetMean ( Type ## _p p, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMean(axis);\
}\
double Type ## _GetMeanError ( Type ## _p p, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetMeanError(axis);\
}\
double Type ## _GetNbinsX ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetNbinsX();\
}\
double Type ## _GetNbinsY ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetNbinsY();\
}\
double Type ## _GetNbinsZ ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetNbinsZ();\
}\
int  Type ## _getQuantilesTH1 ( Type ## _p p, int  nprobSum, double * q, double * pbSum )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetQuantiles(nprobSum, q, pbSum);\
}\
double Type ## _GetRandom ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetRandom();\
}\
void Type ## _GetStats ( Type ## _p p, double * stats )\
{\
to_nonconst<Type,Type ## _t>(p)->GetStats(stats);\
}\
double Type ## _GetSumOfWeights ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetSumOfWeights();\
}\
TArrayD_p Type ## _GetSumw2 ( Type ## _p p )\
{\
return to_nonconst<TArrayD_t,TArrayD>((TArrayD*)to_nonconst<Type,Type ## _t>(p)->GetSumw2());\
}\
int  Type ## _GetSumw2N ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetSumw2N();\
}\
double Type ## _GetRMS ( Type ## _p p, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetRMS(axis);\
}\
double Type ## _GetRMSError ( Type ## _p p, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetRMSError(axis);\
}\
double Type ## _GetSkewness ( Type ## _p p, int  axis )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetSkewness(axis);\
}\
double Type ## _integral1 ( Type ## _p p, int  binx1, int  binx2, const char * option )\
{\
return to_nonconst<Type,Type ## _t>(p)->Integral(binx1, binx2, option);\
}\
double Type ## _interpolate1 ( Type ## _p p, double x )\
{\
return to_nonconst<Type,Type ## _t>(p)->Interpolate(x);\
}\
double Type ## _interpolate2 ( Type ## _p p, double x, double y )\
{\
return to_nonconst<Type,Type ## _t>(p)->Interpolate(x, y);\
}\
double Type ## _interpolate3 ( Type ## _p p, double x, double y, double z )\
{\
return to_nonconst<Type,Type ## _t>(p)->Interpolate(x, y, z);\
}\
double Type ## _KolmogorovTest ( Type ## _p p, TH1_p h2, const char * option )\
{\
return to_nonconst<Type,Type ## _t>(p)->KolmogorovTest(to_nonconst<TH1,TH1_t>(h2), option);\
}\
void Type ## _LabelsDeflate ( Type ## _p p, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->LabelsDeflate(axis);\
}\
void Type ## _LabelsInflate ( Type ## _p p, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->LabelsInflate(axis);\
}\
void Type ## _LabelsOption ( Type ## _p p, const char * option, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->LabelsOption(option, axis);\
}\
void Type ## _multiflyF ( Type ## _p p, TF1_p h1, double c1 )\
{\
to_nonconst<Type,Type ## _t>(p)->Multiply(to_nonconst<TF1,TF1_t>(h1), c1);\
}\
void Type ## _Multiply ( Type ## _p p, TH1_p h1, TH1_p h2, double c1, double c2, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Multiply(to_nonconst<TH1,TH1_t>(h1), to_nonconst<TH1,TH1_t>(h2), c1, c2, option);\
}\
void Type ## _PutStats ( Type ## _p p, double * stats )\
{\
to_nonconst<Type,Type ## _t>(p)->PutStats(stats);\
}\
TH1_p Type ## _Rebin ( Type ## _p p, int  ngroup, const char * newname, double * xbins )\
{\
return to_nonconst<TH1_t,TH1>((TH1*)to_nonconst<Type,Type ## _t>(p)->Rebin(ngroup, newname, xbins));\
}\
void Type ## _RebinAxis ( Type ## _p p, double x, TAxis_p axis )\
{\
to_nonconst<Type,Type ## _t>(p)->RebinAxis(x, to_nonconst<TAxis,TAxis_t>(axis));\
}\
void Type ## _Rebuild ( Type ## _p p, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Rebuild(option);\
}\
void Type ## _Reset ( Type ## _p p, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Reset(option);\
}\
void Type ## _ResetStats ( Type ## _p p )\
{\
to_nonconst<Type,Type ## _t>(p)->ResetStats();\
}\
void Type ## _Scale ( Type ## _p p, double c1, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Scale(c1, option);\
}\
void Type ## _setAxisColorA ( Type ## _p p, int  color, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->SetAxisColor(color, axis);\
}\
void Type ## _SetAxisRange ( Type ## _p p, double xmin, double xmax, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->SetAxisRange(xmin, xmax, axis);\
}\
void Type ## _SetBarOffset ( Type ## _p p, double offset )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBarOffset(offset);\
}\
void Type ## _SetBarWidth ( Type ## _p p, double width )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBarWidth(width);\
}\
void Type ## _setBinContent1 ( Type ## _p p, int  bin, double content )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinContent(bin, content);\
}\
void Type ## _setBinContent2 ( Type ## _p p, int  binx, int  biny, double content )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinContent(binx, biny, content);\
}\
void Type ## _setBinContent3 ( Type ## _p p, int  binx, int  biny, int  binz, double content )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinContent(binx, biny, binz, content);\
}\
void Type ## _setBinError1 ( Type ## _p p, int  bin, double error )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinError(bin, error);\
}\
void Type ## _setBinError2 ( Type ## _p p, int  binx, int  biny, double error )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinError(binx, biny, error);\
}\
void Type ## _setBinError3 ( Type ## _p p, int  binx, int  biny, int  binz, double error )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinError(binx, biny, binz, error);\
}\
void Type ## _setBins1 ( Type ## _p p, int  nx, double * xBins )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBins(nx, xBins);\
}\
void Type ## _setBins2 ( Type ## _p p, int  nx, double * xBins, int  ny, double * yBins )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBins(nx, xBins, ny, yBins);\
}\
void Type ## _setBins3 ( Type ## _p p, int  nx, double * xBins, int  ny, double * yBins, int  nz, double * zBins )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBins(nx, xBins, ny, yBins, nz, zBins);\
}\
void Type ## _SetBinsLength ( Type ## _p p, int  bin )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBinsLength(bin);\
}\
void Type ## _SetBuffer ( Type ## _p p, int  buffersize, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->SetBuffer(buffersize, option);\
}\
void Type ## _SetCellContent ( Type ## _p p, int  binx, int  biny, double content )\
{\
to_nonconst<Type,Type ## _t>(p)->SetCellContent(binx, biny, content);\
}\
void Type ## _SetContent ( Type ## _p p, double * content )\
{\
to_nonconst<Type,Type ## _t>(p)->SetContent(content);\
}\
void Type ## _SetContour ( Type ## _p p, int  nlevels, double * levels )\
{\
to_nonconst<Type,Type ## _t>(p)->SetContour(nlevels, levels);\
}\
void Type ## _SetContourLevel ( Type ## _p p, int  level, double value )\
{\
to_nonconst<Type,Type ## _t>(p)->SetContourLevel(level, value);\
}\
void Type ## _SetDirectory ( Type ## _p p, TDirectory_p dir )\
{\
to_nonconst<Type,Type ## _t>(p)->SetDirectory(to_nonconst<TDirectory,TDirectory_t>(dir));\
}\
void Type ## _SetEntries ( Type ## _p p, double n )\
{\
to_nonconst<Type,Type ## _t>(p)->SetEntries(n);\
}\
void Type ## _SetError ( Type ## _p p, double * error )\
{\
to_nonconst<Type,Type ## _t>(p)->SetError(error);\
}\
void Type ## _setLabelColorA ( Type ## _p p, int  color, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->SetLabelColor(color, axis);\
}\
void Type ## _setLabelSizeA ( Type ## _p p, double size, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->SetLabelSize(size, axis);\
}\
void Type ## _setLabelFontA ( Type ## _p p, int  font, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->SetLabelFont(font, axis);\
}\
void Type ## _setLabelOffsetA ( Type ## _p p, double offset, const char * axis )\
{\
to_nonconst<Type,Type ## _t>(p)->SetLabelOffset(offset, axis);\
}\
void Type ## _SetMaximum ( Type ## _p p, double maximum )\
{\
to_nonconst<Type,Type ## _t>(p)->SetMaximum(maximum);\
}\
void Type ## _SetMinimum ( Type ## _p p, double minimum )\
{\
to_nonconst<Type,Type ## _t>(p)->SetMinimum(minimum);\
}\
void Type ## _SetNormFactor ( Type ## _p p, double factor )\
{\
to_nonconst<Type,Type ## _t>(p)->SetNormFactor(factor);\
}\
void Type ## _SetStats ( Type ## _p p, int stats )\
{\
to_nonconst<Type,Type ## _t>(p)->SetStats(stats);\
}\
void Type ## _SetOption ( Type ## _p p, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->SetOption(option);\
}\
void Type ## _SetXTitle ( Type ## _p p, const char * title )\
{\
to_nonconst<Type,Type ## _t>(p)->SetXTitle(title);\
}\
void Type ## _SetYTitle ( Type ## _p p, const char * title )\
{\
to_nonconst<Type,Type ## _t>(p)->SetYTitle(title);\
}\
void Type ## _SetZTitle ( Type ## _p p, const char * title )\
{\
to_nonconst<Type,Type ## _t>(p)->SetZTitle(title);\
}\
TH1_p Type ## _ShowBackground ( Type ## _p p, int  niter, const char * option )\
{\
return to_nonconst<TH1_t,TH1>((TH1*)to_nonconst<Type,Type ## _t>(p)->ShowBackground(niter, option));\
}\
int  Type ## _ShowPeaks ( Type ## _p p, double sigma, const char * option, double threshold )\
{\
return to_nonconst<Type,Type ## _t>(p)->ShowPeaks(sigma, option, threshold);\
}\
void Type ## _Smooth ( Type ## _p p, int  ntimes, const char * option )\
{\
to_nonconst<Type,Type ## _t>(p)->Smooth(ntimes, option);\
}\
void Type ## _Sumw2 ( Type ## _p p )\
{\
to_nonconst<Type,Type ## _t>(p)->Sumw2();\
}

#undef ROOT_TH1_DEFINITIONNONVIRT
#define ROOT_TH1_DEFINITIONNONVIRT(Type)\
Type ## _p Type ## _tH1GetAsymmetry ( Type ## _p p, TH1_p h2, double c2, double dc2 )\
{\
return to_nonconst<Type ## _t, Type>((Type *)to_nonconst<Type,Type ## _t>(p)->GetAsymmetry(to_nonconst<TH1,TH1_t>(h2), c2, dc2)) ;\
}\
int  Type ## _tH1GetBufferLength ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBufferLength();\
}\
int  Type ## _tH1GetBufferSize ( Type ## _p p )\
{\
return to_nonconst<Type,Type ## _t>(p)->GetBufferSize();\
}\
TDirectory_p Type ## _tH1GetDirectory ( Type ## _p p )\
{\
return to_nonconst<TDirectory_t,TDirectory>((TDirectory*)to_nonconst<Type,Type ## _t>(p)->GetDirectory());\
}\
TAxis_p Type ## _tH1GetXaxis ( Type ## _p p )\
{\
return to_nonconst<TAxis_t,TAxis>((TAxis*)to_nonconst<Type,Type ## _t>(p)->GetXaxis());\
}\
TAxis_p Type ## _tH1GetYaxis ( Type ## _p p )\
{\
return to_nonconst<TAxis_t,TAxis>((TAxis*)to_nonconst<Type,Type ## _t>(p)->GetYaxis());\
}\
TAxis_p Type ## _tH1GetZaxis ( Type ## _p p )\
{\
return to_nonconst<TAxis_t,TAxis>((TAxis*)to_nonconst<Type,Type ## _t>(p)->GetZaxis());\
}\
int Type ## _tH1IsBinOverflow ( Type ## _p p, int  bin )\
{\
return to_nonconst<Type,Type ## _t>(p)->IsBinOverflow(bin);\
}\
int Type ## _tH1IsBinUnderflow ( Type ## _p p, int  bin )\
{\
return to_nonconst<Type,Type ## _t>(p)->IsBinUnderflow(bin);\
}\
void Type ## _tH1UseCurrentStyle ( Type ## _p p )\
{\
to_nonconst<Type,Type ## _t>(p)->UseCurrentStyle();\
}

ROOT_TNAMED_DECLARATIONVIRT(TH1);
ROOT_TATTLINE_DECLARATIONVIRT(TH1);
ROOT_TATTFILL_DECLARATIONVIRT(TH1);
ROOT_TATTMARKER_DECLARATIONVIRT(TH1);
ROOT_TOBJECT_DECLARATIONVIRT(TH1);
ROOT_DELETABLE_DECLARATIONVIRT(TH1);


ROOT_TH1_DECLARATIONVIRT(TH1);


ROOT_TH1_DECLARATIONNONVIRT(TH1);


#ifdef __cplusplus
}
#endif