Belle II Software  release-05-02-19
KLMStripEfficiencyAlgorithm.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2019 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Vitaliy Popov, Dmytro Minchenko *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 /* KLM headers. */
14 #include <klm/dataobjects/KLMElementNumbers.h>
15 #include <klm/dataobjects/KLMPlaneArrayIndex.h>
16 #include <klm/dbobjects/KLMStripEfficiency.h>
17 
18 /* Belle 2 headers. */
19 #include <calibration/CalibrationAlgorithm.h>
20 
21 namespace Belle2 {
30  class KLMStripEfficiencyAlgorithm : public CalibrationAlgorithm {
31 
32  public:
33 
37  enum CalibrationStage {
38 
41 
44 
45  };
46 
51  class Results {
52 
53  friend class KLMStripEfficiencyAlgorithm;
54 
55  public:
56 
60  Results();
61 
65  Results(const Results& results);
66 
70  ~Results();
71 
75  float getAchievedPrecision() const
76  {
77  return m_AchievedPrecision;
78  }
79 
83  int getMatchedDigits() const
84  {
85  return m_MatchedDigits;
86  }
87 
91  float* getEfficiency() const
92  {
93  return m_Efficiency;
94  }
95 
99  int getExtHits() const
100  {
101  return m_ExtHits;
102  }
103 
107  int* getExtHitsPlane() const
108  {
109  return m_ExtHitsPlane;
110  }
111 
116  int newMeasuredPlanes(float* efficiency) const;
117 
122  int newExtHitsPlanes(int* extHitsPlane) const;
123 
124  private:
125 
127  float m_AchievedPrecision = 0;
128 
130  int m_MatchedDigits = 0;
131 
133  float* m_Efficiency = nullptr;
134 
136  int m_ExtHits = 0;
137 
139  int* m_ExtHitsPlane = nullptr;
140 
141  };
142 
147 
152 
157 
162 
167 
171  void setOutputFileName(const char* outputFileName)
172  {
173  m_OutputFileName = outputFileName;
174  }
175 
179  void setForcedCalibration(bool forcedCalibration)
180  {
181  m_ForcedCalibration = forcedCalibration;
182  }
183 
187  void setCalibrationStage(enum CalibrationStage calibrationStage)
188  {
189  m_CalibrationStage = calibrationStage;
190  }
191 
195  void setMinimalExtHits(int minimalExtHits)
196  {
197  m_MinimalExtHits = minimalExtHits;
198  }
199 
203  void setRequestedPrecision(float requestedPrecision)
204  {
205  m_RequestedPrecision = requestedPrecision;
206  }
207 
211  float getRequestedPrecision() const
212  {
213  return m_RequestedPrecision;
214  }
215 
219  const Results* getResults() const
220  {
221  return &m_Results;
222  }
223 
224  private:
225 
227  std::string m_OutputFileName = "TrackMatchedResult.root";
228 
230  bool m_ForcedCalibration = false;
231 
234 
236  int m_MinimalExtHits = 10;
237 
239  float m_RequestedPrecision = 0.02;
240 
243 
246 
249 
252 
253  };
254 
256 }
Belle2::KLMStripEfficiencyAlgorithm::getResults
const Results * getResults() const
Get results.
Definition: KLMStripEfficiencyAlgorithm.h:227
Belle2::KLMStripEfficiencyAlgorithm::m_PlaneArrayIndex
const KLMPlaneArrayIndex * m_PlaneArrayIndex
Plane array index.
Definition: KLMStripEfficiencyAlgorithm.h:253
Belle2::KLMStripEfficiencyAlgorithm::setOutputFileName
void setOutputFileName(const char *outputFileName)
Set output file name.
Definition: KLMStripEfficiencyAlgorithm.h:179
Belle2::KLMStripEfficiencyAlgorithm::Results::m_ExtHits
int m_ExtHits
Number of ExtHits (overall).
Definition: KLMStripEfficiencyAlgorithm.h:144
Belle2::KLMStripEfficiencyAlgorithm::m_OutputFileName
std::string m_OutputFileName
Output root file.
Definition: KLMStripEfficiencyAlgorithm.h:235
Belle2::KLMStripEfficiencyAlgorithm::Results::getEfficiency
float * getEfficiency() const
Get efficiency.
Definition: KLMStripEfficiencyAlgorithm.h:99
Belle2::KLMStripEfficiencyAlgorithm::setMinimalExtHits
void setMinimalExtHits(int minimalExtHits)
Set minimal number of ExtHits.
Definition: KLMStripEfficiencyAlgorithm.h:203
Belle2::KLMStripEfficiencyAlgorithm::Results::~Results
~Results()
Destructor,.
Definition: KLMStripEfficiencyAlgorithm.cc:39
Belle2::KLMStripEfficiencyAlgorithm::setCalibrationStage
void setCalibrationStage(enum CalibrationStage calibrationStage)
Set calibration stage.
Definition: KLMStripEfficiencyAlgorithm.h:195
Belle2::KLMStripEfficiencyAlgorithm::m_MinimalExtHits
int m_MinimalExtHits
Minimal number of ExtHits per plane.
Definition: KLMStripEfficiencyAlgorithm.h:244
Belle2::KLMPlaneArrayIndex
KLM plane array index.
Definition: KLMPlaneArrayIndex.h:33
Belle2::KLMStripEfficiencyAlgorithm::Results::m_MatchedDigits
int m_MatchedDigits
Number of matched digits.
Definition: KLMStripEfficiencyAlgorithm.h:138
Belle2::KLMStripEfficiencyAlgorithm::Results::m_ExtHitsPlane
int * m_ExtHitsPlane
Number of ExtHits per plane.
Definition: KLMStripEfficiencyAlgorithm.h:147
Belle2::KLMStripEfficiencyAlgorithm::m_RequestedPrecision
float m_RequestedPrecision
Requested precision of efficiency measurement.
Definition: KLMStripEfficiencyAlgorithm.h:247
Belle2::KLMStripEfficiencyAlgorithm::CalibrationStage
CalibrationStage
Calibration stage.
Definition: KLMStripEfficiencyAlgorithm.h:45
Belle2::KLMStripEfficiency
DBObject used to store the efficiencies of KLM strips.
Definition: KLMStripEfficiency.h:41
Belle2::KLMStripEfficiencyAlgorithm::Results::getMatchedDigits
int getMatchedDigits() const
Get number of matched digits.
Definition: KLMStripEfficiencyAlgorithm.h:91
Belle2::KLMStripEfficiencyAlgorithm::Results::getExtHitsPlane
int * getExtHitsPlane() const
Get number of ExtHits per plane.
Definition: KLMStripEfficiencyAlgorithm.h:115
Belle2::KLMStripEfficiencyAlgorithm::Results::Results
Results()
Constructor.
Definition: KLMStripEfficiencyAlgorithm.cc:23
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::KLMStripEfficiencyAlgorithm::getRequestedPrecision
float getRequestedPrecision() const
Get requested precision of efficiency measurement.
Definition: KLMStripEfficiencyAlgorithm.h:219
Belle2::KLMStripEfficiencyAlgorithm::m_ForcedCalibration
bool m_ForcedCalibration
Whether the calibration is forced.
Definition: KLMStripEfficiencyAlgorithm.h:238
Belle2::KLMStripEfficiencyAlgorithm
KLM channel status calibration algorithm.
Definition: KLMStripEfficiencyAlgorithm.h:38
Belle2::KLMStripEfficiencyAlgorithm::operator=
KLMStripEfficiencyAlgorithm & operator=(const KLMStripEfficiencyAlgorithm &)=delete
Operator = (disabled).
Belle2::KLMStripEfficiencyAlgorithm::m_ElementNumbers
const KLMElementNumbers * m_ElementNumbers
Element numbers.
Definition: KLMStripEfficiencyAlgorithm.h:250
Belle2::KLMStripEfficiencyAlgorithm::Results::newMeasuredPlanes
int newMeasuredPlanes(float *efficiency) const
Get number of new measured planes.
Definition: KLMStripEfficiencyAlgorithm.cc:163
Belle2::KLMStripEfficiencyAlgorithm::Results::m_Efficiency
float * m_Efficiency
Efficiency.
Definition: KLMStripEfficiencyAlgorithm.h:141
Belle2::KLMStripEfficiencyAlgorithm::m_CalibrationStage
enum CalibrationStage m_CalibrationStage
Calibration stage.
Definition: KLMStripEfficiencyAlgorithm.h:241
Belle2::CalibrationAlgorithm::EResult
EResult
The result of calibration.
Definition: CalibrationAlgorithm.h:50
Belle2::KLMStripEfficiencyAlgorithm::c_EfficiencyMeasurement
@ c_EfficiencyMeasurement
Measurement.
Definition: KLMStripEfficiencyAlgorithm.h:51
Belle2::KLMStripEfficiencyAlgorithm::~KLMStripEfficiencyAlgorithm
~KLMStripEfficiencyAlgorithm()
Destructor.
Definition: KLMStripEfficiencyAlgorithm.cc:58
Belle2::KLMStripEfficiencyAlgorithm::setRequestedPrecision
void setRequestedPrecision(float requestedPrecision)
Set requested precision of efficiency measurement.
Definition: KLMStripEfficiencyAlgorithm.h:211
Belle2::KLMStripEfficiencyAlgorithm::calibrate
CalibrationAlgorithm::EResult calibrate() override
Calibration.
Definition: KLMStripEfficiencyAlgorithm.cc:64
Belle2::KLMStripEfficiencyAlgorithm::Results
Calibration results or supplementary results calculated from the input data.
Definition: KLMStripEfficiencyAlgorithm.h:59
Belle2::KLMStripEfficiencyAlgorithm::Results::newExtHitsPlanes
int newExtHitsPlanes(int *extHitsPlane) const
Get number of new measured planes with ExtHits.
Definition: KLMStripEfficiencyAlgorithm.cc:175
Belle2::KLMStripEfficiencyAlgorithm::Results::getAchievedPrecision
float getAchievedPrecision() const
Get achieved precision of efficiency measurement (the worst one).
Definition: KLMStripEfficiencyAlgorithm.h:83
Belle2::KLMElementNumbers
KLM element numbers.
Definition: KLMElementNumbers.h:37
Belle2::KLMStripEfficiencyAlgorithm::m_StripEfficiency
KLMStripEfficiency * m_StripEfficiency
Efficiency data object.
Definition: KLMStripEfficiencyAlgorithm.h:259
Belle2::KLMStripEfficiencyAlgorithm::Results::m_AchievedPrecision
float m_AchievedPrecision
Achieved precision of efficiency measurement.
Definition: KLMStripEfficiencyAlgorithm.h:135
Belle2::KLMStripEfficiencyAlgorithm::Results::getExtHits
int getExtHits() const
Get total number of ExtHits.
Definition: KLMStripEfficiencyAlgorithm.h:107
Belle2::KLMStripEfficiencyAlgorithm::setForcedCalibration
void setForcedCalibration(bool forcedCalibration)
Set whether the calibration is forced.
Definition: KLMStripEfficiencyAlgorithm.h:187
Belle2::KLMStripEfficiencyAlgorithm::KLMStripEfficiencyAlgorithm
KLMStripEfficiencyAlgorithm()
Constructor.
Definition: KLMStripEfficiencyAlgorithm.cc:47
Belle2::KLMStripEfficiencyAlgorithm::c_MeasurablePlaneCheck
@ c_MeasurablePlaneCheck
Check of set of planes with determined efficiency.
Definition: KLMStripEfficiencyAlgorithm.h:48
Belle2::KLMStripEfficiencyAlgorithm::m_Results
Results m_Results
Calibration results.
Definition: KLMStripEfficiencyAlgorithm.h:256