#ifdef __cplusplus extern "C" { #endif #pragma once #include "HROOT-histType.h" #include "HROOTHistTH1.h" #include "HROOTCoreTAtt3D.h" #include "HROOTCoreTNamed.h" #include "HROOTCoreTAttLine.h" #include "HROOTCoreTAttFill.h" #include "HROOTCoreTAttMarker.h" #include "HROOTCoreTObject.h" #include "STDDeletable.h" #include "HROOT-coreType.h" #define TH3_DECL_VIRT(Type) \ int Type##_fill3 ( Type##_p p, double x, double y, double z );\ int Type##_fill3w ( Type##_p p, double x, double y, double z, double w );\ void Type##_FitSlicesZ ( Type##_p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option );\ double Type##_getCorrelationFactor3 ( Type##_p p, int axis1, int axis2 );\ double Type##_getCovariance3 ( Type##_p p, int axis1, int axis2 );\ TH3_p Type##_rebinX3 ( Type##_p p, int ngroup, const char* newname );\ TH3_p Type##_rebinY3 ( Type##_p p, int ngroup, const char* newname );\ TH3_p Type##_rebinZ3 ( Type##_p p, int ngroup, const char* newname );\ TH3_p Type##_Rebin3D ( Type##_p p, int nxgroup, int nygroup, int nzgroup, const char* newname ); #define TH3_DECL_NONVIRT(Type) \ TH1D_p Type##_tH3_ProjectionX ( Type##_p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option );\ TH1D_p Type##_tH3_ProjectionY ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option );\ TH1D_p Type##_tH3_ProjectionZ ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option );\ TH1_p Type##_tH3_Project3D ( Type##_p p, const char* option ); #define TH3_DECL_ACCESSOR(Type) \ #define TH3_DEF_VIRT(Type) \ int Type##_fill3 ( Type##_p p, double x, double y, double z ) {\ return ((TYPECASTMETHOD(Type, fill3, TH3))(p))->Fill(x, y, z);\ }\ \ int Type##_fill3w ( Type##_p p, double x, double y, double z, double w ) {\ return ((TYPECASTMETHOD(Type, fill3w, TH3))(p))->Fill(x, y, z, w);\ }\ \ void Type##_FitSlicesZ ( Type##_p p, TF1_p f1, int binminx, int binmaxx, int binminy, int binmaxy, int cut, const char* option ) {\ ((TYPECASTMETHOD(Type, FitSlicesZ, TH3))(p))->FitSlicesZ(from_nonconst_to_nonconst(f1), binminx, binmaxx, binminy, binmaxy, cut, option);\ }\ \ double Type##_getCorrelationFactor3 ( Type##_p p, int axis1, int axis2 ) {\ return ((TYPECASTMETHOD(Type, getCorrelationFactor3, TH3))(p))->GetCorrelationFactor(axis1, axis2);\ }\ \ double Type##_getCovariance3 ( Type##_p p, int axis1, int axis2 ) {\ return ((TYPECASTMETHOD(Type, getCovariance3, TH3))(p))->GetCovariance(axis1, axis2);\ }\ \ TH3_p Type##_rebinX3 ( Type##_p p, int ngroup, const char* newname ) {\ return from_nonconst_to_nonconst((TH3*)((TYPECASTMETHOD(Type, rebinX3, TH3))(p))->RebinX(ngroup, newname));\ }\ \ TH3_p Type##_rebinY3 ( Type##_p p, int ngroup, const char* newname ) {\ return from_nonconst_to_nonconst((TH3*)((TYPECASTMETHOD(Type, rebinY3, TH3))(p))->RebinY(ngroup, newname));\ }\ \ TH3_p Type##_rebinZ3 ( Type##_p p, int ngroup, const char* newname ) {\ return from_nonconst_to_nonconst((TH3*)((TYPECASTMETHOD(Type, rebinZ3, TH3))(p))->RebinZ(ngroup, newname));\ }\ \ TH3_p Type##_Rebin3D ( Type##_p p, int nxgroup, int nygroup, int nzgroup, const char* newname ) {\ return from_nonconst_to_nonconst((TH3*)((TYPECASTMETHOD(Type, Rebin3D, TH3))(p))->Rebin3D(nxgroup, nygroup, nzgroup, newname));\ } #define TH3_DEF_NONVIRT(Type) \ TH1D_p Type##_tH3_ProjectionX ( Type##_p p, const char* name, int firstybin, int lastybin, int firstzbin, int lastzbin, const char* option ) {\ return from_nonconst_to_nonconst((TH1D*)((TYPECASTMETHOD(Type, tH3_ProjectionX, TH3))(p))->ProjectionX(name, firstybin, lastybin, firstzbin, lastzbin, option));\ }\ \ TH1D_p Type##_tH3_ProjectionY ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstzbin, int lastzbin, const char* option ) {\ return from_nonconst_to_nonconst((TH1D*)((TYPECASTMETHOD(Type, tH3_ProjectionY, TH3))(p))->ProjectionY(name, firstxbin, lastxbin, firstzbin, lastzbin, option));\ }\ \ TH1D_p Type##_tH3_ProjectionZ ( Type##_p p, const char* name, int firstxbin, int lastxbin, int firstybin, int lastybin, const char* option ) {\ return from_nonconst_to_nonconst((TH1D*)((TYPECASTMETHOD(Type, tH3_ProjectionZ, TH3))(p))->ProjectionZ(name, firstxbin, lastxbin, firstybin, lastybin, option));\ }\ \ TH1_p Type##_tH3_Project3D ( Type##_p p, const char* option ) {\ return from_nonconst_to_nonconst((TH1*)((TYPECASTMETHOD(Type, tH3_Project3D, TH3))(p))->Project3D(option));\ } #define TH3_DEF_ACCESSOR(Type) \ TH1_DECL_VIRT(TH3) TATT3D_DECL_VIRT(TH3) TNAMED_DECL_VIRT(TH3) TATTLINE_DECL_VIRT(TH3) TATTFILL_DECL_VIRT(TH3) TATTMARKER_DECL_VIRT(TH3) TOBJECT_DECL_VIRT(TH3) DELETABLE_DECL_VIRT(TH3) TH3_DECL_VIRT(TH3) TH3_DECL_NONVIRT(TH3) TH3_DECL_ACCESSOR(TH3) #ifdef __cplusplus } #endif