HyperPlot  v1
Bin and visualise multidimensional datasets
Public Member Functions | Static Public Member Functions | Protected Types | Protected Attributes | Static Protected Attributes | Private Member Functions | List of all members
HyperBinningMaker Class Referenceabstract

Detailed Description

HyperBinningMaker is used to adaptively create a HyperVolumeBinning from a HyperPointSet. This class just contains a suite of useful tools for splitting bins, and creating the bin hierarchy described in HyperVolumeBinning. Specific types of adaptive binning inheret from this class, and are in HyperBinningMakers.h

It is also possible to give it a 'shadow HyperPointSet' - this is useful if one is binning the ratio of two HyperPointSet's and require a minium number of events in both the numerator and denominator.

Definition at line 43 of file HyperBinningMaker.h.

#include <HyperBinningMaker.h>

Inheritance diagram for HyperBinningMaker:
HyperBinningMakerLikelihood HyperBinningMakerMint HyperBinningMakerMintRandomise HyperBinningMakerMintSmart HyperBinningMakerMultiSmart HyperBinningMakerPhaseBinning HyperBinningMakerSmart HyperBinningMakerSmartLikelihood HyperBinningMakerSmartRandomise

Public Member Functions

 HyperBinningMaker (const HyperCuboid &binningRange, const HyperPointSet &data)
 
virtual void makeBinning ()=0
 
void setBinningDimensions (std::vector< int > dims)
 
void addShadowHyperPointSet (const HyperPointSet &data)
 
void setSeed (int seed)
 
void useSnapToGrid (bool val)
 
void setGridMultiplier (HyperPoint &multipliers)
 
void setGridMultiplier (double multiplier)
 
void useEventWeights (bool val=true)
 
void setMinimumBinContent (double val)
 
void setShadowMinimumBinContent (double val)
 
void setMinimumEdgeLength (double val)
 
void setMinimumEdgeLength (HyperPoint val)
 
void setHyperFunction (HyperFunction *fnc)
 Set the HyperFunction - only used by some binning Algs.
 
void drawAfterEachIteration (TString path)
 
void setNames (HyperName names)
 
int & getGlobalVolumeStatus (int volumeNumber)
 
int & getDimensionSpecificVolumeStatus (int volumeNumber, int dimension)
 
const int & getGlobalVolumeStatus (int volumeNumber) const
 
const int & getDimensionSpecificVolumeStatus (int volumeNumber, int dimension) const
 
int getNumContinueBins (int dimension=-1) const
 
int getNumBins () const
 
int getNumHyperVolumes () const
 
int split (int volumeNumber, int dimension, double splitPoint)
 
HyperCuboid splitBelowPoint (int dim, double splitPoint, const HyperCuboid &original) const
 
HyperCuboid splitAbovePoint (int dim, double splitPoint, const HyperCuboid &original) const
 
double getSumOfWeights (const HyperPointSet &hyperPointSet) const
 
double getWeight (const HyperPoint &hyperPoint) const
 
bool isValidBinningDimension (int dimension)
 
virtual bool passFunctionCriteria (HyperCuboid &cuboid1, HyperCuboid &cuboid2)
 
HyperPointSet filterHyperPointSet (const HyperPointSet &hyperPointSet, const HyperCuboid &hyperCuboid, bool print=false) const
 
void addBin (const HyperCuboid &hyperCuboid, const HyperPointSet &hyperPointSet, const HyperPointSet &shadowHyperPointSet, int status)
 
void setDimSpecStatusFromMinBinWidths (int volumeNumber)
 
void updateGlobalStatusFromDimSpecific (int volumeNumber)
 
bool snapToGrid (const HyperCuboid &cuboid, int dimension, double &splitCoord) const
 
virtual void startedAlgorithm ()
 
virtual void startedIteration ()
 
void drawCurrentState (TString path) const
 
virtual void finishedIteration ()
 
virtual void finishedAlgorithm ()
 
HyperBinningMemRes getHyperVolumeBinning () const
 
HyperHistogramgetHyperBinningHistogram () const
 
HyperHistogramgetShadowHyperBinningHistogram () const
 
HyperHistogramgetRatioHyperBinningHistogram () const
 
virtual ~HyperBinningMaker ()
 destructor
 
double countEventsBelowSplitPoint (int binNumber, int dimension, double splitPoint) const
 
double countEventsInHyperCuboid (const HyperPointSet &hyperPointSet, const HyperCuboid &hyperCuboid) const
 
double countShadowEventsBelowSplitPoint (int binNumber, int dimension, double splitPoint) const
 
double findSmartSplitPoint (int binNumber, int dimension, double dataFraction) const
 
int smartSplit (int binNumber, int dimension, double dataFraction)
 
int smartSplitAll (int dimension, double dataFraction)
 
int smartSplitAllRandomise (double dataFraction=0.5)
 
int smartMultiSplit (int binNumber, int dimension, int parts)
 
int smartMultiSplit (int binNumber, int dimension)
 
int smartMultiSplitAll (int dimension)
 
double findSmartSplitPointInt (int binNumber, int dimension, double dataFraction) const
 
int smartSplitInt (int binNumber, int dimension, double dataFraction)
 
int smartSplitAllInt (int dimension, double dataFraction)
 
int splitAll (int dimension, double splitPoint)
 
int splitAllRandomise (double splitPoint=0.5)
 
int likelihoodSplit (int binNumber)
 
int likelihoodSplitAll ()
 
int smartLikelihoodSplit (int binNumber)
 
int smartLikelihoodSplitAll ()
 
void getSplitToMinNeg2LLH (double &split, double &sig, int binNumber, int dimension, bool useConstraints=true)
 
void getDimWithLargestSplitSignificance (int &dim, double &split, int binNumber, bool useConstraints=true)
 
TH1D * scanSig (int binNumber, int dimension, int nbins, bool useConstraints=true)
 
double neg2LLH (int binNumber, int dimension, double splitPoint, bool useConstraints=true)
 
double nullNeg2LLH (int binNumber)
 

Static Public Member Functions

static void setOutputLevel (bool val)
 

Protected Types

enum  VolumeStatus { DONE, CONTINUE }
 

Protected Attributes

std::vector< HyperCuboid_hyperCuboids
 
std::vector< std::vector< int > > _linkedBins
 
std::vector< HyperPointSet_hyperPointSets
 
std::vector< HyperPointSet_shadowHyperPointSets
 
std::vector< int > _status
 
std::vector< std::vector< int > > _dimSpecificStatus
 
std::vector< int > _binningDimensions
 
bool _shadowAdded
 
bool _useEventWeights
 
double _minimumBinContent
 
double _shadowMinimumBinContent
 
HyperPoint _minimumEdgeLength
 
TRandom * _random
 
bool _drawAlgorithm
 
TString _drawAlgorithmDir
 
int _iterationNum
 
HyperName _names
 
HyperFunction_func
 
bool _snapToGrid
 
HyperPoint _gridMultiplier
 

Static Protected Attributes

static bool s_printBinning = true
 

Private Member Functions

 HyperBinningMaker ()
 

Member Enumeration Documentation

Is the volume split as many times as possible, or can I continue to split it

Definition at line 76 of file HyperBinningMaker.h.

Constructor & Destructor Documentation

HyperBinningMaker::HyperBinningMaker ( )
private

Just an empty contructor to make it compile (private, will never be used)

Definition at line 7 of file HyperBinningMaker.cpp.

HyperBinningMaker::HyperBinningMaker ( const HyperCuboid binningRange,
const HyperPointSet data 
)

Constuctor which enables the user to create a binning scheme for the HyperPointSet given, and using limits provided by a HyperCuboid.

Definition at line 22 of file HyperBinningMaker.cpp.

Member Function Documentation

void HyperBinningMaker::addBin ( const HyperCuboid hyperCuboid,
const HyperPointSet hyperPointSet,
const HyperPointSet shadowHyperPointSet,
int  status 
)

Add a bin to the binning scheme

Definition at line 182 of file HyperBinningMaker.cpp.

void HyperBinningMaker::addShadowHyperPointSet ( const HyperPointSet data)

Add a shadow HyperPointSet to the HyperBinningMaker. This must be done before any adaptive binning algorithms commence.

Definition at line 51 of file HyperBinningMaker.cpp.

double HyperBinningMaker::countEventsBelowSplitPoint ( int  binNumber,
int  dimension,
double  splitPoint 
) const

for a specific volume number count how many HyperPoint's (or the sum of those HyperPoint's weights) are below the split value x_dim where

x_dim = lowEdge_dim + (highEdge_dim - lowEdge_dim)*splitPoint

Definition at line 747 of file HyperBinningMaker.cpp.

double HyperBinningMaker::countEventsInHyperCuboid ( const HyperPointSet hyperPointSet,
const HyperCuboid hyperCuboid 
) const

Count the number of HyperPoints (or the sum of their weights) within the HyperCuboid

Definition at line 778 of file HyperBinningMaker.cpp.

double HyperBinningMaker::countShadowEventsBelowSplitPoint ( int  binNumber,
int  dimension,
double  splitPoint 
) const

for a specific volume number count how many HyperPoint's (or the sum of those HyperPoint's weights) are above the split value x_dim where

x_dim = lowEdge_dim + (highEdge_dim - lowEdge_dim)*splitPoint

Definition at line 764 of file HyperBinningMaker.cpp.

void HyperBinningMaker::drawAfterEachIteration ( TString  path)

Use this option if you want the binning to be drawn after every iteration of the binning algorithm.

Definition at line 1266 of file HyperBinningMaker.cpp.

void HyperBinningMaker::drawCurrentState ( TString  path) const

Use the current status of the HyperBinningMaker to make a HyperVolumeBinning, and draw it.

Definition at line 1206 of file HyperBinningMaker.cpp.

HyperPointSet HyperBinningMaker::filterHyperPointSet ( const HyperPointSet hyperPointSet,
const HyperCuboid hyperCuboid,
bool  print = false 
) const

Return any HyperPoint's that are within the HyperCuboid

Definition at line 115 of file HyperBinningMaker.cpp.

double HyperBinningMaker::findSmartSplitPoint ( int  binNumber,
int  dimension,
double  dataFraction 
) const

Find the split point such that a specified fraction of events falls within the resulting two bins.

Definition at line 792 of file HyperBinningMaker.cpp.

double HyperBinningMaker::findSmartSplitPointInt ( int  binNumber,
int  dimension,
double  dataFraction 
) const

Same as findSmartSplitPoint, but only allow splits to be made halfway between two integers. This assumes that all the HyperPoint elements of this dimension are also integers.

Definition at line 816 of file HyperBinningMaker.cpp.

void HyperBinningMaker::finishedAlgorithm ( )
virtual

Call this at the end of the algorithm

Definition at line 1228 of file HyperBinningMaker.cpp.

void HyperBinningMaker::finishedIteration ( )
virtual

When making an algorithm, call this after each iteration if possible

Definition at line 1247 of file HyperBinningMaker.cpp.

void HyperBinningMaker::getDimWithLargestSplitSignificance ( int &  dim,
double &  split,
int  binNumber,
bool  useConstraints = true 
)
Todo:
remember how this works

Definition at line 637 of file HyperBinningMaker.cpp.

HyperHistogram * HyperBinningMaker::getHyperBinningHistogram ( ) const

Use the current state of the HyperBinningMaker to create a HyperBinningHistogram

Definition at line 1145 of file HyperBinningMaker.cpp.

HyperBinningMemRes HyperBinningMaker::getHyperVolumeBinning ( ) const

Use the current state of the HyperBinningMaker to create a HyperVolumeBinning

Definition at line 1122 of file HyperBinningMaker.cpp.

int HyperBinningMaker::getNumBins ( ) const

Find the number of bins - this is NOT the number of HyperVolumes. Some HyperVolumes are stored as part of the binning hierarchy which help event to be binned efficiently - this is descirbed in detail in the HyperVolumeBinning class.

Definition at line 1075 of file HyperBinningMaker.cpp.

int HyperBinningMaker::getNumContinueBins ( int  dimension = -1) const

Find the number of bins with the global status of CONTINUE, and the dimension specific status CONTINUE. Note if the dimension given is -1, then only consider Global status

Definition at line 1095 of file HyperBinningMaker.cpp.

int HyperBinningMaker::getNumHyperVolumes ( ) const

return the number of HyperVolumes - this is NOT the number of bins

Definition at line 1085 of file HyperBinningMaker.cpp.

HyperHistogram * HyperBinningMaker::getRatioHyperBinningHistogram ( ) const

Use the current state of the HyperBinningMaker to create a HyperBinningHistogram for the ratio of events to shadow events

Definition at line 1191 of file HyperBinningMaker.cpp.

HyperHistogram * HyperBinningMaker::getShadowHyperBinningHistogram ( ) const

Use the current state of the HyperBinningMaker to create a HyperBinningHistogram for the shadow events

Definition at line 1169 of file HyperBinningMaker.cpp.

void HyperBinningMaker::getSplitToMinNeg2LLH ( double &  split,
double &  sig,
int  binNumber,
int  dimension,
bool  useConstraints = true 
)
Todo:
remember how this works

Definition at line 603 of file HyperBinningMaker.cpp.

double HyperBinningMaker::getSumOfWeights ( const HyperPointSet hyperPointSet) const

Get the sum of weights in a HyperPointSet. If _useEventWeights isn't true, just returns the number of events in the HyperPointSet.

Definition at line 162 of file HyperBinningMaker.cpp.

double HyperBinningMaker::getWeight ( const HyperPoint hyperPoint) const

Get the weight of an event - if _useEventWeights isn't true, this is just 1.0

Definition at line 172 of file HyperBinningMaker.cpp.

bool HyperBinningMaker::isValidBinningDimension ( int  dimension)

Check that we are allowed to bin in this dimension

Definition at line 196 of file HyperBinningMaker.cpp.

int HyperBinningMaker::likelihoodSplit ( int  binNumber)
Todo:
remember how this works

Definition at line 661 of file HyperBinningMaker.cpp.

int HyperBinningMaker::likelihoodSplitAll ( )
Todo:
remember how this works

Definition at line 709 of file HyperBinningMaker.cpp.

virtual void HyperBinningMaker::makeBinning ( )
pure virtual
double HyperBinningMaker::neg2LLH ( int  binNumber,
int  dimension,
double  splitPoint,
bool  useConstraints = true 
)
Todo:
remember how this works

Definition at line 513 of file HyperBinningMaker.cpp.

double HyperBinningMaker::nullNeg2LLH ( int  binNumber)
Todo:
remember how this works

Definition at line 565 of file HyperBinningMaker.cpp.

bool HyperBinningMaker::passFunctionCriteria ( HyperCuboid cuboid1,
HyperCuboid cuboid2 
)
virtual

If a HyperFunction is passed through the setHyperFunction function, this function is called, and must return true for any successful bin split. Default behavour is to return true, but other derived classes can override

Definition at line 500 of file HyperBinningMaker.cpp.

TH1D * HyperBinningMaker::scanSig ( int  binNumber,
int  dimension,
int  nbins,
bool  useConstraints = true 
)
Todo:
remember how this works

Definition at line 583 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setBinningDimensions ( std::vector< int >  dims)
inline

select which dimensions should be binned

Definition at line 152 of file HyperBinningMaker.h.

void HyperBinningMaker::setDimSpecStatusFromMinBinWidths ( int  volumeNumber)

This checks the bin width in each dimension agaisnt the minimum bin width for that dimension. This is used to set the dimension speicific bin status. If every status is DONE then the global status can also be set to DONE.

Dimensions that are not in the list of binning dimensions are also, automatically set to DONE.

Definition at line 218 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setGridMultiplier ( HyperPoint multipliers)

Set the grid mulipliers independently for each dimension. See 'useSnapToGrid' function for description

Definition at line 149 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setGridMultiplier ( double  multiplier)

Set the grid muliplier to be the same in each dimesnion. See 'useSnapToGrid' function for description

Definition at line 155 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setMinimumBinContent ( double  val)

Set the minimum bin content allowed in any bin (calcualted from the HyperPoints)

Definition at line 1038 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setMinimumEdgeLength ( double  val)

Set the minimum edge length for all dimensions

Definition at line 1057 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setMinimumEdgeLength ( HyperPoint  val)

Set the minimum edge length for all dimensions.

Definition at line 1065 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setNames ( HyperName  names)
inline

used for the axis titles on any of the HyperBinningHistograms I create

Definition at line 176 of file HyperBinningMaker.h.

static void HyperBinningMaker::setOutputLevel ( bool  val)
inlinestatic

set the verbosity of the output - by default this is on

Definition at line 149 of file HyperBinningMaker.h.

void HyperBinningMaker::setSeed ( int  seed)

Set the random seed that is required for some binning schemes

Definition at line 132 of file HyperBinningMaker.cpp.

void HyperBinningMaker::setShadowMinimumBinContent ( double  val)

Set the minimum bin content allowed in any bin (calcualted from the shadow HyperPoints)

Definition at line 1051 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartLikelihoodSplit ( int  binNumber)
Todo:
remember how this works

Definition at line 688 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartLikelihoodSplitAll ( )
Todo:
remember how this works

Definition at line 726 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartMultiSplit ( int  binNumber,
int  dimension,
int  parts 
)

Split a bin into N parts, each which contain the same number of events

Definition at line 871 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartMultiSplit ( int  binNumber,
int  dimension 
)

Split a bin into N parts, each which contain the same number of events

Definition at line 892 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartMultiSplitAll ( int  dimension)

Split every volume with the CONTINUE status using the smartSplit function. This makes one of the resulting bins have a fraction 'dataFraction' of the original events.

Definition at line 956 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartSplit ( int  binNumber,
int  dimension,
double  dataFraction 
)

split the bin in a chosen dimension to give a chosen fraction of events in the resulting bin

Definition at line 859 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartSplitAll ( int  dimension,
double  dataFraction 
)

Split every volume with the CONTINUE status using the smartSplit function. This makes one of the resulting bins have a fraction 'dataFraction' of the original events.

Definition at line 938 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartSplitAllInt ( int  dimension,
double  dataFraction 
)

Split every volume with the CONTINUE status at the using the smartSplit function. This makes one of the resulting bins have a fraction 'dataFraction' of the original events.

This assumes that the HyperPoint elements of this dimension are integers, so splits are only made at integers + 0.5

Definition at line 979 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartSplitAllRandomise ( double  dataFraction = 0.5)

Split every volume with the CONTINUE status using the smartSplit function. This makes one of the resulting bins have a fraction 'dataFraction' of the original events. The dimension to split in is chosen at random.

Definition at line 997 of file HyperBinningMaker.cpp.

int HyperBinningMaker::smartSplitInt ( int  binNumber,
int  dimension,
double  dataFraction 
)

same as smartSplit but assumes all HyperPoint elements in the chosen dimension are integers. Split points are therefore always an integer + 0.5

Definition at line 911 of file HyperBinningMaker.cpp.

bool HyperBinningMaker::snapToGrid ( const HyperCuboid cuboid,
int  dimension,
double &  splitCoord 
) const

Sometimes it's nice to have all the bin edges along some kind of grid structure. My hope is that this also allows better compression of the binning scheme.

Definition at line 439 of file HyperBinningMaker.cpp.

int HyperBinningMaker::split ( int  volumeNumber,
int  dimension,
double  splitPoint 
)

This is the most important function in the class. It is used to split a specific hypervolume in a specific dimension, at point x_dim where:

x_dim = lowEdge_dim + (highEdge_dim - lowEdge_dim)*splitPoint

i.e. splitPoint = 0.5 would split the bin into two equal peices.

While splitting the bin it checks if the resulting bins follow the nessesary requirements. These are:

  • Number of events (or sum of weights) in each of the resulting bins is greater than the minimum bin content (_minimumBinContent)
  • Number of shadow events (or sum of weights) in each of the resulting bins is greater than the minimum bin content (_shadowMinimumBinContent)
  • The width of the resulting bins are larger than the minimum bin width ( _minimumEdgeLength.at(dimension) )
  • The dimension that is being split is a valid binning direction (i.e an element of _binningDimensions)

Definition at line 295 of file HyperBinningMaker.cpp.

HyperCuboid HyperBinningMaker::splitAbovePoint ( int  dim,
double  splitPoint,
const HyperCuboid original 
) const

Split a HyperCuboid in a specific dimension, at point x_dim where:

x_dim = lowEdge_dim + (highEdge_dim - lowEdge_dim)*splitPoint

i.e. splitPoint = 0.5 would split the bin into two equal pieces.

This fuction returns the HyperCuboid above the split point

Definition at line 66 of file HyperBinningMaker.cpp.

int HyperBinningMaker::splitAll ( int  dimension,
double  splitPoint 
)

Split every volume with the CONTINUE status at the split point given (split point of 0.5 would split the bin into two equal parts)

Definition at line 921 of file HyperBinningMaker.cpp.

int HyperBinningMaker::splitAllRandomise ( double  splitPoint = 0.5)

Split every volume with the CONTINUE status at the split point given (split point of 0.5 would split the bin into two equal parts) The dimension to split in is chosen at random.

Definition at line 1018 of file HyperBinningMaker.cpp.

HyperCuboid HyperBinningMaker::splitBelowPoint ( int  dim,
double  splitPoint,
const HyperCuboid original 
) const

Split a HyperCuboid in a specific dimension, at point x_dim where:

x_dim = lowEdge_dim + (highEdge_dim - lowEdge_dim)*splitPoint

i.e. splitPoint = 0.5 would split the bin into two equal pieces.

This fuction returns the HyperCuboid below the split point

Definition at line 93 of file HyperBinningMaker.cpp.

void HyperBinningMaker::startedAlgorithm ( )
virtual

Call this at the beginning of the algorithm

Definition at line 1218 of file HyperBinningMaker.cpp.

void HyperBinningMaker::startedIteration ( )
virtual

When making an algorithm, call this at the beginning of each iteration if possible

Definition at line 1237 of file HyperBinningMaker.cpp.

void HyperBinningMaker::updateGlobalStatusFromDimSpecific ( int  volumeNumber)

For a given volume, see if all the dimension specific statuses are DONE. If so, set the global status to DONE.

Definition at line 251 of file HyperBinningMaker.cpp.

void HyperBinningMaker::useEventWeights ( bool  val = true)
inline

select if weighted event should be used - by default this is off

Definition at line 164 of file HyperBinningMaker.h.

void HyperBinningMaker::useSnapToGrid ( bool  val)

Do you want to use the snap to grid feature i.e. force all the bin egdes to lie on a well defined grid. Grid is has N bins in each direction between min and max (from the binning limits given) where N = floor( (max - min) / minBinWidth) * gridMultiplier

Definition at line 143 of file HyperBinningMaker.cpp.

Member Data Documentation

std::vector<int> HyperBinningMaker::_binningDimensions
protected

what dimensions are we allowed to bin in

Definition at line 88 of file HyperBinningMaker.h.

std::vector< std::vector<int> > HyperBinningMaker::_dimSpecificStatus
protected

the status of each HyperVolume dimension i.e. can we continue splitting it into more bins VolumeStatus::CONTINUE or has it been split as many times as possible VolumeStatus::DONE. This only applies to a specific dinemsion. i.e. if the bin is < twice the minimum egde length, can safely say that it cannot be resplit in that dimension. Note that if all dimensions are VolumeStatus::DONE, then _status should also be VolumeStatus::DONE!!

Definition at line 82 of file HyperBinningMaker.h.

bool HyperBinningMaker::_drawAlgorithm
protected

if this is true, the binning will be drawn after every interation of the algorithm

Definition at line 111 of file HyperBinningMaker.h.

TString HyperBinningMaker::_drawAlgorithmDir
protected

directory used to draw the binning

Definition at line 114 of file HyperBinningMaker.h.

HyperFunction* HyperBinningMaker::_func
protected

Some binning algorithms are based on a function rather than a dataset

Definition at line 123 of file HyperBinningMaker.h.

HyperPoint HyperBinningMaker::_gridMultiplier
protected

if the

Definition at line 129 of file HyperBinningMaker.h.

std::vector<HyperCuboid> HyperBinningMaker::_hyperCuboids
protected

vector of HyperCuboid's that defines the binning hierarchy

Definition at line 59 of file HyperBinningMaker.h.

std::vector<HyperPointSet> HyperBinningMaker::_hyperPointSets
protected

records how many HyperPoints in the inital HyperPointSet (that we're going to adaptively bin) fall into each HyperVolume

Definition at line 67 of file HyperBinningMaker.h.

int HyperBinningMaker::_iterationNum
protected

what iteration are we on

Definition at line 117 of file HyperBinningMaker.h.

std::vector< std::vector<int> > HyperBinningMaker::_linkedBins
protected

each HyperCuboid in the binning hierarchy has linked bins. If these are empty (no linked bins) then this is a true bin. If it contains links, this HyperVolume is just part of the binning hierarchy which is used to speed up the binning of events

Definition at line 61 of file HyperBinningMaker.h.

double HyperBinningMaker::_minimumBinContent
protected

the minimum number of events allowed in a bin - if _useEventWeights is true this corresponds to the sum of weights in each bin

Definition at line 97 of file HyperBinningMaker.h.

HyperPoint HyperBinningMaker::_minimumEdgeLength
protected

the minimum bin width in each dimension

Definition at line 105 of file HyperBinningMaker.h.

HyperName HyperBinningMaker::_names
protected

used for the axis titles on any of the HyperBinningHistograms I create

Definition at line 120 of file HyperBinningMaker.h.

TRandom* HyperBinningMaker::_random
protected

random number generator (some binning adaptive binning schemes may require this)

Definition at line 108 of file HyperBinningMaker.h.

bool HyperBinningMaker::_shadowAdded
protected

has a shadow HyperPointSet been provided

Definition at line 91 of file HyperBinningMaker.h.

std::vector<HyperPointSet> HyperBinningMaker::_shadowHyperPointSets
protected

records how many HyperPoints in the inital shadow HyperPointSet (that we're going to adaptively bin) fall into each HyperVolume

Definition at line 71 of file HyperBinningMaker.h.

double HyperBinningMaker::_shadowMinimumBinContent
protected

the minimum number of shadow events allowed in a bin - if _useEventWeights is true this corresponds to the sum of weights in each bin

Definition at line 101 of file HyperBinningMaker.h.

bool HyperBinningMaker::_snapToGrid
protected

if this is true, any split point needs to be located on a grid

Definition at line 126 of file HyperBinningMaker.h.

std::vector<int> HyperBinningMaker::_status
protected

the status of each HyperVolume i.e. can we continue splitting it into more bins VolumeStatus::CONTINUE or has it been split as many times as possible VolumeStatus::DONE

Definition at line 78 of file HyperBinningMaker.h.

bool HyperBinningMaker::_useEventWeights
protected

should event weights be considered when creating the binning

Definition at line 94 of file HyperBinningMaker.h.

bool HyperBinningMaker::s_printBinning = true
staticprotected

print out the status of the binning algorithm

Definition at line 52 of file HyperBinningMaker.h.


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