LSSTApplications  16.0-11-g09ed895+2,16.0-11-g12e47bd,16.0-11-g9bb73b2+6,16.0-12-g5c924a4+6,16.0-14-g9a974b3+1,16.0-15-g1417920+1,16.0-15-gdd5ca33+1,16.0-16-gf0259e2,16.0-17-g31abd91+7,16.0-17-g7d7456e+7,16.0-17-ga3d2e9f+13,16.0-18-ga4d4bcb+1,16.0-18-gd06566c+1,16.0-2-g0febb12+21,16.0-2-g9d5294e+69,16.0-2-ga8830df+6,16.0-20-g21842373+7,16.0-24-g3eae5ec,16.0-28-gfc9ea6c+4,16.0-29-ge8801f9,16.0-3-ge00e371+34,16.0-4-g18f3627+13,16.0-4-g5f3a788+20,16.0-4-ga3eb747+10,16.0-4-gabf74b7+29,16.0-4-gb13d127+6,16.0-49-g42e581f7+6,16.0-5-g27fb78a+7,16.0-5-g6a53317+34,16.0-5-gb3f8a4b+87,16.0-6-g9321be7+4,16.0-6-gcbc7b31+42,16.0-6-gf49912c+29,16.0-7-gd2eeba5+51,16.0-71-ge89f8615e,16.0-8-g21fd5fe+29,16.0-8-g3a9f023+20,16.0-8-g4734f7a+1,16.0-8-g5858431+3,16.0-9-gf5c1f43+8,master-gd73dc1d098+1,w.2019.01
LSSTDataManagementBasePackage
Public Member Functions | List of all members
lsst::jointcal::Histo2d Class Reference

#include <Histo2d.h>

Public Member Functions

 Histo2d ()
 
 Histo2d (int nx, float minx, float maxx, int ny, float miny, float maxy)
 
 Histo2d (const Histo2d &other)
 
void fill (float x, float y, float weight=1.)
 
double maxBin (double &x, double &y) const
 
void binWidth (double &Hdx, double &Hdy) const
 
double binContent (double x, double y) const
 
void zeroBin (double x, double y)
 
 ~Histo2d ()
 

Detailed Description

Definition at line 31 of file Histo2d.h.

Constructor & Destructor Documentation

◆ Histo2d() [1/3]

lsst::jointcal::Histo2d::Histo2d ( )
inline

Definition at line 33 of file Histo2d.h.

33 : data() {}
char * data
Definition: BaseTable.cc:205

◆ Histo2d() [2/3]

lsst::jointcal::Histo2d::Histo2d ( int  nx,
float  minx,
float  maxx,
int  ny,
float  miny,
float  maxy 
)

Definition at line 39 of file Histo2d.cc.

39  {
40  nx = nnx;
41  ny = nny;
42  minx = mminx;
43  miny = mminy;
44  if (mmaxx != mminx)
45  scalex = nx / (mmaxx - mminx);
46  else {
47  LOGL_WARN(_log, "Histo2d: minx = maxx requested");
48  scalex = 1.0;
49  }
50  if (mmaxy != mminy)
51  scaley = ny / (mmaxy - mminy);
52  else {
53  LOGL_WARN(_log, "Histo2d: maxy = miny requested");
54  scaley = 1.0;
55  }
56  data.reset(new float[nx * ny]);
57  memset(data.get(), 0, nx * ny * sizeof(float));
58 }
char * data
Definition: BaseTable.cc:205
T memset(T... args)
#define LOGL_WARN(logger, message...)
Log a warn-level message using a varargs/printf style interface.
Definition: Log.h:545

◆ Histo2d() [3/3]

lsst::jointcal::Histo2d::Histo2d ( const Histo2d other)

Definition at line 60 of file Histo2d.cc.

60  {
61  memcpy(this, &other, sizeof(Histo2d));
62  data.reset(new float[nx * ny]);
63  memcpy((data).get(), other.data.get(), nx * ny * sizeof(float));
64 }
char * data
Definition: BaseTable.cc:205
T memcpy(T... args)
ItemVariant const * other
Definition: Schema.cc:56

◆ ~Histo2d()

lsst::jointcal::Histo2d::~Histo2d ( )
inline

Definition at line 51 of file Histo2d.h.

51 {}

Member Function Documentation

◆ binContent()

double lsst::jointcal::Histo2d::binContent ( double  x,
double  y 
) const

Definition at line 101 of file Histo2d.cc.

101  {
102  int ix, iy;
103  if (indices(x, y, ix, iy)) return data[iy + ny * ix];
104  LOGL_WARN(_log, "Histo2D::binContent outside limits requested");
105  return -1e30;
106 }
char * data
Definition: BaseTable.cc:205
int y
Definition: SpanSet.cc:49
#define LOGL_WARN(logger, message...)
Log a warn-level message using a varargs/printf style interface.
Definition: Log.h:545
double x

◆ binWidth()

void lsst::jointcal::Histo2d::binWidth ( double &  Hdx,
double &  Hdy 
) const
inline

Definition at line 42 of file Histo2d.h.

42  {
43  Hdx = 1. / scalex;
44  Hdy = 1. / scaley;
45  }

◆ fill()

void lsst::jointcal::Histo2d::fill ( float  x,
float  y,
float  weight = 1. 
)

Definition at line 73 of file Histo2d.cc.

73  {
74  int ix, iy;
75  if (indices(x, y, ix, iy)) data[iy + ny * ix] += weight;
76 }
char * data
Definition: BaseTable.cc:205
int y
Definition: SpanSet.cc:49
double x
afw::table::Key< double > weight

◆ maxBin()

double lsst::jointcal::Histo2d::maxBin ( double &  x,
double &  y 
) const

Definition at line 78 of file Histo2d.cc.

78  {
79  float *p, *pend;
80  int imax = 0;
81  float valmax = -1e30;
82 
83  for (p = data.get(), pend = p + nx * ny; pend - p; p++) {
84  if (*p > valmax) {
85  valmax = *p;
86  imax = p - (data.get());
87  }
88  }
89  int ix = imax / ny;
90  int iy = imax - ix * ny;
91  x = minx + ((float)ix + 0.5) / scalex;
92  y = miny + ((float)iy + 0.5) / scaley;
93  return valmax;
94 }
char * data
Definition: BaseTable.cc:205
int y
Definition: SpanSet.cc:49
double x

◆ zeroBin()

void lsst::jointcal::Histo2d::zeroBin ( double  x,
double  y 
)

Definition at line 96 of file Histo2d.cc.

96  {
97  int ix, iy;
98  if (indices(x, y, ix, iy)) data[iy + ny * ix] = 0;
99 }
char * data
Definition: BaseTable.cc:205
int y
Definition: SpanSet.cc:49
double x

The documentation for this class was generated from the following files: