00001 #ifndef GRXTMDCCALIB_H 00002 #define GRXTMDCCALIB_H 00003 00004 #include "MdcCalibAlg/MdcCalib.h" 00005 #include <vector> 00006 #include <map> 00007 00008 #include "TH2F.h" 00009 #include "TGraph.h" 00010 #include "TFolder.h" 00011 00012 class GrXtMdcCalib: public MdcCalib { 00013 public: 00014 GrXtMdcCalib(); 00015 ~GrXtMdcCalib(); 00016 void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc, 00017 IMdcCalibFunSvc* mdcFunSvc); 00018 00019 void setParam(MdcCalParams& param); 00020 int fillHist(MdcCalEvent* event); 00021 int updateConst(MdcCalibConst* calconst); 00022 void clear(); 00023 00024 int getHxtKey(int layid, int entr, int lr, int bin) const; 00025 00026 static Double_t xtfun(Double_t *x, Double_t *par); 00027 static Double_t xtedge(Double_t *x, Double_t *par); 00028 00029 00030 //add for ganga 00031 virtual void settuple(std::string path); 00032 virtual void read_file(std::vector<std::string> path); 00033 00034 private: 00035 MdcCalParams m_param; 00036 00037 TObjArray* m_hlist; 00038 IMdcGeomSvc* m_mdcGeomSvc; 00039 IMdcCalibFunSvc* m_mdcFunSvc; 00040 00041 int m_maxNhit; /* for each graph */ 00042 bool m_fgIni; 00043 double m_docaMax[MdcCalNLayer]; 00044 00045 int m_nhit[MdcCalNLayer][MdcCalNENTRXT][MdcCalLR]; 00046 00047 TFolder* m_fdXt; 00048 TH2F* m_haxis; 00049 TGraph* m_grxt[MdcCalNLayer][MdcCalNENTRXT][MdcCalLR]; 00050 00051 static double DMAX; 00052 static double TMAX; 00053 }; 00054 00055 inline void GrXtMdcCalib::setParam(MdcCalParams& param){ 00056 MdcCalib::setParam(param); 00057 m_param = param; 00058 } 00059 00060 #endif /* GRXTMDCCALIB_H */