00001 #ifndef PRET0MDCCALIB_H 00002 #define PRET0MDCCALIB_H 00003 00004 #include "MdcCalibAlg/MdcCalib.h" 00005 #include "MdcCalibFunSvc/IMdcCalibFunSvc.h" 00006 #include "MdcCalibFunSvc/MdcCalibFunSvc.h" 00007 #include "MdcGeomSvc/IMdcGeomSvc.h" 00008 #include "MdcGeomSvc/MdcGeomSvc.h" 00009 00010 #include "TGraph.h" 00011 #include <vector> 00012 00013 00014 class PreT0MdcCalib: public MdcCalib { 00015 public: 00016 PreT0MdcCalib(); 00017 ~PreT0MdcCalib(); 00018 void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc, 00019 IMdcCalibFunSvc* mdcFunSvc, IMdcUtilitySvc* mdcUtilitySvc); 00020 00021 void setParam(MdcCalParams& param); 00022 int fillHist(MdcCalEvent* event); 00023 int updateConst(MdcCalibConst* calconst); 00024 void clear(); 00025 00026 private: 00027 00028 static Double_t funTmin(Double_t* x, Double_t* par); 00029 static Double_t funTmax(Double_t* x, Double_t* par); 00030 static Double_t xtfun(Double_t *x, Double_t *par); 00031 00032 MdcCalParams m_param; 00033 00034 TObjArray* m_hlist; 00035 IMdcGeomSvc* m_mdcGeomSvc; 00036 IMdcCalibFunSvc* m_mdcFunSvc; 00037 IMdcUtilitySvc* m_mdcUtilitySvc; 00038 00039 int m_nzbin; 00040 double m_zwid[MdcCalNLayer]; 00041 double m_zst[MdcCalNLayer]; 00042 double m_vp[MdcCalNLayer]; 00043 00044 TFolder* m_fdTrec; 00045 TFolder* m_fdTrecZ; 00046 TH1F* m_hTrec[MdcCalNLayer][MdcCalLR]; 00047 TH1F* m_hTrecCosm[MdcCalNLayer][2]; 00048 TH1F* m_hTrecZ[MdcCalNLayer][MdcCalLR][11]; 00049 }; 00050 00051 inline void PreT0MdcCalib::setParam(MdcCalParams& param){ 00052 MdcCalib::setParam(param); 00053 m_param = param; 00054 } 00055 #endif /* PRET0MDCCALIB_H */