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, IMdcUtilitySvc* mdcUtilitySvc); 00018 00019 void setParam(MdcCalParams& param); 00020 int fillHist(MdcCalEvent* event); 00021 int updateConst(MdcCalibConst* calconst); 00022 void clear(); 00023 00024 int findXtEntr(int lay, int iEntr, int lr) 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 private: 00030 MdcCalParams m_param; 00031 00032 TObjArray* m_hlist; 00033 IMdcGeomSvc* m_mdcGeomSvc; 00034 IMdcCalibFunSvc* m_mdcFunSvc; 00035 IMdcUtilitySvc* m_mdcUtilitySvc; 00036 00037 int m_maxNhit; /* for each graph */ 00038 bool m_fgIni; 00039 double m_docaMax[MdcCalNLayer]; 00040 00041 int m_nhit[MdcCalNLayer][MdcCalNENTRXT][MdcCalLR]; 00042 bool m_fgFit[MdcCalNLayer][MdcCalNENTRXT][MdcCalLR]; 00043 00044 TFolder* m_fdXt; 00045 TH2F* m_haxis; 00046 TGraph* m_grxt[MdcCalNLayer][MdcCalNENTRXT][MdcCalLR]; 00047 00048 static double DMAX; 00049 static double TMAX; 00050 }; 00051 00052 inline void GrXtMdcCalib::setParam(MdcCalParams& param){ 00053 MdcCalib::setParam(param); 00054 m_param = param; 00055 } 00056 00057 #endif /* GRXTMDCCALIB_H */