Belle II Software  release-08-01-10
NoKickCuts.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #include <TObject.h>
10 
11 #pragma once
12 
13 
14 namespace Belle2 {
25  class NoKickCuts: public TObject {
26 
27  public:
30 
32  explicit NoKickCuts(std::string m_fileName)
33  {
34  if (m_fileName.size() != 0) FillCuts(m_fileName); //else cuts not applied
35  }
36 
38  enum EMinMax {
39  c_Min,
40  c_Max
41  };
42 
44  enum EParameters {
45  c_Omega,
46  c_D0,
47  c_Phi0,
48  c_Z0,
49  c_Tanlambda
50  };
51 
53  enum ECutName {
54  c_Norm,
55  c_Pow,
56  c_Bkg
57  };
58 
67  std::vector<double> cutSelector(double sintheta, double momentum, int layer1, int layer2, EParameters par);
68 
69  /* This methods select the cuts as function parameters from TH3F cointained
70  * in cutfile in function of track parameter and layer only. EMinMax represent
71  * if you want the maximum or minimum cut, instead ECutName are the three
72  * parameters of the theta-p parametrization of the cuts (see the enum type)
73  * input: (first layer, second layer, track parameter, min/max value, fit parameter)
74  * output: (value of the fit parameter of a specific cut)
75  */
76  double getCut(int layer1, int layer2, EParameters par, EMinMax m, ECutName cut);
77 
82  void FillCuts(std::string m_fileName);
83 
84  private:
85  std::vector<std::vector <std::vector<std::vector <double>>>> m_cutNorm;
86  std::vector<std::vector <std::vector<std::vector <double>>>> m_cutPow;
87  std::vector<std::vector <std::vector<std::vector <double>>>> m_cutBkg;
89  int m_nbinpar = 5;
90  int m_nbinlay = 7;
94  };
96 }
This class is an auxiliary class that implement methods to access to a single cut,...
Definition: NoKickCuts.h:25
std::vector< std::vector< std::vector< std::vector< double > > > > m_cutPow
matrix of fit-parameter of cut, power
Definition: NoKickCuts.h:86
NoKickCuts()
constructor of the class without arguments, used in cuts evaluations
Definition: NoKickCuts.h:29
void FillCuts(std::string m_fileName)
This method fill the cuts (used in NoKickCutsEval method) to create the cutfile.
Definition: NoKickCuts.cc:59
double getCut(int layer1, int layer2, EParameters par, EMinMax m, ECutName cut)
Definition: NoKickCuts.cc:30
EParameters
enum for parameters name
Definition: NoKickCuts.h:44
int m_nbinpar
number of track parameter
Definition: NoKickCuts.h:89
ECutName
enum for the cuts name
Definition: NoKickCuts.h:53
EMinMax
enum for minimum/maximum value of cuts
Definition: NoKickCuts.h:38
int m_nbinlay
number of layers (IP too)
Definition: NoKickCuts.h:90
NoKickCuts(std::string m_fileName)
constructor with name of the CutFile, used in cuts application
Definition: NoKickCuts.h:32
std::vector< std::vector< std::vector< std::vector< double > > > > m_cutNorm
matrix of fit-parameter of cut, norm
Definition: NoKickCuts.h:85
std::vector< std::vector< std::vector< std::vector< double > > > > m_cutBkg
matrix of fit-parameter of cut, constant
Definition: NoKickCuts.h:87
ClassDef(NoKickCuts, 1)
Making this class a ROOT class.
std::vector< double > cutSelector(double sintheta, double momentum, int layer1, int layer2, EParameters par)
This methods selects 2 cuts (minimum and maximum inside a vector) from the information of theta,...
Definition: NoKickCuts.cc:18
Abstract base class for different kinds of events.