33 static unsigned valueToBin(
const double&
x,
const float*varBinnings,
34 const double& invDelta,
35 const double&
xmin,
const double&
xmax,
36 unsigned nbinsplus1 );
38 const double& invDelta,
const double&
xmin,
41 static unsigned internal_bin(
unsigned binx,
unsigned biny,
unsigned nbinsxPlus2);
42 static void unpack_internal_bin(
unsigned internalbin,
unsigned& binx,
unsigned& biny,
unsigned nbinsxPlus2);
49 const float*varBinnings,
50 unsigned nbinsplus1 );
61 const double& invDelta,
const double&
xmin,
const double&
xmax,
62 unsigned nbinsplus1 ) {
63 #ifdef LW_STRICT_ROOT_BEHAVIOUR
70 std::cout<<
"LWHisto ERROR: Saw NaN in input axis position"<<std::endl;
86 const double& invDelta,
const double&
xmin,
90 return xmin + (
bin-0.5)/invDelta;
92 return 0.5*(varBinnings[
bin-1] + varBinnings[
bin]);
97 unsigned nbinsxPlus2 )
100 assert(binx<nbinsxPlus2);
101 return biny * (nbinsxPlus2) + binx;
107 unsigned nbinsxPlus2 )
109 binx = internalbin % nbinsxPlus2;
110 biny = (internalbin-binx) / nbinsxPlus2;
111 assert(
internal_bin(binx,biny,nbinsxPlus2)==internalbin);