Belle II Software  release-05-02-19
SpaceResolutionCalibration.h
1 #include <TH1F.h>
2 #include <TH2F.h>
3 #include <TGraphErrors.h>
4 #include <TF1.h>
5 #include <framework/database/DBObjPtr.h>
6 #include <cdc/dbobjects/CDCSpaceResols.h>
7 
8 namespace Belle2 {
13  namespace CDC {
14 
19  // typedef std::array<float, 3> array3; /**< angle bin info. */
20  public:
26  virtual void setDebug(bool debug = false) {m_debug = debug; }
28  virtual void setUseDB(bool useDB = false) {m_useDB = useDB; }
30  virtual void setMinimumNDF(double minndf) {m_ndfmin = minndf;}
32  virtual void setMinimumPval(double minPval) {m_Pvalmin = minPval;}
34  virtual void setBinWidth(double bw) {m_binWidth = bw;}
36  virtual void BField(bool bfield) {m_BField = bfield;}
38  virtual void inputFileNames(std::string inputname)
39  {
40  m_inputRootFileNames.assign(inputname);
41  }
43  virtual void setStoreHisto(bool storeHist = false) {m_storeHisto = storeHist;}
45  virtual void ProfileFileNames(std::string profileFileName)
46  {
47  m_ProfileFileName.assign(profileFileName);
48  }
51  {
53  }
55  virtual void setSigmaFileName(std::string name) {m_sigmafile.assign(name);}
56  // virtual void setMode(unsigned short mode=1){m_SigmaParamMode = mode;}
58  void execute()
59  {
60  calibrate();
61  }
62 
63  protected:
65  virtual bool calibrate();
67  virtual void createHisto();
69  virtual void readProfile();
71  virtual void readSigma();
73  virtual void readSigmaFromDB();
75  virtual void readSigmaFromText();
77  virtual void storeHisto();
79  virtual void write();
80 
81  private:
82  static const int Max_nalpha = 18;
83  static const int Max_ntheta = 7;
84  static const unsigned short Max_np = 40;
86  double m_ndfmin = 5;
87  double m_Pvalmin = 0.;
88  double m_binWidth = 0.05;
89  bool m_debug = false;
90  bool m_draw = false;
91  bool m_storeHisto = false;
92  bool m_useDB = false;
94  bool m_BField = true;
95  // bool m_LRseparate = true;
96  double sigma_old[56][2][18][7][8];
97  double sigma_new[56][2][18][7][8];
98  TF1* ffit[56][2][18][7];
99  TGraphErrors* gfit[56][2][18][7];
100  TGraphErrors* gr[56][2][18][7];
101  TH2F* hist_b[56][2][Max_nalpha][Max_ntheta];
102  TH2F* hist_u[56][2][Max_nalpha][Max_ntheta];
103  TH1F* hu_m[56][2][Max_nalpha][Max_ntheta];
104  TH1F* hu_s[56][2][Max_nalpha][Max_ntheta];
105  TH1F* hb_m[56][2][Max_nalpha][Max_ntheta];
106  TH1F* hb_s[56][2][Max_nalpha][Max_ntheta];
107  int m_fitflag[56][2][Max_nalpha][Max_ntheta] = {{{{0}}}} ;
109  std::string m_outputSigmaFileName = "sigma_new.dat";
110  std::string m_inputRootFileNames = "rootfile/output*";
111  std::string m_ProfileFileName = "sigma_profile";
113  std::string m_sigmafile = "cdc/data/sigma.dat";
117  int m_lastRun;
119  int m_nalpha;
120  int m_ntheta;
121  double l_alpha[18];
122  double u_alpha[18];
123  double ialpha[18];
124  double l_theta[7];
125  double u_theta[7];
126  double itheta[7];
131  double l_alpha_old[18];
132  double u_alpha_old[18];
133  double ialpha_old[18];
134  double l_theta_old[7];
135  double u_theta_old[7];
136  double itheta_old[7];
138  unsigned short m_sigmaParamMode_old;
139  unsigned short m_sigmaParamMode = 1;
144  double getUpperBoundaryForFit(TGraphErrors* graph)
145  {
146  double ymax = 0;
147  double xmax = 0;
148  int imax = 0;
149  double x, y;
150  int unCount = floor(0.05 / m_binWidth);
151  int N = graph->GetN();
152  int Nstart = floor(0.5 * (N - unCount));
153  int Nend = N - unCount;
154  for (int i = Nstart; i < Nend; ++i) {
155  graph->GetPoint(i, x, y);
156  if (graph->GetErrorY(i) > 0.06E-3) continue;
157  if (y > ymax) {
158  xmax = x; ymax = y;
159  imax = i;
160  }
161  }
162  if (imax <= Nstart) {
163  graph->GetPoint(Nend, x, y);
164  xmax = x;
165  }
166  return xmax;
167  }
168 
169  };
170  }
172 }
Belle2::CDC::SpaceResolutionCalibration::hist_u
TH2F * hist_u[56][2][Max_nalpha][Max_ntheta]
2D histogram of unbiased residual
Definition: SpaceResolutionCalibration.h:102
Belle2::CDC::SpaceResolutionCalibration::execute
void execute()
execute all, make the interface the same as CAF
Definition: SpaceResolutionCalibration.h:58
Belle2::CDC::SpaceResolutionCalibration::Max_np
static const unsigned short Max_np
Maximum number of point =1/binwidth.
Definition: SpaceResolutionCalibration.h:84
Belle2::CDC::SpaceResolutionCalibration::m_useDB
bool m_useDB
use db or text mode
Definition: SpaceResolutionCalibration.h:92
Belle2::CDC::SpaceResolutionCalibration::createHisto
virtual void createHisto()
create histogram
Definition: SpaceResolutionCalibration.cc:31
Belle2::CDC::SpaceResolutionCalibration::inputFileNames
virtual void inputFileNames(std::string inputname)
Input root file names, results of collector module.
Definition: SpaceResolutionCalibration.h:38
Belle2::CDC::SpaceResolutionCalibration::m_debug
bool m_debug
Debug or not.
Definition: SpaceResolutionCalibration.h:89
Belle2::CDC::SpaceResolutionCalibration::itheta
double itheta[7]
represented alphas of theta bins.
Definition: SpaceResolutionCalibration.h:126
Belle2::CDC::SpaceResolutionCalibration::m_lastExperiment
int m_lastExperiment
Last experiment.
Definition: SpaceResolutionCalibration.h:116
Belle2::CDC::SpaceResolutionCalibration::m_storeHisto
bool m_storeHisto
Store histogram or not.
Definition: SpaceResolutionCalibration.h:91
Belle2::CDC::SpaceResolutionCalibration::m_useProfileFromInputSigma
bool m_useProfileFromInputSigma
Use binning from old sigma or new one form input.
Definition: SpaceResolutionCalibration.h:93
Belle2::CDC::SpaceResolutionCalibration::hb_m
TH1F * hb_m[56][2][Max_nalpha][Max_ntheta]
mean histogram of unbiased residual
Definition: SpaceResolutionCalibration.h:105
Belle2::CDC::SpaceResolutionCalibration::hu_s
TH1F * hu_s[56][2][Max_nalpha][Max_ntheta]
sigma histogram of biased residual
Definition: SpaceResolutionCalibration.h:104
Belle2::CDC::SpaceResolutionCalibration::m_firstRun
int m_firstRun
First run.
Definition: SpaceResolutionCalibration.h:115
Belle2::CDC::SpaceResolutionCalibration::write
virtual void write()
save calibration, in text file or db
Definition: SpaceResolutionCalibration.cc:399
Belle2::CDC::SpaceResolutionCalibration::hist_b
TH2F * hist_b[56][2][Max_nalpha][Max_ntheta]
2D histogram of biased residual
Definition: SpaceResolutionCalibration.h:101
Belle2::CDC::SpaceResolutionCalibration::l_theta_old
double l_theta_old[7]
Lower boundays of theta bins from input.
Definition: SpaceResolutionCalibration.h:134
Belle2::CDC::SpaceResolutionCalibration::setDebug
virtual void setDebug(bool debug=false)
Debug or not.
Definition: SpaceResolutionCalibration.h:26
Belle2::CDC::SpaceResolutionCalibration::m_ndfmin
double m_ndfmin
Minimum NDF
Definition: SpaceResolutionCalibration.h:86
Belle2::CDC::SpaceResolutionCalibration::Max_nalpha
static const int Max_nalpha
Maximum alpha bin.
Definition: SpaceResolutionCalibration.h:82
Belle2::CDC::SpaceResolutionCalibration::m_BField
bool m_BField
Work with BField, fit range and initial parameters is different incase B and noB.
Definition: SpaceResolutionCalibration.h:94
Belle2::CDC::SpaceResolutionCalibration::sigma_new
double sigma_new[56][2][18][7][8]
new sigma prameters.
Definition: SpaceResolutionCalibration.h:97
Belle2::CDC::SpaceResolutionCalibration::ProfileFileNames
virtual void ProfileFileNames(std::string profileFileName)
File name describe theta/alpha bin, if don't want to use default from input sigma.
Definition: SpaceResolutionCalibration.h:45
Belle2::CDC::SpaceResolutionCalibration::ntheta_old
int ntheta_old
number of theta bins from input
Definition: SpaceResolutionCalibration.h:130
Belle2::CDC::SpaceResolutionCalibration::m_fitflag
int m_fitflag[56][2][Max_nalpha][Max_ntheta]
Fit flag; 1:OK ; 0:error.
Definition: SpaceResolutionCalibration.h:107
Belle2::CDC::SpaceResolutionCalibration::nalpha_old
int nalpha_old
number of alpha bins from input
Definition: SpaceResolutionCalibration.h:129
Belle2::CDC::SpaceResolutionCalibration::u_alpha_old
double u_alpha_old[18]
Upper boundays of alpha bins from input.
Definition: SpaceResolutionCalibration.h:132
Belle2::CDC::SpaceResolutionCalibration::readProfile
virtual void readProfile()
read sigma bining (alpha, theta bining)
Definition: SpaceResolutionCalibration.cc:608
Belle2::CDC::SpaceResolutionCalibration::BField
virtual void BField(bool bfield)
Work with B field or not;.
Definition: SpaceResolutionCalibration.h:36
Belle2::CDC::SpaceResolutionCalibration::l_alpha_old
double l_alpha_old[18]
Lower boundays of alpha bins from input.
Definition: SpaceResolutionCalibration.h:131
Belle2::CDC::SpaceResolutionCalibration::setMinimumPval
virtual void setMinimumPval(double minPval)
Minimum Pval required.
Definition: SpaceResolutionCalibration.h:32
Belle2::CDC::SpaceResolutionCalibration::m_outputSigmaFileName
std::string m_outputSigmaFileName
Output sigma file name.
Definition: SpaceResolutionCalibration.h:109
Belle2::CDC::SpaceResolutionCalibration::setSigmaFileName
virtual void setSigmaFileName(std::string name)
Output sigma file name, for text mode.
Definition: SpaceResolutionCalibration.h:55
Belle2::CDC::SpaceResolutionCalibration::hu_m
TH1F * hu_m[56][2][Max_nalpha][Max_ntheta]
mean histogram biased residual
Definition: SpaceResolutionCalibration.h:103
Belle2::CDC::SpaceResolutionCalibration::l_theta
double l_theta[7]
Lower boundays of theta bins.
Definition: SpaceResolutionCalibration.h:124
Belle2::CDC::SpaceResolutionCalibration::m_lastRun
int m_lastRun
Last run.
Definition: SpaceResolutionCalibration.h:117
Belle2::CDC::SpaceResolutionCalibration::l_alpha
double l_alpha[18]
Lower boundays of alpha bins.
Definition: SpaceResolutionCalibration.h:121
Belle2::DBObjPtr
Class for accessing objects in the database.
Definition: DBObjPtr.h:31
Belle2::CDC::SpaceResolutionCalibration
Class for Space resolution calibration.
Definition: SpaceResolutionCalibration.h:18
Belle2::CDC::SpaceResolutionCalibration::m_sResolFromDB
DBObjPtr< CDCSpaceResols > * m_sResolFromDB
Database for sigma.
Definition: SpaceResolutionCalibration.h:112
Belle2::CDC::SpaceResolutionCalibration::ffit
TF1 * ffit[56][2][18][7]
fitting function
Definition: SpaceResolutionCalibration.h:98
Belle2::CDC::SpaceResolutionCalibration::storeHisto
virtual void storeHisto()
store histogram
Definition: SpaceResolutionCalibration.cc:366
Belle2::CDC::SpaceResolutionCalibration::gr
TGraphErrors * gr[56][2][18][7]
sigma graph.
Definition: SpaceResolutionCalibration.h:100
Belle2::CDC::SpaceResolutionCalibration::itheta_old
double itheta_old[7]
represented alphas of theta bins from input.
Definition: SpaceResolutionCalibration.h:136
Belle2::CDC::SpaceResolutionCalibration::SpaceResolutionCalibration
SpaceResolutionCalibration()
Constructor.
Definition: SpaceResolutionCalibration.cc:25
Belle2::CDC::SpaceResolutionCalibration::u_theta_old
double u_theta_old[7]
Upper boundays of theta bins from input.
Definition: SpaceResolutionCalibration.h:135
Belle2::CDC::SpaceResolutionCalibration::sigma_old
double sigma_old[56][2][18][7][8]
old sigma prameters.
Definition: SpaceResolutionCalibration.h:96
Belle2::CDC::SpaceResolutionCalibration::useProfileFromInputSigma
virtual void useProfileFromInputSigma(bool useProfileFromInputSigma)
use sigma bin profile form input sigma or new one from input file
Definition: SpaceResolutionCalibration.h:50
Belle2::CDC::SpaceResolutionCalibration::m_inputRootFileNames
std::string m_inputRootFileNames
Input root file names.
Definition: SpaceResolutionCalibration.h:110
Belle2::CDC::SpaceResolutionCalibration::gfit
TGraphErrors * gfit[56][2][18][7]
sigma*sigma graph for fit
Definition: SpaceResolutionCalibration.h:99
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CDC::SpaceResolutionCalibration::setMinimumNDF
virtual void setMinimumNDF(double minndf)
minimum NDF required for track
Definition: SpaceResolutionCalibration.h:30
Belle2::CDC::SpaceResolutionCalibration::setUseDB
virtual void setUseDB(bool useDB=false)
Use database or text mode.
Definition: SpaceResolutionCalibration.h:28
Belle2::CDC::SpaceResolutionCalibration::u_theta
double u_theta[7]
Upper boundays of theta bins.
Definition: SpaceResolutionCalibration.h:125
Belle2::CDC::SpaceResolutionCalibration::ialpha_old
double ialpha_old[18]
represented alphas of alpha bins from input.
Definition: SpaceResolutionCalibration.h:133
Belle2::CDC::SpaceResolutionCalibration::m_firstExperiment
int m_firstExperiment
First experiment.
Definition: SpaceResolutionCalibration.h:114
Belle2::CDC::SpaceResolutionCalibration::m_ntheta
int m_ntheta
number of theta bins
Definition: SpaceResolutionCalibration.h:120
Belle2::CDC::SpaceResolutionCalibration::m_binWidth
double m_binWidth
width of each bin, unit cm
Definition: SpaceResolutionCalibration.h:88
Belle2::CDC::SpaceResolutionCalibration::m_ProfileFileName
std::string m_ProfileFileName
Profile file name.
Definition: SpaceResolutionCalibration.h:111
Belle2::CDC::SpaceResolutionCalibration::Max_ntheta
static const int Max_ntheta
maximum theta bin
Definition: SpaceResolutionCalibration.h:83
Belle2::CDC::SpaceResolutionCalibration::readSigma
virtual void readSigma()
read sigma from previous calibration, (input sigma)
Definition: SpaceResolutionCalibration.cc:465
Belle2::CDC::SpaceResolutionCalibration::m_sigmafile
std::string m_sigmafile
Sigma file name, for text mode.
Definition: SpaceResolutionCalibration.h:113
Belle2::CDC::SpaceResolutionCalibration::m_Pvalmin
double m_Pvalmin
Minimum Prob(chi2) of track.
Definition: SpaceResolutionCalibration.h:87
Belle2::CDC::SpaceResolutionCalibration::ialpha
double ialpha[18]
represented alphas of alpha bins.
Definition: SpaceResolutionCalibration.h:123
Belle2::CDC::SpaceResolutionCalibration::~SpaceResolutionCalibration
virtual ~SpaceResolutionCalibration()
Destructor.
Definition: SpaceResolutionCalibration.h:24
Belle2::CDC::SpaceResolutionCalibration::calibrate
virtual bool calibrate()
Run algo on data.
Definition: SpaceResolutionCalibration.cc:280
Belle2::CDC::SpaceResolutionCalibration::setStoreHisto
virtual void setStoreHisto(bool storeHist=false)
Store histograms durring the calibration or not.
Definition: SpaceResolutionCalibration.h:43
Belle2::CDC::SpaceResolutionCalibration::m_sigmaParamMode
unsigned short m_sigmaParamMode
sigma mode for this calibration.
Definition: SpaceResolutionCalibration.h:139
Belle2::CDC::SpaceResolutionCalibration::m_sigmaParamMode_old
unsigned short m_sigmaParamMode_old
sigma mode from input.
Definition: SpaceResolutionCalibration.h:138
Belle2::CDC::SpaceResolutionCalibration::readSigmaFromDB
virtual void readSigmaFromDB()
read sigma from DB
Definition: SpaceResolutionCalibration.cc:566
Belle2::CDC::SpaceResolutionCalibration::hb_s
TH1F * hb_s[56][2][Max_nalpha][Max_ntheta]
sigma histogram of ubiased residual
Definition: SpaceResolutionCalibration.h:106
Belle2::CDC::SpaceResolutionCalibration::m_nalpha
int m_nalpha
number of alpha bins
Definition: SpaceResolutionCalibration.h:119
Belle2::CDC::SpaceResolutionCalibration::readSigmaFromText
virtual void readSigmaFromText()
read sigma from text file
Definition: SpaceResolutionCalibration.cc:480
Belle2::CDC::SpaceResolutionCalibration::getUpperBoundaryForFit
double getUpperBoundaryForFit(TGraphErrors *graph)
search max point at boundary region
Definition: SpaceResolutionCalibration.h:144
Belle2::CDC::SpaceResolutionCalibration::m_draw
bool m_draw
print out histogram in pdf file or not
Definition: SpaceResolutionCalibration.h:90
Belle2::CDC::SpaceResolutionCalibration::u_alpha
double u_alpha[18]
Upper boundays of alpha bins.
Definition: SpaceResolutionCalibration.h:122
Belle2::CDC::SpaceResolutionCalibration::setBinWidth
virtual void setBinWidth(double bw)
Bin width of each slide.
Definition: SpaceResolutionCalibration.h:34