Belle II Software  release-05-02-19
TimeWalkCalibrationAlgorithm.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Makoto Uchida *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 #include <calibration/CalibrationAlgorithm.h>
13 #include <cdc/dbobjects/CDCGeometry.h>
14 #include <framework/database/DBObjPtr.h>
15 #include <TH1D.h>
16 #include <TH2D.h>
17 #include "string"
18 
19 namespace Belle2 {
24  namespace CDC {
29  class TimeWalkCalibrationAlgorithm : public CalibrationAlgorithm {
30  public:
33 
36 
38  void setDebug(bool debug) {m_debug = debug; }
39 
42 
44  void setMinimumNDF(double ndf) {m_minNdf = ndf;}
45 
47  void setMinimumPval(double pval) {m_minPval = pval;}
48 
50  void enableTextOutput(bool output = true) {m_textOutput = output;}
51 
53  void outputTWFileName(std::string tw_out_name) {m_outputTWFileName.assign(tw_out_name);}
55  void outputT0FileName(std::string t0_out_name) {m_outputT0FileName.assign(t0_out_name);}
56 
58  void setHistFileName(const std::string& name) {m_histName = "histTW_" + name + ".root";}
59 
61  void setMode(unsigned short mode)
62  {
63  m_twParamMode = mode;
64  if (mode == 0)
65  m_nTwParams = 1;
66  else if (mode == 1)
67  m_nTwParams = 2;
68  else
69  B2FATAL("Mode hasn't implemented yet");
70  }
71 
72  protected:
74  EResult calibrate() override;
75 
77  void createHisto();
78 
80  void write();
81 
83  void updateT0();
84 
86  void fitToExponentialFunc(TH1D* h1);
87 
89  void prepare();
90 
93 
95  void storeHist();
96 
97  private:
98 
99  TH1D* m_h1[300];
100  TH2D* m_h2[300];
102  double m_xmin = 0.07;
103  double m_minNdf = 20;
104  double m_minPval = 0.;
105  double m_constTerm[300] = {0.};
106  unsigned short m_flag[300] = {0};
107  std::vector<float> m_tw_old[300];
108  std::vector<float> m_tw_new[300];
109  bool m_storeHisto = true;
110  std::string m_inputTWFileName = "tw.dat";
111  std::string m_inputT0FileName = "t0.dat";
112  std::string m_outputTWFileName = "tw_new.dat";
113  std::string m_outputT0FileName = "t0_new.dat";
114  std::string m_histName = "histTW.root";
115  bool m_debug = false;
116  bool m_textOutput = false;
117  unsigned short m_twParamMode = 1;
118  unsigned short m_nTwParams = 2;
120  };
121  }
123 }
124 
Belle2::CDC::TimeWalkCalibrationAlgorithm::setDebug
void setDebug(bool debug)
change flag for debug
Definition: TimeWalkCalibrationAlgorithm.h:46
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_outputT0FileName
std::string m_outputT0FileName
t0 file name after calibration.
Definition: TimeWalkCalibrationAlgorithm.h:121
Belle2::CDC::TimeWalkCalibrationAlgorithm::setMinimumNDF
void setMinimumNDF(double ndf)
minimum number of degree freedom requirement for track
Definition: TimeWalkCalibrationAlgorithm.h:52
Belle2::CDC::TimeWalkCalibrationAlgorithm::prepare
void prepare()
prepare calibration.
Definition: TimeWalkCalibrationAlgorithm.cc:282
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_constTerm
double m_constTerm[300]
const term in fitting, it will be added to T0 instead tw
Definition: TimeWalkCalibrationAlgorithm.h:113
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_cdcGeo
DBObjPtr< CDCGeometry > m_cdcGeo
Geometry of CDC.
Definition: TimeWalkCalibrationAlgorithm.h:127
Belle2::CDC::TimeWalkCalibrationAlgorithm::setHistFileName
void setHistFileName(const std::string &name)
Set name for histogram output.
Definition: TimeWalkCalibrationAlgorithm.h:66
Belle2::CDC::TimeWalkCalibrationAlgorithm::checkConvergence
EResult checkConvergence()
check convergence.
Definition: TimeWalkCalibrationAlgorithm.cc:231
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_h1
TH1D * m_h1[300]
Mean of residual as function of ADC of each board.
Definition: TimeWalkCalibrationAlgorithm.h:107
Belle2::CDC::TimeWalkCalibrationAlgorithm::calibrate
EResult calibrate() override
Run algo on data.
Definition: TimeWalkCalibrationAlgorithm.cc:98
Belle2::CDC::TimeWalkCalibrationAlgorithm::setStoreHisto
void setStoreHisto(bool storeHist)
Store Histogram or not.
Definition: TimeWalkCalibrationAlgorithm.h:49
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_inputTWFileName
std::string m_inputTWFileName
Old tw file name.
Definition: TimeWalkCalibrationAlgorithm.h:118
Belle2::CDC::TimeWalkCalibrationAlgorithm::TimeWalkCalibrationAlgorithm
TimeWalkCalibrationAlgorithm()
Constructor.
Definition: TimeWalkCalibrationAlgorithm.cc:29
Belle2::CDC::TimeWalkCalibrationAlgorithm::updateT0
void updateT0()
update constant term to t0 database.
Definition: TimeWalkCalibrationAlgorithm.cc:301
Belle2::CDC::TimeWalkCalibrationAlgorithm::fitToExponentialFunc
void fitToExponentialFunc(TH1D *h1)
fit tw histogram
Definition: TimeWalkCalibrationAlgorithm.cc:326
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_debug
bool m_debug
run debug or not.
Definition: TimeWalkCalibrationAlgorithm.h:123
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_minNdf
double m_minNdf
minimum number of degree of freedom required for track.
Definition: TimeWalkCalibrationAlgorithm.h:111
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_twParamMode
unsigned short m_twParamMode
=0 for P0/Sqrt(ADC); =1 for P0*Exp(-P1*ADC).
Definition: TimeWalkCalibrationAlgorithm.h:125
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_nTwParams
unsigned short m_nTwParams
No.
Definition: TimeWalkCalibrationAlgorithm.h:126
Belle2::CDC::TimeWalkCalibrationAlgorithm::setMinimumPval
void setMinimumPval(double pval)
minimum chi2 prob requirement for track
Definition: TimeWalkCalibrationAlgorithm.h:55
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_textOutput
bool m_textOutput
output text file if true
Definition: TimeWalkCalibrationAlgorithm.h:124
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_outputTWFileName
std::string m_outputTWFileName
tw file name after calibration.
Definition: TimeWalkCalibrationAlgorithm.h:120
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_inputT0FileName
std::string m_inputT0FileName
Old t0 file name.
Definition: TimeWalkCalibrationAlgorithm.h:119
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_storeHisto
bool m_storeHisto
Store all Histogram or not.
Definition: TimeWalkCalibrationAlgorithm.h:117
Belle2::CalibrationAlgorithm::EResult
EResult
The result of calibration.
Definition: CalibrationAlgorithm.h:50
Belle2::CDC::TimeWalkCalibrationAlgorithm::enableTextOutput
void enableTextOutput(bool output=true)
Enable text output of calibration result.
Definition: TimeWalkCalibrationAlgorithm.h:58
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_h2
TH2D * m_h2[300]
2D histogram of residual vs ADC for each board.
Definition: TimeWalkCalibrationAlgorithm.h:108
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_histName
std::string m_histName
root file name
Definition: TimeWalkCalibrationAlgorithm.h:122
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_tw_old
std::vector< float > m_tw_old[300]
tw list before calibration.
Definition: TimeWalkCalibrationAlgorithm.h:115
Belle2::CDC::TimeWalkCalibrationAlgorithm::setMode
void setMode(unsigned short mode)
Set time walk mode.
Definition: TimeWalkCalibrationAlgorithm.h:69
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_minPval
double m_minPval
minimum number of Prob(chi2) of fitted track.
Definition: TimeWalkCalibrationAlgorithm.h:112
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_xmin
double m_xmin
minimum value cut of drift length.
Definition: TimeWalkCalibrationAlgorithm.h:110
Belle2::CDC::TimeWalkCalibrationAlgorithm::createHisto
void createHisto()
Create histo for calibrate.
Definition: TimeWalkCalibrationAlgorithm.cc:36
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_flag
unsigned short m_flag[300]
flag for fit status
Definition: TimeWalkCalibrationAlgorithm.h:114
Belle2::CDC::TimeWalkCalibrationAlgorithm::m_tw_new
std::vector< float > m_tw_new[300]
tw list after calibration.
Definition: TimeWalkCalibrationAlgorithm.h:116
Belle2::CDC::TimeWalkCalibrationAlgorithm::outputT0FileName
void outputT0FileName(std::string t0_out_name)
output t0 file name, for text mode
Definition: TimeWalkCalibrationAlgorithm.h:63
Belle2::CDC::TimeWalkCalibrationAlgorithm::~TimeWalkCalibrationAlgorithm
~TimeWalkCalibrationAlgorithm()
Destructor.
Definition: TimeWalkCalibrationAlgorithm.h:43
Belle2::CDC::TimeWalkCalibrationAlgorithm::storeHist
void storeHist()
Store histograms.
Definition: TimeWalkCalibrationAlgorithm.cc:191
Belle2::CDC::TimeWalkCalibrationAlgorithm::outputTWFileName
void outputTWFileName(std::string tw_out_name)
output tw file name, for text mode
Definition: TimeWalkCalibrationAlgorithm.h:61
Belle2::CDC::TimeWalkCalibrationAlgorithm::write
void write()
save calibration.
Definition: TimeWalkCalibrationAlgorithm.cc:251