LSSTApplications  19.0.0-14-gb0260a2+72efe9b372,20.0.0+7927753e06,20.0.0+8829bf0056,20.0.0+995114c5d2,20.0.0+b6f4b2abd1,20.0.0+bddc4f4cbe,20.0.0-1-g253301a+8829bf0056,20.0.0-1-g2b7511a+0d71a2d77f,20.0.0-1-g5b95a8c+7461dd0434,20.0.0-12-g321c96ea+23efe4bbff,20.0.0-16-gfab17e72e+fdf35455f6,20.0.0-2-g0070d88+ba3ffc8f0b,20.0.0-2-g4dae9ad+ee58a624b3,20.0.0-2-g61b8584+5d3db074ba,20.0.0-2-gb780d76+d529cf1a41,20.0.0-2-ged6426c+226a441f5f,20.0.0-2-gf072044+8829bf0056,20.0.0-2-gf1f7952+ee58a624b3,20.0.0-20-geae50cf+e37fec0aee,20.0.0-25-g3dcad98+544a109665,20.0.0-25-g5eafb0f+ee58a624b3,20.0.0-27-g64178ef+f1f297b00a,20.0.0-3-g4cc78c6+e0676b0dc8,20.0.0-3-g8f21e14+4fd2c12c9a,20.0.0-3-gbd60e8c+187b78b4b8,20.0.0-3-gbecbe05+48431fa087,20.0.0-38-ge4adf513+a12e1f8e37,20.0.0-4-g97dc21a+544a109665,20.0.0-4-gb4befbc+087873070b,20.0.0-4-gf910f65+5d3db074ba,20.0.0-5-gdfe0fee+199202a608,20.0.0-5-gfbfe500+d529cf1a41,20.0.0-6-g64f541c+d529cf1a41,20.0.0-6-g9a5b7a1+a1cd37312e,20.0.0-68-ga3f3dda+5fca18c6a4,20.0.0-9-g4aef684+e18322736b,w.2020.45
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() {}

◆ 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 }

◆ 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 }

◆ ~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 }

◆ 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 }

◆ 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 }

◆ 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 }

The documentation for this class was generated from the following files:
y
int y
Definition: SpanSet.cc:49
lsst::jointcal::Histo2d::Histo2d
Histo2d()
Definition: Histo2d.h:33
LOGL_WARN
#define LOGL_WARN(logger, message...)
Definition: Log.h:536
data
char * data
Definition: BaseRecord.cc:62
x
double x
Definition: ChebyshevBoundedField.cc:277
other
ItemVariant const * other
Definition: Schema.cc:56
weight
afw::table::Key< double > weight
Definition: CoaddBoundedField.cc:166
std::memcpy
T memcpy(T... args)
std::memset
T memset(T... args)