LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.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: BaseRecord.cc:62

◆ 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 }
T memset(T... args)
char * data
Definition: BaseRecord.cc:62
#define LOGL_WARN(logger, message...)
Log a warn-level message using a varargs/printf style interface.
Definition: Log.h:536

◆ 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 }
ItemVariant const * other
Definition: Schema.cc:56
T memcpy(T... args)
char * data
Definition: BaseRecord.cc:62

◆ ~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 }
int y
Definition: SpanSet.cc:49
char * data
Definition: BaseRecord.cc:62
#define LOGL_WARN(logger, message...)
Log a warn-level message using a varargs/printf style interface.
Definition: Log.h:536
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 }
int y
Definition: SpanSet.cc:49
char * data
Definition: BaseRecord.cc:62
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 }
int y
Definition: SpanSet.cc:49
char * data
Definition: BaseRecord.cc:62
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 }
int y
Definition: SpanSet.cc:49
char * data
Definition: BaseRecord.cc:62
double x

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