MaCh3  2.4.2
Reference Guide
Public Member Functions | List of all members
PySampleHandlerBase Class Reference

EW: As SampleHandlerBase is an abstract base class we have to do some gymnastics to get it to get it into python. More...

Inheritance diagram for PySampleHandlerBase:
[legend]
Collaboration diagram for PySampleHandlerBase:
[legend]

Public Member Functions

std::string GetName () const override
 
std::string GetSampleTitle (const int iSample) const override
 
int GetNOscChannels (const int iSample) const override
 
void Reweight () override
 
double GetSampleLikelihood (const int iSample) const override
 
void CleanMemoryBeforeFit () override
 Allow to clean not used memory before fit starts. More...
 
void PrintRates (const bool DataOnly=false) override
 Helper function to print rates for the samples with LLH. More...
 
std::string GetKinVarName (const int iSample, const int Dimension) const override
 Return Kinematic Variable name for specified sample and dimension for example "Reconstructed_Neutrino_Energy". More...
 
std::vector< double > ReturnKinematicParameterBinning (const int Sample, const std::string &KinematicParameter) const override
 Return the binning used to draw a kinematic parameter. More...
 
TH1 * GetDataHist (const int Sample) override
 Get Data histogram. More...
 
TH1 * GetMCHist (const int Sample) override
 Get MC histogram. More...
 
TH1 * GetW2Hist (const int Sample) override
 Get W2 histogram. More...
 
double GetLikelihood () const override
 
TH1 * Get1DVarHistByModeAndChannel (const int iSample, const std::string &ProjectionVar_Str, int kModeToFill=-1, int kChannelToFill=-1, int WeightStyle=0, TAxis *Axis=nullptr) override
 
TH2 * Get2DVarHistByModeAndChannel (const int iSample, const std::string &ProjectionVar_StrX, const std::string &ProjectionVar_StrY, int kModeToFill=-1, int kChannelToFill=-1, int WeightStyle=0, TAxis *AxisX=nullptr, TAxis *AxisY=nullptr) override
 
TH1 * Get1DVarHist (const int iSample, const std::string &ProjectionVar, const std::vector< KinematicCut > &EventSelectionVec={}, int WeightStyle=0, TAxis *Axis=nullptr, const std::vector< KinematicCut > &SubEventSelectionVec={}) override
 
TH2 * Get2DVarHist (const int iSample, const std::string &ProjectionVarX, const std::string &ProjectionVarY, const std::vector< KinematicCut > &EventSelectionVec={}, int WeightStyle=0, TAxis *AxisX=nullptr, TAxis *AxisY=nullptr, const std::vector< KinematicCut > &SubEventSelectionVec={}) override
 
int GetNDim (const int Sample) const override
 DB Function to differentiate 1D or 2D binning. More...
 
std::string GetFlavourName (const int iSample, const int iChannel) const override
 
 SampleHandlerBase ()
 The main constructor. More...
 
- Public Member Functions inherited from SampleHandlerBase
 SampleHandlerBase ()
 The main constructor. More...
 
virtual ~SampleHandlerBase ()
 destructor More...
 
virtual M3::int_t GetNsamples ()
 
virtual void SaveAdditionalInfo (TDirectory *Dir)
 Store additional info in a chan. More...
 
MaCh3ModesGetMaCh3Modes () const
 Return pointer to MaCh3 modes. More...
 
unsigned int GetNEvents () const
 
double GetPoissonLLH (const double data, const double mc) const
 Calculate test statistic for a single bin using Poisson. More...
 
double GetTestStatLLH (const double data, const double mc, const double w2) const
 Calculate test statistic for a single bin. Calculation depends on setting of fTestStatistic. Data and mc -> 0 cut-offs are defined in M3::LOW_MC_BOUND. More...
 
void SetTestStatistic (TestStatistic testStat)
 Set the test statistic to be used when calculating the binned likelihoods. More...
 
TestStatistic GetTestStatistic () const
 Get the test statistic used when calculating the binned likelihoods. More...
 

Additional Inherited Members

- Protected Member Functions inherited from SampleHandlerBase
void QuietPlease ()
 CW: Redirect std::cout to silence some experiment specific libraries. More...
 
void NowTalk ()
 CW: Redirect std::cout to silence some experiment specific libraries. More...
 
template<typename T >
bool MatchCondition (const std::vector< T > &allowedValues, const T &value)
 check if event is affected by following conditions, for example pdg, or modes etc More...
 
- Protected Attributes inherited from SampleHandlerBase
TestStatistic fTestStatistic
 Test statistic tells what kind of likelihood sample is using. More...
 
std::streambuf * buf
 Keep the cout buffer. More...
 
std::streambuf * errbuf
 Keep the cerr buffer. More...
 
M3::int_t nSamples
 Contains how many samples we've got. More...
 
unsigned int nEvents
 Number of MC events are there. More...
 
std::unique_ptr< MaCh3ModesModes
 Holds information about used Generator and MaCh3 modes. More...
 

Detailed Description

EW: As SampleHandlerBase is an abstract base class we have to do some gymnastics to get it to get it into python.

Definition at line 10 of file samples.cpp.

Member Function Documentation

◆ CleanMemoryBeforeFit()

void PySampleHandlerBase::CleanMemoryBeforeFit ( )
inlineoverridevirtual

Allow to clean not used memory before fit starts.

Implements SampleHandlerBase.

Definition at line 67 of file samples.cpp.

67  {
68  PYBIND11_OVERRIDE_PURE_NAME(
69  void, /* Return type */
70  SampleHandlerBase, /* Parent class */
71  "clean_memory_before_fit",
72  CleanMemoryBeforeFit /* Name of function in C++ (must match Python name) */
73  );
74  }
void CleanMemoryBeforeFit() override
Allow to clean not used memory before fit starts.
Definition: samples.cpp:67
Class responsible for handling implementation of samples used in analysis, reweighting and returning ...

◆ Get1DVarHist()

TH1* PySampleHandlerBase::Get1DVarHist ( const int  iSample,
const std::string &  ProjectionVar,
const std::vector< KinematicCut > &  EventSelectionVec = {},
int  WeightStyle = 0,
TAxis *  Axis = nullptr,
const std::vector< KinematicCut > &  SubEventSelectionVec = {} 
)
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 187 of file samples.cpp.

189  {},
190  int WeightStyle = 0,
191  TAxis *Axis = nullptr,
192  const std::vector<KinematicCut> &SubEventSelectionVec = {}) override {
193  PYBIND11_OVERRIDE_PURE(
194  TH1*, /* Return type */
195  SampleHandlerBase, /* Parent class */
196  Get1DVarHist, /* Name of function in C++ */
197  iSample,
198  ProjectionVar,
199  EventSelectionVec,
200  WeightStyle,
201  Axis,
202  SubEventSelectionVec
203  );
204  }
TH1 * Get1DVarHist(const int iSample, const std::string &ProjectionVar, const std::vector< KinematicCut > &EventSelectionVec={}, int WeightStyle=0, TAxis *Axis=nullptr, const std::vector< KinematicCut > &SubEventSelectionVec={}) override
Definition: samples.cpp:187

◆ Get1DVarHistByModeAndChannel()

TH1* PySampleHandlerBase::Get1DVarHistByModeAndChannel ( const int  iSample,
const std::string &  ProjectionVar_Str,
int  kModeToFill = -1,
int  kChannelToFill = -1,
int  WeightStyle = 0,
TAxis *  Axis = nullptr 
)
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 145 of file samples.cpp.

150  {
151  PYBIND11_OVERRIDE_PURE(
152  TH1*, /* Return type */
153  SampleHandlerBase, /* Parent class */
154  Get1DVarHistByModeAndChannel, /* Name of function in C++ */
155  iSample,
156  ProjectionVar_Str,
157  kModeToFill,
158  kChannelToFill,
159  WeightStyle,
160  Axis
161  );
162  }
TH1 * Get1DVarHistByModeAndChannel(const int iSample, const std::string &ProjectionVar_Str, int kModeToFill=-1, int kChannelToFill=-1, int WeightStyle=0, TAxis *Axis=nullptr) override
Definition: samples.cpp:145

◆ Get2DVarHist()

TH2* PySampleHandlerBase::Get2DVarHist ( const int  iSample,
const std::string &  ProjectionVarX,
const std::string &  ProjectionVarY,
const std::vector< KinematicCut > &  EventSelectionVec = {},
int  WeightStyle = 0,
TAxis *  AxisX = nullptr,
TAxis *  AxisY = nullptr,
const std::vector< KinematicCut > &  SubEventSelectionVec = {} 
)
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 206 of file samples.cpp.

209  {},
210  int WeightStyle = 0,
211  TAxis* AxisX = nullptr,
212  TAxis* AxisY = nullptr,
213  const std::vector<KinematicCut>& SubEventSelectionVec = {}) override {
214  PYBIND11_OVERRIDE_PURE(
215  TH2*, /* Return type */
216  SampleHandlerBase, /* Parent class */
217  Get2DVarHist, /* Name of function in C++ */
218  iSample,
219  ProjectionVarX,
220  ProjectionVarY,
221  EventSelectionVec,
222  WeightStyle,
223  AxisX,
224  AxisY,
225  SubEventSelectionVec
226  );
227  }
TH2 * Get2DVarHist(const int iSample, const std::string &ProjectionVarX, const std::string &ProjectionVarY, const std::vector< KinematicCut > &EventSelectionVec={}, int WeightStyle=0, TAxis *AxisX=nullptr, TAxis *AxisY=nullptr, const std::vector< KinematicCut > &SubEventSelectionVec={}) override
Definition: samples.cpp:206

◆ Get2DVarHistByModeAndChannel()

TH2* PySampleHandlerBase::Get2DVarHistByModeAndChannel ( const int  iSample,
const std::string &  ProjectionVar_StrX,
const std::string &  ProjectionVar_StrY,
int  kModeToFill = -1,
int  kChannelToFill = -1,
int  WeightStyle = 0,
TAxis *  AxisX = nullptr,
TAxis *  AxisY = nullptr 
)
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 164 of file samples.cpp.

171  {
172  PYBIND11_OVERRIDE_PURE(
173  TH2*, /* Return type */
174  SampleHandlerBase, /* Parent class */
175  Get2DVarHistByModeAndChannel, /* Name of function in C++ */
176  iSample,
177  ProjectionVar_StrX,
178  ProjectionVar_StrY,
179  kModeToFill,
180  kChannelToFill,
181  WeightStyle,
182  AxisX,
183  AxisY
184  );
185  }
TH2 * Get2DVarHistByModeAndChannel(const int iSample, const std::string &ProjectionVar_StrX, const std::string &ProjectionVar_StrY, int kModeToFill=-1, int kChannelToFill=-1, int WeightStyle=0, TAxis *AxisX=nullptr, TAxis *AxisY=nullptr) override
Definition: samples.cpp:164

◆ GetDataHist()

TH1* PySampleHandlerBase::GetDataHist ( const int  Sample)
inlineoverridevirtual

Get Data histogram.

Implements SampleHandlerBase.

Definition at line 108 of file samples.cpp.

108  {
109  PYBIND11_OVERRIDE_PURE(
110  TH1*, /* Return type */
111  SampleHandlerBase, /* Parent class */
112  GetDataHist, /* Name of function in C++ (must match Python name) */
113  Sample /* Argument(s) */
114  );
115  }
TH1 * GetDataHist(const int Sample) override
Get Data histogram.
Definition: samples.cpp:108

◆ GetFlavourName()

std::string PySampleHandlerBase::GetFlavourName ( const int  iSample,
const int  iChannel 
) const
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 238 of file samples.cpp.

239  {
240  PYBIND11_OVERRIDE_PURE(
241  std::string, /* Return type */
242  SampleHandlerBase, /* Parent class */
243  GetFlavourName, /* Name of function in C++ */
244  iSample,
245  iChannel
246  );
247  }
std::string GetFlavourName(const int iSample, const int iChannel) const override
Definition: samples.cpp:238

◆ GetKinVarName()

std::string PySampleHandlerBase::GetKinVarName ( const int  iSample,
const int  Dimension 
) const
inlineoverridevirtual

Return Kinematic Variable name for specified sample and dimension for example "Reconstructed_Neutrino_Energy".

Parameters
iSampleSample index
DimensionDimension index

Implements SampleHandlerBase.

Definition at line 87 of file samples.cpp.

87  {
88  PYBIND11_OVERRIDE_PURE(
89  std::string, /* Return type */
90  SampleHandlerBase, /* Parent class */
91  GetKinVarName, /* Name of function in C++ (must match Python name) */
92  iSample, /* Argument(s) */
93  Dimension /* Argument(s) */
94  );
95  }
std::string GetKinVarName(const int iSample, const int Dimension) const override
Return Kinematic Variable name for specified sample and dimension for example "Reconstructed_Neutrino...
Definition: samples.cpp:87

◆ GetLikelihood()

double PySampleHandlerBase::GetLikelihood ( ) const
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 135 of file samples.cpp.

135  {
136  PYBIND11_OVERRIDE_PURE_NAME(
137  double, /* Return type */
138  SampleHandlerBase, /* Parent class */
139  "get_likelihood", /* Python name*/
140  GetLikelihood /* Name of function in C++ (must match Python name) */
141  /* Argument(s) */
142  );
143  }
double GetLikelihood() const override
Definition: samples.cpp:135

◆ GetMCHist()

TH1* PySampleHandlerBase::GetMCHist ( const int  Sample)
inlineoverridevirtual

Get MC histogram.

Implements SampleHandlerBase.

Definition at line 117 of file samples.cpp.

117  {
118  PYBIND11_OVERRIDE_PURE(
119  TH1*, /* Return type */
120  SampleHandlerBase, /* Parent class */
121  GetMCHist, /* Name of function in C++ (must match Python name) */
122  Sample /* Argument(s) */
123  );
124  }
TH1 * GetMCHist(const int Sample) override
Get MC histogram.
Definition: samples.cpp:117

◆ GetName()

std::string PySampleHandlerBase::GetName ( ) const
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 16 of file samples.cpp.

16  {
17  PYBIND11_OVERRIDE_PURE(
18  std::string, /* Return type */
19  SampleHandlerBase, /* Parent class */
20  GetName, /* Name of function in C++ (must match Python name) */
21  );
22  }
std::string GetName() const override
Definition: samples.cpp:16

◆ GetNDim()

int PySampleHandlerBase::GetNDim ( const int  Sample) const
inlineoverridevirtual

DB Function to differentiate 1D or 2D binning.

Implements SampleHandlerBase.

Definition at line 229 of file samples.cpp.

229  {
230  PYBIND11_OVERRIDE_PURE(
231  int, /* Return type */
232  SampleHandlerBase, /* Parent class */
233  GetNDim, /* Name of function in C++ */
234  Sample
235  );
236  }
int GetNDim(const int Sample) const override
DB Function to differentiate 1D or 2D binning.
Definition: samples.cpp:229

◆ GetNOscChannels()

int PySampleHandlerBase::GetNOscChannels ( const int  iSample) const
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 35 of file samples.cpp.

35  {
36  PYBIND11_OVERRIDE_PURE(
37  int, /* Return type */
38  SampleHandlerBase, /* Parent class */
39  GetNOscChannels, /* Name of function in C++ (must match Python name) */
40  iSample /* Argument(s) */
41  );
42  }
int GetNOscChannels(const int iSample) const override
Definition: samples.cpp:35

◆ GetSampleLikelihood()

double PySampleHandlerBase::GetSampleLikelihood ( const int  iSample) const
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 56 of file samples.cpp.

56  {
57  PYBIND11_OVERRIDE_PURE_NAME(
58  double, /* Return type */
59  SampleHandlerBase, /* Parent class */
60  "get_sample_likelihood",
61  GetSampleLikelihood, /* Name of function in C++ (must match Python name) */
62  iSample /* Argument(s) */
63  );
64  }
double GetSampleLikelihood(const int iSample) const override
Definition: samples.cpp:56

◆ GetSampleTitle()

std::string PySampleHandlerBase::GetSampleTitle ( const int  iSample) const
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 25 of file samples.cpp.

25  {
26  PYBIND11_OVERRIDE_PURE(
27  std::string, /* Return type */
28  SampleHandlerBase, /* Parent class */
29  GetSampleTitle, /* Name of function in C++ (must match Python name) */
30  iSample /* Argument(s) */
31  );
32  }
std::string GetSampleTitle(const int iSample) const override
Definition: samples.cpp:25

◆ GetW2Hist()

TH1* PySampleHandlerBase::GetW2Hist ( const int  Sample)
inlineoverridevirtual

Get W2 histogram.

Implements SampleHandlerBase.

Definition at line 126 of file samples.cpp.

126  {
127  PYBIND11_OVERRIDE_PURE(
128  TH1*, /* Return type */
129  SampleHandlerBase, /* Parent class */
130  GetW2Hist, /* Name of function in C++ (must match Python name) */
131  Sample /* Argument(s) */
132  );
133  }
TH1 * GetW2Hist(const int Sample) override
Get W2 histogram.
Definition: samples.cpp:126

◆ PrintRates()

void PySampleHandlerBase::PrintRates ( const bool  DataOnly = false)
inlineoverridevirtual

Helper function to print rates for the samples with LLH.

Parameters
DataOnlywhether to print data only rates

Implements SampleHandlerBase.

Definition at line 77 of file samples.cpp.

77  {
78  PYBIND11_OVERRIDE_PURE(
79  void, /* Return type */
80  SampleHandlerBase, /* Parent class */
81  PrintRates, /* Name of function in C++ (must match Python name) */
82  DataOnly /* Argument(s) */
83  );
84  }
void PrintRates(const bool DataOnly=false) override
Helper function to print rates for the samples with LLH.
Definition: samples.cpp:77

◆ ReturnKinematicParameterBinning()

std::vector<double> PySampleHandlerBase::ReturnKinematicParameterBinning ( const int  Sample,
const std::string &  KinematicParameter 
) const
inlineoverridevirtual

Return the binning used to draw a kinematic parameter.

Implements SampleHandlerBase.

Definition at line 98 of file samples.cpp.

98  {
99  PYBIND11_OVERRIDE_PURE(
100  std::vector<double>, /* Return type */
101  SampleHandlerBase, /* Parent class */
102  GetKinVarName, /* Name of function in C++ (must match Python name) */
103  Sample, /* Argument(s) */
104  KinematicParameter /* Argument(s) */
105  );
106  }

◆ Reweight()

void PySampleHandlerBase::Reweight ( )
inlineoverridevirtual

Implements SampleHandlerBase.

Definition at line 45 of file samples.cpp.

45  {
46  PYBIND11_OVERRIDE_PURE_NAME(
47  void, /* Return type */
48  SampleHandlerBase, /* Parent class */
49  "reweight",
50  Reweight /* Name of function in C++ (must match Python name) */
51  );
52  }
void Reweight() override
Definition: samples.cpp:45

◆ SampleHandlerBase()

SampleHandlerBase::SampleHandlerBase

The main constructor.

Definition at line 30 of file SampleHandlerBase.cpp.

4  {
5 // ***************************************************************************
6  nEvents = 0;
7  nSamples = 0;
8 }
M3::int_t nSamples
Contains how many samples we've got.
unsigned int nEvents
Number of MC events are there.

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