CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends
npstat::DualHistoAxis Class Reference

#include <DualHistoAxis.h>

Public Member Functions

double binCenter (const int binNum) const
 
Interval< double > binInterval (const int binNum) const
 
int binNumber (const double x) const
 
double binWidth (const int binNum) const
 
unsigned closestValidBin (const double x) const
 
 DualHistoAxis (const NUHistoAxis &a)
 
 DualHistoAxis (const HistoAxis &u)
 
 DualHistoAxis (const std::vector< double > &binEdges, const char *label=0)
 
 DualHistoAxis (unsigned nBins, double min, double max, const char *label=0)
 
double fltBinNumber (const double x, const bool mapLeftEdgeTo0=true) const
 
Interval< double > interval () const
 
bool isClose (const DualHistoAxis &r, const double tol) const
 
bool isUniform () const
 
const std::string & label () const
 
double leftBinEdge (const int binNum) const
 
double length () const
 
double max () const
 
double min () const
 
unsigned nBins () const
 
bool operator!= (const DualHistoAxis &r) const
 
bool operator== (const DualHistoAxis &r) const
 
DualHistoAxis rebin (const unsigned newBins) const
 
double rightBinEdge (const int binNum) const
 
void setLabel (const char *newlabel)
 
const NUHistoAxisgetNUHistoAxis () const
 
const HistoAxisgetHistoAxis () const
 
gs::ClassId classId () const
 
bool write (std::ostream &of) const
 

Static Public Member Functions

static const char * classname ()
 
static DualHistoAxisread (const gs::ClassId &id, std::istream &in)
 
static unsigned version ()
 

Private Member Functions

 DualHistoAxis ()
 
unsigned overflowIndex (const double x, unsigned *binNumber) const
 

Static Private Member Functions

static std::vector< double > dummy_vec ()
 

Private Attributes

NUHistoAxis a_
 
HistoAxis u_
 
bool uniform_
 

Friends

template<typename Numeric , class Axis >
class HistoND
 

Detailed Description

Histogram axis which can be either uniform or non-uniform. Will work a little bit slower than either HistoAxis or NUHistoAxis, but can be used in place of either one of them.

Definition at line 23 of file DualHistoAxis.h.

Constructor & Destructor Documentation

npstat::DualHistoAxis::DualHistoAxis ( const NUHistoAxis a)
inline

Definition at line 27 of file DualHistoAxis.h.

npstat::DualHistoAxis::DualHistoAxis ( const HistoAxis u)
inline

Definition at line 30 of file DualHistoAxis.h.

npstat::DualHistoAxis::DualHistoAxis ( const std::vector< double > &  binEdges,
const char *  label = 0 
)
inline

Definition at line 33 of file DualHistoAxis.h.

npstat::DualHistoAxis::DualHistoAxis ( unsigned  nBins,
double  min,
double  max,
const char *  label = 0 
)
inline

Definition at line 37 of file DualHistoAxis.h.

npstat::DualHistoAxis::DualHistoAxis ( )
inlineprivate

Definition at line 165 of file DualHistoAxis.h.

Referenced by read().

Member Function Documentation

double npstat::DualHistoAxis::binCenter ( const int  binNum) const
inline

Definition at line 65 of file DualHistoAxis.h.

Interval<double> npstat::DualHistoAxis::binInterval ( const int  binNum) const
inline

Definition at line 74 of file DualHistoAxis.h.

int npstat::DualHistoAxis::binNumber ( const double  x) const
inline

This method returns arbitrary integer bin number. Possible output depends on whether the axis is uniform or not.

Definition at line 98 of file DualHistoAxis.h.

double npstat::DualHistoAxis::binWidth ( const int  binNum) const
inline

Definition at line 59 of file DualHistoAxis.h.

gs::ClassId npstat::DualHistoAxis::classId ( ) const
inline

Definition at line 136 of file DualHistoAxis.h.

static const char* npstat::DualHistoAxis::classname ( )
inlinestatic

Definition at line 140 of file DualHistoAxis.h.

unsigned npstat::DualHistoAxis::closestValidBin ( const double  x) const
inline

Return the closest valid bin number (above 0 and below nBins() )

Definition at line 113 of file DualHistoAxis.h.

static std::vector<double> npstat::DualHistoAxis::dummy_vec ( )
inlinestaticprivate

Definition at line 158 of file DualHistoAxis.h.

double npstat::DualHistoAxis::fltBinNumber ( const double  x,
const bool  mapLeftEdgeTo0 = true 
) const
inline

Floating point bin number given the coordinate. Useful for interpolation methods and such.

Definition at line 105 of file DualHistoAxis.h.

const HistoAxis* npstat::DualHistoAxis::getHistoAxis ( ) const
inline

Definition at line 86 of file DualHistoAxis.h.

const NUHistoAxis* npstat::DualHistoAxis::getNUHistoAxis ( ) const
inline

Return a pointer to the underlying axis. This will be a null pointer if the axis does not correspond to the constructed type.

Definition at line 83 of file DualHistoAxis.h.

Interval<double> npstat::DualHistoAxis::interval ( ) const
inline

Definition at line 50 of file DualHistoAxis.h.

bool npstat::DualHistoAxis::isClose ( const DualHistoAxis r,
const double  tol 
) const
inline

Comparison within given tolerance

Definition at line 123 of file DualHistoAxis.h.

bool npstat::DualHistoAxis::isUniform ( ) const
inline

Definition at line 42 of file DualHistoAxis.h.

const std::string& npstat::DualHistoAxis::label ( ) const
inline

Definition at line 62 of file DualHistoAxis.h.

double npstat::DualHistoAxis::leftBinEdge ( const int  binNum) const
inline

Definition at line 68 of file DualHistoAxis.h.

double npstat::DualHistoAxis::length ( ) const
inline

Definition at line 53 of file DualHistoAxis.h.

double npstat::DualHistoAxis::max ( ) const
inline

Definition at line 47 of file DualHistoAxis.h.

double npstat::DualHistoAxis::min ( ) const
inline

Definition at line 44 of file DualHistoAxis.h.

unsigned npstat::DualHistoAxis::nBins ( ) const
inline

Definition at line 56 of file DualHistoAxis.h.

bool npstat::DualHistoAxis::operator!= ( const DualHistoAxis r) const
inline

Definition at line 119 of file DualHistoAxis.h.

bool npstat::DualHistoAxis::operator== ( const DualHistoAxis r) const
inline

Definition at line 116 of file DualHistoAxis.h.

unsigned npstat::DualHistoAxis::overflowIndex ( const double  x,
unsigned *  binNumber 
) const
inlineprivate

Definition at line 151 of file DualHistoAxis.h.

DualHistoAxis * npstat::DualHistoAxis::read ( const gs::ClassId &  id,
std::istream &  in 
)
static

Definition at line 18 of file DualHistoAxis.cc.

References EnergyCorrector::c, DualHistoAxis(), npstat::NUHistoAxis::read(), and npstat::HistoAxis::read().

19  {
20  static const gs::ClassId current(gs::ClassId::makeId<DualHistoAxis>());
21  current.ensureSameId(id);
22 
23  unsigned char c;
24  gs::read_pod(in, &c);
25  gs::ClassId clid(in, 1);
26  if (in.fail())
27  throw gs::IOReadFailure("In npstat::DualHistoAxis::read: "
28  "input stream failure");
29  if (c)
30  {
31  CPP11_auto_ptr<HistoAxis> axis(HistoAxis::read(clid, in));
32  return new DualHistoAxis(*axis);
33  }
34  else
35  {
36  CPP11_auto_ptr<NUHistoAxis> axis(NUHistoAxis::read(clid, in));
37  return new DualHistoAxis(*axis);
38  }
39  }
static HistoAxis * read(const gs::ClassId &id, std::istream &in)
Definition: HistoAxis.cc:152
static NUHistoAxis * read(const gs::ClassId &id, std::istream &in)
Definition: NUHistoAxis.cc:171
DualHistoAxis npstat::DualHistoAxis::rebin ( const unsigned  newBins) const
inline

Return uniformly rebinned axis

Definition at line 131 of file DualHistoAxis.h.

double npstat::DualHistoAxis::rightBinEdge ( const int  binNum) const
inline

Definition at line 71 of file DualHistoAxis.h.

void npstat::DualHistoAxis::setLabel ( const char *  newlabel)
inline

Modify the axis label

Definition at line 91 of file DualHistoAxis.h.

static unsigned npstat::DualHistoAxis::version ( )
inlinestatic

Definition at line 141 of file DualHistoAxis.h.

bool npstat::DualHistoAxis::write ( std::ostream &  of) const

Definition at line 8 of file DualHistoAxis.cc.

References a_, EnergyCorrector::c, npstat::NUHistoAxis::classId(), npstat::HistoAxis::classId(), u_, uniform_, npstat::NUHistoAxis::write(), and npstat::HistoAxis::write().

9  {
10  unsigned char c = uniform_;
11  gs::write_pod(of, c);
12  if (uniform_)
13  return !of.fail() && u_.classId().write(of) && u_.write(of);
14  else
15  return !of.fail() && a_.classId().write(of) && a_.write(of);
16  }
bool write(std::ostream &of) const
Definition: NUHistoAxis.cc:162
bool write(std::ostream &of) const
Definition: HistoAxis.cc:143
gs::ClassId classId() const
Definition: HistoAxis.h:122
gs::ClassId classId() const
Definition: NUHistoAxis.h:101

Friends And Related Function Documentation

template<typename Numeric , class Axis >
friend class HistoND
friend

Definition at line 149 of file DualHistoAxis.h.

Member Data Documentation

NUHistoAxis npstat::DualHistoAxis::a_
private

Definition at line 145 of file DualHistoAxis.h.

Referenced by write().

HistoAxis npstat::DualHistoAxis::u_
private

Definition at line 146 of file DualHistoAxis.h.

Referenced by write().

bool npstat::DualHistoAxis::uniform_
private

Definition at line 147 of file DualHistoAxis.h.

Referenced by write().