00001 #ifndef XTINTEMDCCALIB_H 00002 #define XTINTEMDCCALIB_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 #include "TProfile.h" 00012 00013 class XtInteMdcCalib: public MdcCalib { 00014 public: 00015 XtInteMdcCalib(); 00016 ~XtInteMdcCalib(); 00017 void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc, 00018 IMdcCalibFunSvc* mdcFunSvc, IMdcUtilitySvc* mdcUtilitySvc); 00019 00020 void setParam(MdcCalParams& param); 00021 int fillHist(MdcCalEvent* event); 00022 int updateConst(MdcCalibConst* calconst); 00023 void clear(); 00024 00025 private: 00026 static const int NENTR = 18; 00027 static const int NTBIN_INN = 72; 00028 static const int NTBIN_OUT = 79; 00029 00030 MdcCalParams m_param; 00031 00032 TObjArray* m_hlist; 00033 IMdcGeomSvc* m_mdcGeomSvc; 00034 IMdcCalibFunSvc* m_mdcFunSvc; 00035 IMdcUtilitySvc* m_mdcUtilitySvc; 00036 00037 bool m_fgIni; 00038 int m_nMaxGrPoint; 00039 double m_docaMax[MdcCalNLayer]; 00040 double m_tbinWid[MdcCalNLayer][3]; 00041 double m_tbinLim[MdcCalNLayer][4]; 00042 00043 TFolder* m_fdPf; /* TFolder for profile */ 00044 TGraph* m_grXt[MdcCalNLayer][NENTR][2]; 00045 TProfile* m_pfNear[MdcCalNLayer][NENTR][2]; 00046 TProfile* m_pfMid[MdcCalNLayer][NENTR][2]; 00047 TProfile* m_pfFar[MdcCalNLayer][NENTR][2]; 00048 }; 00049 00050 inline void XtInteMdcCalib::setParam(MdcCalParams& param){ 00051 MdcCalib::setParam(param); 00052 m_param = param; 00053 } 00054 00055 #endif /* XTINTEMDCCALIB_H */