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

#include <HyperBinningMakerSmartLikelihood.h>

Inheritance diagram for HyperBinningMakerSmartLikelihood:
HyperBinningMaker

Public Member Functions

 HyperBinningMakerSmartLikelihood (const HyperCuboid &binningRange, const HyperPointSet &data)
 
virtual void makeBinning ()
 
 ~HyperBinningMakerSmartLikelihood ()
 
- 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... follows the same proceedure as HyperBinningMakerLikelihood but only the dimension is picked using the likelihood method. The splitting is done using the SMART method (HyperBinningMakerSmart) .

Definition at line 29 of file HyperBinningMakerSmartLikelihood.h.

Constructor & Destructor Documentation

◆ HyperBinningMakerSmartLikelihood()

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

Constructor that initiates the base class HyperBinningMaker

Definition at line 4 of file HyperBinningMakerSmartLikelihood.cpp.

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

◆ ~HyperBinningMakerSmartLikelihood()

HyperBinningMakerSmartLikelihood::~HyperBinningMakerSmartLikelihood ( )

Destructor

Definition at line 29 of file HyperBinningMakerSmartLikelihood.cpp.

29  {
30  GOODBYE_LOG << "Goodbye from the HyperBinningMakerSmartLikelihood() Constructor"<<std::endl;
31 }
#define GOODBYE_LOG

Member Function Documentation

◆ makeBinning()

void HyperBinningMakerSmartLikelihood::makeBinning ( )
virtual

run the algorithm

Implements HyperBinningMaker.

Definition at line 10 of file HyperBinningMakerSmartLikelihood.cpp.

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

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