00001 #ifndef CALIBBASE_H
00002 #define CALIBBASE_H
00003
00004 #include <iostream>
00005 #include <fstream>
00006 #include <iomanip>
00007 #include <cstring>
00008
00009 #include "MdcCalibConst.h"
00010 #include "MdcCosGeom.h"
00011 #include "fun.h"
00012
00013 #include "TObjArray.h"
00014 #include "TFile.h"
00015 #include "TH1F.h"
00016 #include "TFolder.h"
00017
00018 using namespace std;
00019
00020 class CalibBase {
00021
00022 public:
00023 CalibBase();
00024 virtual ~CalibBase();
00025 virtual void init(TObjArray* hlist, MdcCosGeom* pGeom) = 0;
00026 virtual void mergeHist(TFile* fhist) = 0;
00027 virtual void calib(MdcCalibConst* calconst) = 0;
00028
00029 private:
00030 void renameHist();
00031
00032 static const int NPhiBin = 20;
00033 static const int NThetaBin = 9;
00034
00035 TFolder* m_fdcom;
00036 TH1F* m_hresAllInc;
00037 TH1F* m_hresAllExc;
00038 TH1F* m_hresAllAve;
00039
00040 TH1F* m_hresInnInc;
00041 TH1F* m_hresInnExc;
00042
00043 TH1F* m_hresStpInc;
00044 TH1F* m_hresStpExc;
00045
00046 TH1F* m_hresOutInc;
00047 TH1F* m_hresOutExc;
00048
00049 TFolder* m_fdResQ;
00050 TH1F* m_hresAveAllQ[14];
00051 TH1F* m_hresAveOutQ[14];
00052 TH1F* m_hresAveLayQ[43][14];
00053
00054 TH1F* m_hratio;
00055
00056
00057 TH1F* m_hbbTrkFlg;
00058 TH1F* m_hTesAll;
00059 TH1F* m_hTesGood;
00060 TH1F* m_hTesAllFlag;
00061 TH1F* m_hTesRec;
00062 TH1F* m_hTesCalFlag;
00063 TH1F* m_hTesCalUse;
00064
00065 TH1F* m_hnRawHit;
00066
00067 TH1F* m_hpt;
00068 TH1F* m_hpMax;
00069 TH1F* m_hpMaxCms;
00070 TH1F* m_hptPos;
00071 TH1F* m_hptNeg;
00072
00073 TH1F* m_hp;
00074 TH1F* m_hp_cms;
00075 TH1F* m_hpPos;
00076 TH1F* m_hpNeg;
00077 TH1F* m_hpPoscms;
00078 TH1F* m_hpNegcms;
00079
00080
00081 TH1F* m_hp_cut;
00082
00083 TH1F* m_hnTrk;
00084 TH1F* m_hnTrkCal;
00085 TH1F* m_hnhitsRec;
00086 TH1F* m_hnhitsRecInn;
00087 TH1F* m_hnhitsRecStp;
00088 TH1F* m_hnhitsRecOut;
00089 TH1F* m_hnhitsCal;
00090 TH1F* m_hnhitsCalInn;
00091 TH1F* m_hnhitsCalStp;
00092 TH1F* m_hnhitsCalOut;
00093 TH1F* m_wirehitmap;
00094 TH1F* m_layerhitmap;
00095 TH1F* m_hchisq;
00096
00097
00098 TH1F* m_hnoisephi;
00099 TH1F* m_hnoiselay;
00100 TH1F* m_hnoisenhits;
00101
00102 TH1F* m_hdr;
00103 TH1F* m_hphi0;
00104 TH1F* m_hkap;
00105 TH1F* m_hdz;
00106 TH1F* m_htanl;
00107 TH1F* m_hcosthe;
00108 TH1F* m_hcostheNeg;
00109 TH1F* m_hcosthePos;
00110
00111 TH1F* m_hx0;
00112 TH1F* m_hy0;
00113 TH1F* m_hdelZ0;
00114
00115
00116 TFolder* m_fdTime;
00117 TH1F* m_htraw[NLAYER];
00118 TH1F* m_htdr[NLAYER];
00119 TH1F* m_htdrlr[NLAYER][2];
00120
00121
00122 TFolder* m_fdres;
00123 TH1F* m_hresInc[NLAYER];
00124 TH1F* m_hreslrInc[NLAYER][2];
00125 TH1F* m_hresExc[NLAYER];
00126 TH1F* m_hreslrExc[NLAYER][2];
00127
00128 TFolder* m_fdmomPhi;
00129
00130 TH1F* m_ppPhi[NPhiBin];
00131 TH1F* m_pnPhi[NPhiBin];
00132 TH1F* m_ppThe[NThetaBin];
00133 TH1F* m_pnThe[NThetaBin];
00134 TH1F* m_ppThePhi[NThetaBin][NPhiBin];
00135 TH1F* m_pnThePhi[NThetaBin][NPhiBin];
00136
00137
00138 TH1F* m_ppPhiCms[NPhiBin];
00139 TH1F* m_pnPhiCms[NPhiBin];
00140 TH1F* m_ppTheCms[NThetaBin];
00141 TH1F* m_pnTheCms[NThetaBin];
00142 TH1F* m_ppThePhiCms[NThetaBin][NPhiBin];
00143 TH1F* m_pnThePhiCms[NThetaBin][NPhiBin];
00144
00145 TFolder *m_fdr2d;
00146 TH1F* m_hr2dInc[43][2][2][NSDBIN];
00147 TH1F* m_hr2dExc[43][2][2][NSDBIN];
00148 };
00149
00150 #endif