Bins1DProfile Class Reference

#include <Bins1DProfile.h>

Inheritance diagram for Bins1DProfile:

Inheritance graph
Bins1DBaseBinsBase
[legend]
Collaboration diagram for Bins1DProfile:

Collaboration graph
Bins1DBaseBinsBaseBinnerAxisRange
[legend]

List of all members.


Detailed Description

The class for the 1D profile binner hierarchy.

Calculates the mean and the standard deviation of data along the y axis in slices along the x axis.

Author:
Xie Fang <xiefang@stanford.edu>

Paul F. Kunz <Paul_Kunz@slac.stanford.edu>

Matan Shacham <matan@slac.stanford.edu>

Oded Wurman <owurman@stanford.edu>

Definition at line 32 of file Bins1DProfile.h.


Public Member Functions

virtual void accumulate (double x, double y, double wt=1.0, double dummy=0.0)
 Accumulate a data point x, y into a bin.
int binNumber (double x)
 Returns the number of the bin in which the x value is situated.
 Bins1DProfile (const Bins1DProfile &binner)
 The copy constructor.
 Bins1DProfile ()
 The default constructor.
virtual double binWidth (hippodraw::Axes::Type axis) const
 Returns the bin width parameter on the specified axis.
double binWidth (int i) const
 Returns the width of each bin.
double calcBinWidth (hippodraw::Axes::Type axis, int parm, bool dragging) const
 Calculates the bin width from dragging slider.
virtual double calcOffset (const std::string &, int parm, bool dragging) const
 Calculates and returns a new range from dragging slider.
BinsBaseclone () const
 The clone function returns an object of its own kind which is a copy of this object at this moment.
virtual NTuplecreateNTuple () const
 Creates an NTuple.
virtual void fillDataSource (DataSource *ntuple) const
 Fills the DataSource.
virtual const
BinnerAxis
getBinnerOn (hippodraw::Axes::Type axis) const
 Returns the BinnerAxis object used by this object.
double getHigh () const
 Returns the lower edge of the last + 1 bin through binner_axis.
virtual int getMinEntries ()
 Get the minimum entries/bin.
virtual int getNumberOfAxes () const
 Returns the number of axes handled by the BinsBase derived class.
virtual int getNumberOfEntries (int i) const
 Returns the number of entries in ith bin.
virtual int getNumberOfEntries () const
 Returns the true number of entries.
virtual double getOffset (hippodraw::Axes::Type axis) const
 Returns the offset parameter on specific axis.
virtual int getOverflow () const
 Returns the overflow.
virtual const RangegetRange (hippodraw::Axes::Type axis)
 Returns range from binner axis.
virtual int getUnderflow () const
 Returns the underflow.
virtual double getZValue (double x, double y) const
 Get the z value at the specified point (x,y).
virtual bool hasEqualWidths () const
 Returns true if all bins have the same width.
bool isDirty ()
 Returns true if the re-accumulation is needed.
bool isEmpty () const
 Returns true if no accumulation has yet occurred, otherwise returns false.
double maxBin ()
 Returns the value of the bin with the largest value.
double minBin ()
 Returns the value of the bin with the smallest value.
const std::string & name () const
 Returns the name of the Bins container object.
virtual int numberOfBins (hippodraw::Axes::Type axis) const
 Returns the number of bins on specified axis.
virtual void reset ()
 Resets the accumulation to zero.
virtual double scaleFactor () const
 Returns the scale factor.
virtual void scaleNumberOfEntries (double number)
 Sets a scale factor on the output so that the number of entries appears to be number.
virtual void setBinContents (const DataSource *ntuple)
virtual void setBinnerOn (BinnerAxis *, hippodraw::Axes::Type axis)
 Sets a new BinnerAxis for the binner to use.
virtual const RangesetBinWidth (hippodraw::Axes::Type axis, double value)
 Sets the bin width parameter on the specified axis.
void setDirty ()
 Sets a flag to indicate that re-binning needs to be done.
virtual void setEntriesScaling (bool on)
 Sets the scaling number of entries on if on is true, otherwise turns if off.
virtual void setMinEntries (int entries)
 Set the minimum entries/bin.
virtual void setNumberOfBins (hippodraw::Axes::Type axis, int num_bins)
 Sets the number of bins on the the specified axis.
virtual void setOffset (hippodraw::Axes::Type axis, double value)
 Sets the offset parameter on the specified axis.
virtual const RangesetRange (hippodraw::Axes::Type axis, const Range &, bool hold_width=true)
 Sets the Range on the specified axis.
virtual ~Bins1DProfile ()
 The destructor.

Protected Member Functions

virtual double getLow (hippodraw::Axes::Type axis) const
 Returns the low value of the bins on the specified axis.
virtual NTupleprepareNTuple (unsigned int rows) const
 Prepares the NTuple.

Protected Attributes

BinnerAxisbinner_axis
 The binner axis object.
bool m_empty
 A flag set to true, when no accumulation has yet occurred, otherwise is set false.
bool m_is_scaling
 A flag which is set true to enable scaling the output.
double m_scale_factor
 The scale factor.
bool m_values_dirty
 A flag to indicate that the objects in m_values are not correct.

Private Member Functions

virtual void resize (int number)
 Resizes the internal arrays for number bins.

Private Attributes

double m_high
 The higher edge of the last bin (the lower edge of the last + 1).
std::vector< double > m_num
 The total number of entries for each bin.
std::vector< double > m_sum
 The sum of the data along the y axis.
std::vector< double > m_sumsq
 The sum of the data squared along the y axis.
std::vector< double > m_sumwtsq
 The sum of weight squared.

Constructor & Destructor Documentation

Bins1DProfile (  ) 

The default constructor.

Definition at line 43 of file Bins1DProfile.cxx.

Referenced by Bins1DProfile::clone().

Bins1DProfile ( const Bins1DProfile binner  ) 

The copy constructor.

Definition at line 48 of file Bins1DProfile.cxx.

~Bins1DProfile (  )  [virtual]

The destructor.

Definition at line 63 of file Bins1DProfile.cxx.


Member Function Documentation

void accumulate ( double  x,
double  y,
double  wt = 1.0,
double  dummy = 0.0 
) [virtual]

Accumulate a data point x, y into a bin.

The remaining arguments are ignored.

Todo:
Add weight argument.

Implements BinsBase.

Definition at line 122 of file Bins1DProfile.cxx.

References Bins1DBase::binNumber(), BinsBase::m_empty, Bins1DProfile::m_num, Bins1DProfile::m_sum, Bins1DProfile::m_sumsq, and Bins1DProfile::m_sumwtsq.

int binNumber ( double  x  )  [inline, inherited]

Returns the number of the bin in which the x value is situated.

Definition at line 137 of file Bins1DBase.h.

References BinnerAxis::axisBinNumber(), and Bins1DBase::binner_axis.

Referenced by Bins1DProfile::accumulate(), and Bins1DHist::accumulate().

double binWidth ( hippodraw::Axes::Type  axis  )  const [virtual, inherited]

Returns the bin width parameter on the specified axis.

If the bins have all the same width, then returns the bin width. If the bin width are determined by some algorithm, then returns a parameter used to calculate the bin widths.

Implements BinsBase.

Definition at line 125 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, BinnerAxis::getConstWid(), and hippodraw::Axes::X.

double binWidth ( int  i  )  const [inherited]

Returns the width of each bin.

Returns the width of the bin with index i. The first bin has index 0 and the last bin has index of number of bins minus 1.

Definition at line 113 of file Bins1DBase.cxx.

References BinnerAxis::axisBinWidth(), and Bins1DBase::binner_axis.

Referenced by Bins1DProfile::fillDataSource(), and Bins1DHist::fillDataSource().

double calcBinWidth ( hippodraw::Axes::Type  axis,
int  parm,
bool  dragging 
) const [virtual, inherited]

Calculates the bin width from dragging slider.

Implements BinsBase.

Definition at line 146 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, BinnerAxis::calcBinWidth(), and hippodraw::Axes::X.

double calcOffset ( const std::string &  axis,
int  parm,
bool  dragging 
) const [virtual, inherited]

Calculates and returns a new range from dragging slider.

Implements BinsBase.

Definition at line 155 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, and BinnerAxis::calcOffset().

BinsBase * clone (  )  const [virtual]

The clone function returns an object of its own kind which is a copy of this object at this moment.

Implements BinsBase.

Definition at line 58 of file Bins1DProfile.cxx.

References Bins1DProfile::Bins1DProfile().

NTuple * createNTuple (  )  const [virtual]

Creates an NTuple.

Derived classes will return an NTuple appropriate to their binned data. They should at least contain the coordinates, error on the coordinates, the value, and error on the value.

Implements BinsBase.

Definition at line 138 of file Bins1DProfile.cxx.

References Bins1DProfile::fillDataSource(), Bins1DProfile::m_sum, Bins1DBase::prepareNTuple(), and num_util::size().

void fillDataSource ( DataSource ntuple  )  const [virtual]

Fills the DataSource.

Clears and fills the DataSource based on the contents of the bins. The resulting DataSource is follows the standard defined in hippodraw::DataPoint2DTuple or hippodraw::DataPoint3DTuple.

Implements BinsBase.

Definition at line 152 of file Bins1DProfile.cxx.

References Bins1DBase::binWidth(), Bins1DBase::getLow(), Bins1DProfile::m_num, Bins1DProfile::m_sum, Bins1DProfile::m_sumsq, Bins1DProfile::m_sumwtsq, Bins1DBase::numberOfBins(), hippodraw::DataPoint3DTuple::SIZE, hippodraw::DataPoint3DTuple::X, hippodraw::Axes::X, hippodraw::DataPoint3DTuple::XERR, hippodraw::DataPoint3DTuple::Y, and hippodraw::DataPoint3DTuple::YERR.

Referenced by Bins1DProfile::createNTuple().

const BinnerAxis * getBinnerOn ( hippodraw::Axes::Type  axis  )  const [virtual, inherited]

Returns the BinnerAxis object used by this object.

Implements BinsBase.

Definition at line 59 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, and hippodraw::Axes::X.

double getHigh (  )  const [inherited]

Returns the lower edge of the last + 1 bin through binner_axis.

Definition at line 85 of file Bins1DBase.cxx.

References BinnerAxis::axisGetHigh(), and Bins1DBase::binner_axis.

double getLow ( hippodraw::Axes::Type  axis  )  const [protected, virtual, inherited]

Returns the low value of the bins on the specified axis.

Implements BinsBase.

Definition at line 78 of file Bins1DBase.cxx.

References BinnerAxis::axisGetLow(), Bins1DBase::binner_axis, and hippodraw::Axes::X.

Referenced by Bins1DProfile::fillDataSource(), and Bins1DHist::fillDataSource().

int getMinEntries (  )  [virtual, inherited]

Get the minimum entries/bin.

Reimplemented in Bins1DHist.

Definition at line 109 of file BinsBase.cxx.

int getNumberOfAxes (  )  const [virtual, inherited]

Returns the number of axes handled by the BinsBase derived class.

Implements BinsBase.

Definition at line 53 of file Bins1DBase.cxx.

int getNumberOfEntries ( int  i  )  const [virtual]

Returns the number of entries in ith bin.

Returns the sum of the weight parameter of the accumulate member function. Indexing is such that first proper bin (i.e. one which is NOT underflow ) is numbered 0.

Implements Bins1DBase.

Definition at line 105 of file Bins1DProfile.cxx.

References Bins1DProfile::m_num.

int getNumberOfEntries (  )  const [virtual]

Returns the true number of entries.

Returns the sum of the weight parameter of the accumulate member function.

Implements BinsBase.

Definition at line 99 of file Bins1DProfile.cxx.

References Bins1DProfile::m_num.

double getOffset ( hippodraw::Axes::Type  axis  )  const [virtual, inherited]

Returns the offset parameter on specific axis.

Implements BinsBase.

Definition at line 165 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, BinnerAxis::getOffset(), and hippodraw::Axes::X.

int getOverflow (  )  const [virtual]

Returns the overflow.

Implements BinsBase.

Definition at line 116 of file Bins1DProfile.cxx.

const Range & getRange ( hippodraw::Axes::Type  axis  )  [virtual, inherited]

Returns range from binner axis.

Implements BinsBase.

Definition at line 195 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, BinnerAxis::getRange(), and hippodraw::Axes::X.

int getUnderflow (  )  const [virtual]

Returns the underflow.

Implements BinsBase.

Definition at line 111 of file Bins1DProfile.cxx.

double getZValue ( double  x,
double  y 
) const [virtual, inherited]

Get the z value at the specified point (x,y).

Reimplemented in Bins2DHist, and Bins2DProfile.

Definition at line 74 of file BinsBase.cxx.

Referenced by BinningProjector::getZValue().

bool hasEqualWidths (  )  const [virtual, inherited]

Returns true if all bins have the same width.

See also:
BinnerAxis::hasEqualWidths.

Implements BinsBase.

Definition at line 107 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, and BinnerAxis::hasEqualWidths().

bool isDirty (  )  [inherited]

Returns true if the re-accumulation is needed.

Definition at line 59 of file BinsBase.cxx.

References BinsBase::m_values_dirty.

bool isEmpty (  )  const [inherited]

Returns true if no accumulation has yet occurred, otherwise returns false.

Definition at line 81 of file BinsBase.cxx.

References BinsBase::m_empty.

double maxBin (  ) 

Returns the value of the bin with the largest value.

Definition at line 72 of file Bins1DProfile.cxx.

References Bins1DProfile::m_sum.

double minBin (  ) 

Returns the value of the bin with the smallest value.

Definition at line 67 of file Bins1DProfile.cxx.

References Bins1DProfile::m_sum.

const string & name (  )  const [inherited]

Returns the name of the Bins container object.

Definition at line 54 of file BinsBase.cxx.

References BinsBase::m_name.

Referenced by BinsBaseXML::createElement().

int numberOfBins ( hippodraw::Axes::Type  axis  )  const [virtual, inherited]

Returns the number of bins on specified axis.

If a BinnerAxis object does not exist, returns 0.

Implements BinsBase.

Definition at line 90 of file Bins1DBase.cxx.

References BinnerAxis::axisNumberOfBins(), Bins1DBase::binner_axis, and hippodraw::Axes::X.

Referenced by Bins1DProfile::fillDataSource(), and Bins1DBase::resize().

NTuple * prepareNTuple ( unsigned int  rows  )  const [protected, virtual, inherited]

Prepares the NTuple.

Creates and returns the NTuple that will be filled from the binner's values. The NTuple will have rows rows and 4 columns.

Implements BinsBase.

Definition at line 212 of file Bins1DBase.cxx.

References hippodraw::DataPoint2DTuple::ERROR(), NTuple::setLabels(), and hippodraw::DataPoint2DTuple::WIDTH().

Referenced by Bins1DProfile::createNTuple(), and Bins1DHist::createNTuple().

void reset (  )  [virtual]

Resets the accumulation to zero.

Implements BinsBase.

Definition at line 89 of file Bins1DProfile.cxx.

References BinsBase::m_empty, Bins1DProfile::m_num, Bins1DProfile::m_sum, Bins1DProfile::m_sumsq, and Bins1DProfile::m_sumwtsq.

Referenced by Bins1DProfile::resize().

void resize ( int  number  )  [private, virtual]

Resizes the internal arrays for number bins.

Implements Bins1DBase.

Definition at line 77 of file Bins1DProfile.cxx.

References Bins1DProfile::m_num, Bins1DProfile::m_sum, Bins1DProfile::m_sumsq, Bins1DProfile::m_sumwtsq, BinsBase::m_values_dirty, and Bins1DProfile::reset().

double scaleFactor (  )  const [virtual, inherited]

Returns the scale factor.

Used to convert the projected values to number of entries in a bin.

Reimplemented from BinsBase.

Definition at line 119 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, and BinnerAxis::scaleFactorWid().

void scaleNumberOfEntries ( double  number  )  [virtual, inherited]

Sets a scale factor on the output so that the number of entries appears to be number.

This feature might be used, for example, to compare two histograms that have different number of entires by normalizing one to the other.

Definition at line 88 of file BinsBase.cxx.

References BinsBase::m_scale_factor.

void setBinContents ( const DataSource ntuple  )  [virtual]

Todo:
Needs implementation when static projectors are implemented.

Implements BinsBase.

Definition at line 214 of file Bins1DProfile.cxx.

void setBinnerOn ( BinnerAxis binner,
hippodraw::Axes::Type  axis 
) [virtual, inherited]

Sets a new BinnerAxis for the binner to use.

The old one, if any, will be destroyed.

Implements BinsBase.

Definition at line 66 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, BinsBase::m_values_dirty, Bins1DBase::resize(), and hippodraw::Axes::X.

const Range & setBinWidth ( hippodraw::Axes::Type  axis,
double  value 
) [virtual, inherited]

Sets the bin width parameter on the specified axis.

Implements BinsBase.

Definition at line 133 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, Bins1DBase::resize(), BinnerAxis::setBinWidth(), and hippodraw::Axes::X.

void setDirty (  )  [inherited]

Sets a flag to indicate that re-binning needs to be done.

Definition at line 64 of file BinsBase.cxx.

References BinsBase::m_values_dirty.

Referenced by ProfileProjector::changedNTuple(), Profile2DProjector::changedNTuple(), DyHist2DProjector::changedNTuple(), and DyHist1DProjector::changedNTuple().

void setEntriesScaling ( bool  on  )  [virtual, inherited]

Sets the scaling number of entries on if on is true, otherwise turns if off.

Definition at line 95 of file BinsBase.cxx.

References BinsBase::m_is_scaling.

void setMinEntries ( int  entries  )  [virtual, inherited]

Set the minimum entries/bin.

Reimplemented in Bins1DHist.

Definition at line 103 of file BinsBase.cxx.

void setNumberOfBins ( hippodraw::Axes::Type  axis,
int  number 
) [virtual, inherited]

Sets the number of bins on the the specified axis.

Implements BinsBase.

Definition at line 97 of file Bins1DBase.cxx.

References BinnerAxis::axisSetNumberOfBins(), Bins1DBase::binner_axis, Bins1DBase::resize(), and hippodraw::Axes::X.

void setOffset ( hippodraw::Axes::Type  axis,
double  value 
) [virtual, inherited]

Sets the offset parameter on the specified axis.

Implements BinsBase.

Definition at line 174 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, BinnerAxis::setOffset(), and hippodraw::Axes::X.

const Range & setRange ( hippodraw::Axes::Type  axis,
const Range ,
bool  hold_width = true 
) [virtual, inherited]

Sets the Range on the specified axis.

If hold_width is true, the bin width parameter will be held constant, otherwise it is adjusted to keep the same number of bins for the new range.

Implements BinsBase.

Definition at line 183 of file Bins1DBase.cxx.

References Bins1DBase::binner_axis, Bins1DBase::resize(), BinnerAxis::setRange(), and hippodraw::Axes::X.


Member Data Documentation

BinnerAxis* binner_axis [protected, inherited]

The binner axis object.

Definition at line 40 of file Bins1DBase.h.

Referenced by Bins1DBase::binNumber(), Bins1DBase::Bins1DBase(), Bins1DBase::binWidth(), Bins1DBase::calcBinWidth(), Bins1DBase::calcOffset(), Bins1DBase::getBinnerOn(), Bins1DBase::getHigh(), Bins1DBase::getLow(), Bins1DBase::getOffset(), Bins1DBase::getRange(), Bins1DBase::hasEqualWidths(), Bins1DBase::numberOfBins(), Bins1DBase::scaleFactor(), Bins1DBase::setBinnerOn(), Bins1DBase::setBinWidth(), Bins1DBase::setNumberOfBins(), Bins1DBase::setOffset(), Bins1DBase::setRange(), and Bins1DBase::~Bins1DBase().

bool m_empty [protected, inherited]

A flag set to true, when no accumulation has yet occurred, otherwise is set false.

Definition at line 58 of file BinsBase.h.

Referenced by Bins2DProfile::accumulate(), Bins2DHist::accumulate(), Bins1DProfile::accumulate(), Bins1DHist::accumulate(), BinsBase::isEmpty(), Bins2DProfile::reset(), Bins2DHist::reset(), Bins1DProfile::reset(), and Bins1DHist::reset().

double m_high [private]

The higher edge of the last bin (the lower edge of the last + 1).

Definition at line 55 of file Bins1DProfile.h.

bool m_is_scaling [protected, inherited]

A flag which is set true to enable scaling the output.

Definition at line 50 of file BinsBase.h.

Referenced by Bins2DHist::fillDataSource(), Bins1DHist::fillDataSource(), and BinsBase::setEntriesScaling().

std::vector< double > m_num [private]

The total number of entries for each bin.

Definition at line 48 of file Bins1DProfile.h.

Referenced by Bins1DProfile::accumulate(), Bins1DProfile::fillDataSource(), Bins1DProfile::getNumberOfEntries(), Bins1DProfile::reset(), and Bins1DProfile::resize().

double m_scale_factor [protected, inherited]

The scale factor.

This data member is used to scale the output so that the total number of entries has this value.

Definition at line 46 of file BinsBase.h.

Referenced by Bins2DHist::fillDataSource(), Bins1DHist::fillDataSource(), and BinsBase::scaleNumberOfEntries().

std::vector<double> m_sum [private]

The sum of the data along the y axis.

Range of index is 1 to m_num_bins. 0 refers to underflow while m_num_bins+1 refers to overflow

Definition at line 39 of file Bins1DProfile.h.

Referenced by Bins1DProfile::accumulate(), Bins1DProfile::createNTuple(), Bins1DProfile::fillDataSource(), Bins1DProfile::maxBin(), Bins1DProfile::minBin(), Bins1DProfile::reset(), and Bins1DProfile::resize().

std::vector<double> m_sumsq [private]

The sum of the data squared along the y axis.

This quantity is used to calculate the variance with only one pass through the data. Range of index is 1 to m_num_bins.

Definition at line 44 of file Bins1DProfile.h.

Referenced by Bins1DProfile::accumulate(), Bins1DProfile::fillDataSource(), Bins1DProfile::reset(), and Bins1DProfile::resize().

std::vector< double > m_sumwtsq [private]

The sum of weight squared.

Definition at line 52 of file Bins1DProfile.h.

Referenced by Bins1DProfile::accumulate(), Bins1DProfile::fillDataSource(), Bins1DProfile::reset(), and Bins1DProfile::resize().

bool m_values_dirty [mutable, protected, inherited]

A flag to indicate that the objects in m_values are not correct.

Definition at line 53 of file BinsBase.h.

Referenced by Bins1DBase::Bins1DBase(), Bins2DBase::Bins2DBase(), BinsBase::isDirty(), Bins1DHist::reset(), Bins2DBase::resize(), Bins1DProfile::resize(), Bins1DHist::resize(), Bins2DBase::setBinnerOn(), Bins1DBase::setBinnerOn(), Bins2DBase::setBinWidth(), BinsBase::setDirty(), and Bins2DBase::setOffset().


The documentation for this class was generated from the following files:
Generated for HippoDraw Class Library by doxygen