MaCh3  2.5.0
Reference Guide
BinningHandler.h
Go to the documentation of this file.
1 #pragma once
2 #include <vector>
3 #include <string>
4 
7 #include "Manager/Manager.h"
8 
9 // ***************************
130 // ***************************
131  public:
133  BinningHandler();
134 
136  virtual ~BinningHandler() {};
137 
142  int FindGlobalBin(const int iSample,
143  const std::vector<const double*>& KinVar,
144  const std::vector<int>& NomBin) const;
145 
150  int FindNominalBin(const int iSample, const int iDim, const double Var) const;
151 
155  int GetGlobalBinSafe(const int iSample, const std::vector<int>& Bins) const;
159  int GetBinSafe(const int iSample, const std::vector<int>& Bins) const;
161  int GetNBins() const {return TotalNumberOfBins;};
163  int GetNBins(const int iSample) const {return static_cast<int>(SampleBinning[iSample].nBins);};
165  int GetNDim(const int iSample) const { return int(SampleBinning[iSample].BinEdges.size()); }
168  std::string GetBinName(const int GlobalBin) const;
172  std::string GetBinName(const int iSample, const int SampleBin) const;
176  std::string GetBinName(const int iSample, const std::vector<int>& Bins) const;
177 
181  std::vector<double> GetBinEdges(const int iSample, const int iDim) const {return SampleBinning[iSample].BinEdges.at(iDim);};
182 
186  int GetNAxisBins(const int iSample, const int iDim) const;
189  bool IsUniform(const int iSample) const;
192  int GetSampleStartBin(const int iSample) const;
195  int GetSampleEndBin(const int iSample) const;
197  const std::vector<BinInfo> GetNonUniformBins(const int iSample) const;
199  void SetGlobalBinNumbers();
200 
203  void SetupSampleBinning(const YAML::Node& Settings, SampleInfo& SingleSample);
204 
205  private:
209  std::vector<SampleBinningInfo> SampleBinning;
210 };
KS: Class handling binning for multiple samples.
std::vector< double > GetBinEdges(const int iSample, const int iDim) const
Get N-dim bin edges for a given sample.
const std::vector< BinInfo > GetNonUniformBins(const int iSample) const
Return NonUnifomr bins to for example check extent etc.
void SetGlobalBinNumbers()
Sets the GlobalOffset for each SampleBinningInfo to enable linearization of multiple 2D binning sampl...
virtual ~BinningHandler()
destructor
int GetSampleStartBin(const int iSample) const
Get bin number corresponding to where given sample starts.
BinningHandler()
Constructor.
std::vector< SampleBinningInfo > SampleBinning
Binning info for individual sample.
int FindGlobalBin(const int iSample, const std::vector< const double * > &KinVar, const std::vector< int > &NomBin) const
Find Global bin including.
void SetupSampleBinning(const YAML::Node &Settings, SampleInfo &SingleSample)
Function to setup the binning of your sample histograms and the underlying arrays that get handled in...
int GetBinSafe(const int iSample, const std::vector< int > &Bins) const
Get gloabl bin based on sample, and dimension of each sample without any safety checks.
int GetNBins(const int iSample) const
Get total number of bins over for a given sample.
int GetNBins() const
Get total number of bins over all samples/kinematic bins etc.
std::string GetBinName(const int GlobalBin) const
Get fancy name for a given bin, to help match it with global properties.
int GetNDim(const int iSample) const
Get total number of dimensions for sample iSample.
int FindNominalBin(const int iSample, const int iDim, const double Var) const
Find the nominal bin for a given variable in a given sample and dimension.
int GetGlobalBinSafe(const int iSample, const std::vector< int > &Bins) const
Get gloabl bin based on sample, and dimension of each sample with additional checks.
bool IsUniform(const int iSample) const
Tells whether given sample is using unform binning.
int GetSampleEndBin(const int iSample) const
Get bin number corresponding to where given sample ends.
int TotalNumberOfBins
Total number of bins.
int GetNAxisBins(const int iSample, const int iDim) const
Get Number of N-axis bins for a given sample.
KS: Store info about MC sample.