MaCh3  2.4.2
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 // ***************************
122 // ***************************
123  public:
125  BinningHandler();
126 
128  virtual ~BinningHandler() {};
129 
134  int FindGlobalBin(const int iSample,
135  const std::vector<const double*>& KinVar,
136  const std::vector<int>& NomBin) const;
137 
142  int FindNominalBin(const int iSample, const int iDim, const double Var) const;
143 
147  int GetGlobalBinSafe(const int iSample, const std::vector<int>& Bins) const;
151  int GetBinSafe(const int iSample, const std::vector<int>& Bins) const;
153  int GetNBins() const {return TotalNumberOfBins;};
155  int GetNBins(const int iSample) const {return static_cast<int>(SampleBinning[iSample].nBins);};
158  std::string GetBinName(const int GlobalBin) const;
162  std::string GetBinName(const int iSample, const int SampleBin) const;
166  std::string GetBinName(const int iSample, const std::vector<int>& Bins) const;
167 
171  std::vector<double> GetBinEdges(const int iSample, const int iDim) const {return SampleBinning[iSample].BinEdges.at(iDim);};
172 
176  int GetNAxisBins(const int iSample, const int iDim) const;
179  bool IsUniform(const int iSample) const;
182  int GetSampleStartBin(const int iSample) const;
185  int GetSampleEndBin(const int iSample) const;
187  const std::vector<BinInfo> GetNonUniformBins(const int iSample) const;
189  void SetGlobalBinNumbers();
190 
193  void SetupSampleBinning(const YAML::Node& Settings, SampleInfo& SingleSample);
194 
195  private:
199  std::vector<SampleBinningInfo> SampleBinning;
200 };
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 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.