Belle II Software  release-05-02-19
TimeWalkCalibration.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: CDC Group *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <framework/logging/Logger.h>
14 
15 #include <TH1D.h>
16 #include <TH2D.h>
17 #include "string"
18 
19 namespace Belle2 {
24  namespace CDC {
29  class TimeWalkCalibration {
30  public:
34  virtual ~TimeWalkCalibration() {}
36  virtual void setUseDB(bool useDB) {m_useDB = useDB; }
38  virtual void setStoreHisto(bool storeHist) {m_storeHisto = storeHist;}
40  virtual void setMinimumNDF(double minndf) {m_ndfmin = minndf;}
42  virtual void setMinimumPval(double minPval) {m_Pvalmin = minPval;}
44  virtual void InputFileNames(std::string inputname) {m_InputRootFileName.assign(inputname);}
46  virtual void InputTWFileName(std::string tw_name) {m_InputTWFileName.assign(tw_name);}
48  virtual void OutputTWFileName(std::string tw_out_name) {m_outputTWFileName.assign(tw_out_name);}
50  virtual void OutputT0FileName(std::string t0_out_name) {m_outputT0FileName.assign(t0_out_name);}
52  virtual void setMode(unsigned short mode)
53  {
55  if (mode == 0)
57  else if (mode == 1)
59  else
60  B2FATAL("Mode hasn't implemented yet");
61  }
63  virtual void execute()
64  {
65  calibrate();
66  }
67 
68  protected:
70  virtual bool calibrate();
72  virtual void CreateHisto();
74  virtual void Write();
76  virtual void updateT0();
78  virtual void readTW();
80  virtual void fitToExponentialFunc(TH1D* h1);
81 
82  private:
83  TH1D* m_h1[300];
84  TH2D* m_h2[300];
86  double m_xmin = 0.07;
87  double m_ndfmin = 20;
88  double m_Pvalmin = 0.;
89  // double m_oldTW[300][2] = {{0.}}; /**< Time Walk params of previous iteration*/
90  // double m_tw[300][3] = {{0.}}; /**< Time Walk params, result after fitting*
91  double m_constTerm[300] = {0.};
92  std::vector<float> m_tw_old[300];
93  std::vector<float> m_tw_new[300];
94  bool m_storeHisto = true;
95  bool m_useDB = false;
96  unsigned short m_flag[300];
97  std::string m_InputTWFileName = "tw.dat";
98  std::string m_InputT0FileName = "t0.dat";
99  std::string m_outputTWFileName = "tw_new.dat";
100  std::string m_outputT0FileName = "t0.dat";
101  std::string m_InputRootFileName = "rootfile/output*";
103  int m_firstRun = 0;
104  int m_lastExperiment = -1;
105  int m_lastRun = -1;
106  unsigned short m_twParamMode_old;
107  unsigned short m_twParamMode_new = 1;
108  unsigned short m_nTwParams_new = 2;
109  unsigned short m_nTwParams_old;
110  };
111  }//namespace CDC
113 } // namespace Belle2
114 
Belle2::CDC::TimeWalkCalibration::OutputTWFileName
virtual void OutputTWFileName(std::string tw_out_name)
output tw file name, for text mode
Definition: TimeWalkCalibration.h:56
Belle2::CDC::TimeWalkCalibration::m_InputTWFileName
std::string m_InputTWFileName
Old tw file name.
Definition: TimeWalkCalibration.h:105
Belle2::CDC::TimeWalkCalibration::readTW
virtual void readTW()
read tw from database
Definition: TimeWalkCalibration.cc:293
Belle2::CDC::TimeWalkCalibration::m_tw_old
std::vector< float > m_tw_old[300]
tw list old.
Definition: TimeWalkCalibration.h:100
Belle2::CDC::TimeWalkCalibration::m_outputTWFileName
std::string m_outputTWFileName
Output tw file name for time walk.
Definition: TimeWalkCalibration.h:107
Belle2::CDC::TimeWalkCalibration::m_twParamMode_new
unsigned short m_twParamMode_new
=0 for P0/Sqrt(ADC); =1 for P0*Exp(-P1*ADC).
Definition: TimeWalkCalibration.h:115
Belle2::CDC::TimeWalkCalibration::setMinimumNDF
virtual void setMinimumNDF(double minndf)
minimum number of degree freedom requirement for track
Definition: TimeWalkCalibration.h:48
Belle2::CDC::TimeWalkCalibration::m_h2
TH2D * m_h2[300]
2D histogram of residual vs ADC for each board
Definition: TimeWalkCalibration.h:92
Belle2::CDC::TimeWalkCalibration::execute
virtual void execute()
function to run algorithm
Definition: TimeWalkCalibration.h:71
Belle2::CDC::TimeWalkCalibration::m_firstExperiment
int m_firstExperiment
First experiment.
Definition: TimeWalkCalibration.h:110
Belle2::CDC::TimeWalkCalibration::InputFileNames
virtual void InputFileNames(std::string inputname)
input root file names, output of collector
Definition: TimeWalkCalibration.h:52
Belle2::CDC::TimeWalkCalibration::OutputT0FileName
virtual void OutputT0FileName(std::string t0_out_name)
output t0 file name, for text mode
Definition: TimeWalkCalibration.h:58
Belle2::CDC::TimeWalkCalibration::m_tw_new
std::vector< float > m_tw_new[300]
tw list new.
Definition: TimeWalkCalibration.h:101
Belle2::CDC::TimeWalkCalibration::m_InputT0FileName
std::string m_InputT0FileName
Old t0 file name.
Definition: TimeWalkCalibration.h:106
Belle2::CDC::TimeWalkCalibration::m_lastExperiment
int m_lastExperiment
Last experiment.
Definition: TimeWalkCalibration.h:112
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDC::TimeWalkCalibration::InputTWFileName
virtual void InputTWFileName(std::string tw_name)
Input tw file name, incase use text mode.
Definition: TimeWalkCalibration.h:54
Belle2::CDC::TimeWalkCalibration::m_storeHisto
bool m_storeHisto
Store all Histogram or not.
Definition: TimeWalkCalibration.h:102
Belle2::CDC::TimeWalkCalibration::setStoreHisto
virtual void setStoreHisto(bool storeHist)
Store Histogram or not.
Definition: TimeWalkCalibration.h:46
Belle2::CDC::TimeWalkCalibration::m_firstRun
int m_firstRun
First run.
Definition: TimeWalkCalibration.h:111
Belle2::CDC::TimeWalkCalibration::m_xmin
double m_xmin
minimum value cut of drift length.
Definition: TimeWalkCalibration.h:94
Belle2::CDC::TimeWalkCalibration::m_h1
TH1D * m_h1[300]
Mean of residual as function of ADC of each board.
Definition: TimeWalkCalibration.h:91
Belle2::CDC::TimeWalkCalibration::updateT0
virtual void updateT0()
update constant term to t0 database.
Definition: TimeWalkCalibration.cc:223
Belle2::CDC::TimeWalkCalibration::CreateHisto
virtual void CreateHisto()
Create histo for calibrate.
Definition: TimeWalkCalibration.cc:25
Belle2::CDC::TimeWalkCalibration::m_constTerm
double m_constTerm[300]
const term in fitting, it will be added to T0 instead tw
Definition: TimeWalkCalibration.h:99
Belle2::CDC::TimeWalkCalibration::setUseDB
virtual void setUseDB(bool useDB)
setting for use database or text mode
Definition: TimeWalkCalibration.h:44
Belle2::CDC::TimeWalkCalibration::setMinimumPval
virtual void setMinimumPval(double minPval)
minimum chi2 prob requirement for track
Definition: TimeWalkCalibration.h:50
Belle2::CDC::TimeWalkCalibration::~TimeWalkCalibration
virtual ~TimeWalkCalibration()
Destructor.
Definition: TimeWalkCalibration.h:42
Belle2::CDC::TimeWalkCalibration::m_lastRun
int m_lastRun
Last run.
Definition: TimeWalkCalibration.h:113
Belle2::CDC::TimeWalkCalibration::m_InputRootFileName
std::string m_InputRootFileName
root input file name.
Definition: TimeWalkCalibration.h:109
Belle2::CDC::TimeWalkCalibration::Write
virtual void Write()
save calibration
Definition: TimeWalkCalibration.cc:187
Belle2::CDC::TimeWalkCalibration::m_useDB
bool m_useDB
flag to switch btw text mode and database.
Definition: TimeWalkCalibration.h:103
Belle2::CDC::TimeWalkCalibration::TimeWalkCalibration
TimeWalkCalibration()
Constructor.
Definition: TimeWalkCalibration.cc:21
Belle2::CDC::TimeWalkCalibration::fitToExponentialFunc
virtual void fitToExponentialFunc(TH1D *h1)
fit tw histogram
Definition: TimeWalkCalibration.cc:256
Belle2::CDC::TimeWalkCalibration::m_nTwParams_new
unsigned short m_nTwParams_new
No.
Definition: TimeWalkCalibration.h:116
Belle2::CDC::TimeWalkCalibration::m_flag
unsigned short m_flag[300]
flag for fit status
Definition: TimeWalkCalibration.h:104
Belle2::CDC::TimeWalkCalibration::calibrate
virtual bool calibrate()
Run algorithm.
Definition: TimeWalkCalibration.cc:88
Belle2::CDC::TimeWalkCalibration::m_twParamMode_old
unsigned short m_twParamMode_old
=0 for P0/Sqrt(ADC); =1 for P0*Exp(-P1*ADC).
Definition: TimeWalkCalibration.h:114
Belle2::CDC::TimeWalkCalibration::setMode
virtual void setMode(unsigned short mode)
Set time walk mode.
Definition: TimeWalkCalibration.h:60
Belle2::CDC::TimeWalkCalibration::m_ndfmin
double m_ndfmin
minimum number of degree of freedom required for track.
Definition: TimeWalkCalibration.h:95
Belle2::CDC::TimeWalkCalibration::m_outputT0FileName
std::string m_outputT0FileName
Output tw file name for time walk.
Definition: TimeWalkCalibration.h:108
Belle2::CDC::TimeWalkCalibration::m_nTwParams_old
unsigned short m_nTwParams_old
No.
Definition: TimeWalkCalibration.h:117
Belle2::CDC::TimeWalkCalibration::m_Pvalmin
double m_Pvalmin
minimum number of Prob(chi2) of fitted track.
Definition: TimeWalkCalibration.h:96