LSST Applications  21.0.0+04719a4bac,21.0.0-1-ga51b5d4+f5e6047307,21.0.0-11-g2b59f77+a9c1acf22d,21.0.0-11-ga42c5b2+86977b0b17,21.0.0-12-gf4ce030+76814010d2,21.0.0-13-g1721dae+760e7a6536,21.0.0-13-g3a573fe+768d78a30a,21.0.0-15-g5a7caf0+f21cbc5713,21.0.0-16-g0fb55c1+b60e2d390c,21.0.0-19-g4cded4ca+71a93a33c0,21.0.0-2-g103fe59+bb20972958,21.0.0-2-g45278ab+04719a4bac,21.0.0-2-g5242d73+3ad5d60fb1,21.0.0-2-g7f82c8f+8babb168e8,21.0.0-2-g8f08a60+06509c8b61,21.0.0-2-g8faa9b5+616205b9df,21.0.0-2-ga326454+8babb168e8,21.0.0-2-gde069b7+5e4aea9c2f,21.0.0-2-gecfae73+1d3a86e577,21.0.0-2-gfc62afb+3ad5d60fb1,21.0.0-25-g1d57be3cd+e73869a214,21.0.0-3-g357aad2+ed88757d29,21.0.0-3-g4a4ce7f+3ad5d60fb1,21.0.0-3-g4be5c26+3ad5d60fb1,21.0.0-3-g65f322c+e0b24896a3,21.0.0-3-g7d9da8d+616205b9df,21.0.0-3-ge02ed75+a9c1acf22d,21.0.0-4-g591bb35+a9c1acf22d,21.0.0-4-g65b4814+b60e2d390c,21.0.0-4-gccdca77+0de219a2bc,21.0.0-4-ge8a399c+6c55c39e83,21.0.0-5-gd00fb1e+05fce91b99,21.0.0-6-gc675373+3ad5d60fb1,21.0.0-64-g1122c245+4fb2b8f86e,21.0.0-7-g04766d7+cd19d05db2,21.0.0-7-gdf92d54+04719a4bac,21.0.0-8-g5674e7b+d1bd76f71f,master-gac4afde19b+a9c1acf22d,w.2021.13
LSST Data Management Base Package
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 }
#define LOGL_WARN(logger, message...)
Log a warn-level message using a varargs/printf style interface.
Definition: Log.h:536
T get(T... args)
T memset(T... args)
T reset(T... args)

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

◆ ~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 }
double x
int y
Definition: SpanSet.cc:49

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

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