MINT2
Public Member Functions | List of all members
HyperBinningMakerLikelihood Class Reference

#include <HyperBinningMakerLikelihood.h>

Inheritance diagram for HyperBinningMakerLikelihood:
HyperBinningMaker

Public Member Functions

 HyperBinningMakerLikelihood (const HyperCuboid &binningRange, const HyperPointSet &data)
 
virtual void makeBinning ()
 
 ~HyperBinningMakerLikelihood ()
 
- Public Member Functions inherited from HyperBinningMaker
 HyperBinningMaker (const HyperCuboid &binningRange, const HyperPointSet &data)
 
 HyperBinningMaker (const HyperBinning &binning, const HyperPointSet &data)
 
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. More...
 
void drawAfterEachIteration (TString path)
 
void updateFromExistingHyperBinning (const HyperBinning &binning)
 
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, bool noSnapToGrid=false) const
 
HyperCuboid splitAbovePoint (int dim, double splitPoint, const HyperCuboid &original, bool noSnapToGrid=false) 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 More...
 
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)
 

Additional Inherited Members

- Static Public Member Functions inherited from HyperBinningMaker
static void setOutputLevel (bool val)
 
- Protected Attributes inherited from HyperBinningMaker
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 inherited from HyperBinningMaker
static bool s_printBinning = true
 

Detailed Description

HyperPlot, Author: Sam Harnew, sam.h.nosp@m.arne.nosp@m.w@gma.nosp@m.il.c.nosp@m.om , Date: Dec 2015

Algorithm to adaptively create a HyperVolumeBinning for a specific HyperPointSet, taking limits from a HyperCuboid.

Todo:
rememer how this algorithm works - its something along these lines... Fits the points in the bin with a flat line, then fits it with a step fuction (that has 3 free parameters, height before step height after step, and step point ). The step point that maximises the likelihood is chosen as the split point.

Additionally, you can compare the significance of splitting in different dimensions using the likelihood ratio of the flat line and the step function. choose to split in the dimension that gives the biggest significance.

Definition at line 33 of file HyperBinningMakerLikelihood.h.

Constructor & Destructor Documentation

◆ HyperBinningMakerLikelihood()

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

Constructor that initiates the base class HyperBinningMaker

Definition at line 6 of file HyperBinningMakerLikelihood.cpp.

6  :
7  HyperBinningMaker(binningRange, data)
8 {
9  WELCOME_LOG << "Good day from the HyperBinningMakerLikelihood() Constructor"<<std::endl;
10 }
#define WELCOME_LOG

◆ ~HyperBinningMakerLikelihood()

HyperBinningMakerLikelihood::~HyperBinningMakerLikelihood ( )

Destructor

Definition at line 31 of file HyperBinningMakerLikelihood.cpp.

31  {
32  GOODBYE_LOG << "Goodbye from the HyperBinningMakerLikelihood() Constructor"<<std::endl;
33 }
#define GOODBYE_LOG

Member Function Documentation

◆ makeBinning()

void HyperBinningMakerLikelihood::makeBinning ( )
virtual

run the algorithm

Implements HyperBinningMaker.

Definition at line 12 of file HyperBinningMakerLikelihood.cpp.

12  {
13 
14  int dimension = _binningDimensions.size();
15 
16  int nBins = 0;
17  int unchanged = 0;
18 
19  while (likelihoodSplitAll() != 0){
20  if (nBins == getNumBins()) unchanged++;
21  else unchanged = 0;
22  if (unchanged >= 2.0*dimension) break;
23  nBins = getNumBins();
24  if (s_printBinning == true) INFO_LOG << "There is now a total of " << nBins << " bins"<<std::endl;
25  }
26 
27  if (s_printBinning == true) INFO_LOG << "likelihood binning algorithm complete "<<std::endl;
28 
29 }
#define INFO_LOG
static bool s_printBinning
std::vector< int > _binningDimensions

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