00001 #ifndef QTMDCCALIB_H 00002 #define QTMDCCALIB_H 00003 00004 #include "MdcCalibAlg/MdcCalib.h" 00005 #include "TFolder.h" 00006 #include "TGraphErrors.h" 00007 00008 class QtMdcCalib: public MdcCalib { 00009 public: 00010 QtMdcCalib(); 00011 ~QtMdcCalib(); 00012 void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc, 00013 IMdcCalibFunSvc* mdcFunSvc, IMdcUtilitySvc* mdcUtilitySvc); 00014 00015 void setParam(MdcCalParams& param); 00016 int fillHist(MdcCalEvent* event); 00017 int updateConst(MdcCalibConst* calconst); 00018 void clear(); 00019 00020 static Double_t qtFun(Double_t *x, Double_t *par); 00021 00022 private: 00023 MdcCalParams m_param; 00024 00025 TObjArray* m_hlist; 00026 IMdcGeomSvc* m_mdcGeomSvc; 00027 IMdcCalibFunSvc* m_mdcFunSvc; 00028 IMdcUtilitySvc* m_mdcUtilitySvc; 00029 00030 int m_nlayer; 00031 int m_nbin; 00032 int m_innNLay; 00033 int m_qtorder; 00034 00035 double m_qhit; 00036 double m_resi; 00037 double m_vdr; 00038 00039 double m_qbinw[MdcCalNLayer]; // width of Q bin for all cells 00040 double m_qmin[MdcCalNLayer]; 00041 double m_qmax[MdcCalNLayer]; 00042 double m_qtpar[MdcCalNLayer][MdcCalQtOrd]; 00043 00044 TFolder* m_fdQt; 00045 TH1F* m_hqhit[MdcCalNLayer]; 00046 TH1F* m_hqt[MdcCalNLayer][MdcCalNQBin]; 00047 TFolder* m_fdQ_T; 00048 TGraphErrors* m_grqt[MdcCalNLayer]; 00049 TGraphErrors* m_grqdt[MdcCalNLayer]; 00050 }; 00051 00052 inline void QtMdcCalib::setParam(MdcCalParams& param){ 00053 MdcCalib::setParam(param); 00054 m_param = param; 00055 } 00056 00057 #endif /* QTMDCCALIB_H */