8 #ifndef HYPERBINNINGMAKER_HH 9 #define HYPERBINNINGMAKER_HH 206 int split(
int volumeNumber,
int dimension,
double splitPoint);
259 int smartSplit (
int binNumber,
int dimension,
double dataFraction);
271 int smartSplitInt(
int binNumber,
int dimension,
double dataFraction);
274 int splitAll(
int dimension,
double splitPoint);
292 TH1D*
scanSig(
int binNumber,
int dimension,
int nbins,
bool useConstraints =
true);
294 double neg2LLH(
int binNumber,
int dimension,
double splitPoint,
bool useConstraints =
true);
double _minimumBinContent
int smartLikelihoodSplitAll()
void addShadowHyperPointSet(const HyperPointSet &data)
virtual ~HyperBinningMaker()
destructor
void setShadowMinimumBinContent(double val)
int getNumContinueBins(int dimension=-1) const
void setBinningDimensions(std::vector< int > dims)
HyperPoint _minimumEdgeLength
void getDimWithLargestSplitSignificance(int &dim, double &split, int binNumber, bool useConstraints=true)
int smartMultiSplitAll(int dimension)
bool snapToGrid(const HyperCuboid &cuboid, int dimension, double &splitCoord) const
HyperHistogram * getShadowHyperBinningHistogram() const
std::vector< std::vector< int > > _linkedBins
virtual void startedIteration()
static bool s_printBinning
void getSplitToMinNeg2LLH(double &split, double &sig, int binNumber, int dimension, bool useConstraints=true)
void setNames(HyperName names)
int smartSplitAllInt(int dimension, double dataFraction)
virtual void startedAlgorithm()
void drawAfterEachIteration(TString path)
std::vector< int > _status
void setGridMultiplier(HyperPoint &multipliers)
double findSmartSplitPointInt(int binNumber, int dimension, double dataFraction) const
HyperPoint _gridMultiplier
void setMinimumEdgeLength(double val)
double countEventsBelowSplitPoint(int binNumber, int dimension, double splitPoint) const
int smartSplit(int binNumber, int dimension, double dataFraction)
TString _drawAlgorithmDir
bool isValidBinningDimension(int dimension)
void useSnapToGrid(bool val)
void updateFromExistingHyperBinning(const HyperBinning &binning)
virtual void finishedAlgorithm()
void drawCurrentState(TString path) const
void setDimSpecStatusFromMinBinWidths(int volumeNumber)
std::vector< HyperPointSet > _shadowHyperPointSets
HyperBinningMemRes getHyperVolumeBinning() const
void addBin(const HyperCuboid &hyperCuboid, const HyperPointSet &hyperPointSet, const HyperPointSet &shadowHyperPointSet, int status)
HyperCuboid splitAbovePoint(int dim, double splitPoint, const HyperCuboid &original, bool noSnapToGrid=false) const
double nullNeg2LLH(int binNumber)
virtual void finishedIteration()
HyperHistogram * getHyperBinningHistogram() const
HyperPointSet filterHyperPointSet(const HyperPointSet &hyperPointSet, const HyperCuboid &hyperCuboid, bool print=false) const
static void setOutputLevel(bool val)
double getSumOfWeights(const HyperPointSet &hyperPointSet) const
void updateGlobalStatusFromDimSpecific(int volumeNumber)
int likelihoodSplit(int binNumber)
int splitAll(int dimension, double splitPoint)
TH1D * scanSig(int binNumber, int dimension, int nbins, bool useConstraints=true)
virtual void makeBinning()=0
int smartLikelihoodSplit(int binNumber)
double _shadowMinimumBinContent
int splitAllRandomise(double splitPoint=0.5)
void setHyperFunction(HyperFunction *fnc)
Set the HyperFunction - only used by some binning Algs.
int smartSplitInt(int binNumber, int dimension, double dataFraction)
int smartMultiSplit(int binNumber, int dimension, int parts)
int & getGlobalVolumeStatus(int volumeNumber)
int & getDimensionSpecificVolumeStatus(int volumeNumber, int dimension)
int getNumHyperVolumes() const
std::vector< HyperCuboid > _hyperCuboids
void useEventWeights(bool val=true)
double countShadowEventsBelowSplitPoint(int binNumber, int dimension, double splitPoint) const
std::vector< int > _binningDimensions
double getWeight(const HyperPoint &hyperPoint) const
HyperHistogram * getRatioHyperBinningHistogram() const
const int & getDimensionSpecificVolumeStatus(int volumeNumber, int dimension) const
int smartSplitAllRandomise(double dataFraction=0.5)
double findSmartSplitPoint(int binNumber, int dimension, double dataFraction) const
void setMinimumBinContent(double val)
int split(int volumeNumber, int dimension, double splitPoint)
const int & getGlobalVolumeStatus(int volumeNumber) const
std::vector< std::vector< int > > _dimSpecificStatus
double countEventsInHyperCuboid(const HyperPointSet &hyperPointSet, const HyperCuboid &hyperCuboid) const
std::vector< HyperPointSet > _hyperPointSets
HyperCuboid splitBelowPoint(int dim, double splitPoint, const HyperCuboid &original, bool noSnapToGrid=false) const
int smartSplitAll(int dimension, double dataFraction)
virtual bool passFunctionCriteria(HyperCuboid &cuboid1, HyperCuboid &cuboid2)
double neg2LLH(int binNumber, int dimension, double splitPoint, bool useConstraints=true)