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

#include <HyperBinningMakerSmartRandomise.h>

Inheritance diagram for HyperBinningMakerSmartRandomise:
HyperBinningMaker

Public Member Functions

 HyperBinningMakerSmartRandomise (const HyperCuboid &binningRange, const HyperPointSet &data)
 
virtual void makeBinning ()
 
 ~HyperBinningMakerSmartRandomise ()
 
- 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.

It first performs the same algorithm as HyperBinningMakerSmart, but when each bin is split, the splitting dimension is chosen at random

Definition at line 26 of file HyperBinningMakerSmartRandomise.h.

Constructor & Destructor Documentation

◆ HyperBinningMakerSmartRandomise()

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

Constructor that initiates the base class HyperBinningMaker

Definition at line 5 of file HyperBinningMakerSmartRandomise.cpp.

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

◆ ~HyperBinningMakerSmartRandomise()

HyperBinningMakerSmartRandomise::~HyperBinningMakerSmartRandomise ( )

Destructor

Definition at line 32 of file HyperBinningMakerSmartRandomise.cpp.

32  {
33  GOODBYE_LOG << "Goodbye from the HyperBinningMakerRandomise() Constructor";
34 }
#define GOODBYE_LOG

Member Function Documentation

◆ makeBinning()

void HyperBinningMakerSmartRandomise::makeBinning ( )
virtual

run the algorithm

Implements HyperBinningMaker.

Definition at line 11 of file HyperBinningMakerSmartRandomise.cpp.

11  {
12 
13  if (s_printBinning == true) INFO_LOG << "Splitting all bins in random dimensions"<<std::endl;
14  int dimension = _binningDimensions.size();
15 
16  int nBins = 0;
17  int unchanged = 0;
18 
19  while (smartSplitAllRandomise() != 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 << "Random binning algorithm complete "<<std::endl;
28 
29 
30 }
#define INFO_LOG
static bool s_printBinning
std::vector< int > _binningDimensions
int smartSplitAllRandomise(double dataFraction=0.5)

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