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); 00020 00021 void setParam(MdcCalParams& param); 00022 int fillHist(MdcCalEvent* event); 00023 int updateConst(MdcCalibConst* calconst); 00024 void clear(); 00025 00026 //add for ganga 00027 virtual void settuple(std::string path); 00028 virtual void read_file(std::vector<std::string> path); 00029 00030 private: 00031 00032 static Double_t funTmin(Double_t* x, Double_t* par); 00033 static Double_t funTmax(Double_t* x, Double_t* par); 00034 static Double_t xtfun(Double_t *x, Double_t *par); 00035 00036 MdcCalParams m_param; 00037 00038 TObjArray* m_hlist; 00039 IMdcGeomSvc* m_mdcGeomSvc; 00040 IMdcCalibFunSvc* m_mdcFunSvc; 00041 00042 int m_nzbin; 00043 double m_zwid[MdcCalNLayer]; 00044 double m_zst[MdcCalNLayer]; 00045 double m_vp[MdcCalNLayer]; 00046 00047 TFolder* m_fdTrec; 00048 TFolder* m_fdTrecZ; 00049 TH1F* m_hTrec[MdcCalNLayer][MdcCalLR]; 00050 TH1F* m_hTrecCosm[MdcCalNLayer][2]; 00051 TH1F* m_hTrecZ[MdcCalNLayer][MdcCalLR][11]; 00052 }; 00053 00054 inline void PreT0MdcCalib::setParam(MdcCalParams& param){ 00055 MdcCalib::setParam(param); 00056 m_param = param; 00057 } 00058 #endif /* PRET0MDCCALIB_H */