MaCh3  2.5.1
Reference Guide
BinningHandler.h
Go to the documentation of this file.
1 #pragma once
2 #include <vector>
3 #include <string>
4 
6 #include "Samples/SampleInfo.h"
8 #include "Manager/Manager.h"
9 
10 // ***************************
131 // ***************************
132  public:
134  BinningHandler();
135 
137  virtual ~BinningHandler() {};
138 
143  int FindGlobalBin(const int iSample,
144  const std::vector<const double*>& KinVar,
145  const std::vector<int>& NomBin) const;
146 
151  int FindNominalBin(const int iSample, const int iDim, const double Var) const;
152 
156  int GetGlobalBinSafe(const int iSample, const std::vector<int>& Bins) const;
160  int GetBinSafe(const int iSample, const std::vector<int>& Bins) const;
162  int GetNBins() const {return TotalNumberOfBins;};
164  int GetNBins(const int iSample) const {return static_cast<int>(SampleBinning[iSample].nBins);};
166  int GetNDim(const int iSample) const { return int(SampleBinning[iSample].BinEdges.size()); }
169  std::string GetBinName(const int GlobalBin) const;
173  std::string GetBinName(const int iSample, const int SampleBin) const;
177  std::string GetBinName(const int iSample, const std::vector<int>& Bins) const;
180  int GetSampleIndex(const int GlobalBin) const;
184  std::vector<double> GetBinEdges(const int iSample, const int iDim) const {return SampleBinning[iSample].BinEdges.at(iDim);};
185 
189  int GetNAxisBins(const int iSample, const int iDim) const;
192  bool IsUniform(const int iSample) const;
195  int GetSampleStartBin(const int iSample) const;
198  int GetSampleEndBin(const int iSample) const;
200  const std::vector<BinInfo> GetNonUniformBins(const int iSample) const;
202  void SetGlobalBinNumbers();
203 
206  void SetupSampleBinning(const YAML::Node& Settings, SampleInfo& SingleSample);
207 
208  private:
212  std::vector<SampleBinningInfo> SampleBinning;
213 };
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 GetSampleIndex(const int GlobalBin) const
Returns sample index based on global bin.
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.
Definition: SampleInfo.h:40