00001 #ifndef PREXTMDCCALIB_H 00002 #define PREXTMDCCALIB_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 "TH2F.h" 00011 #include "TGraph.h" 00012 #include "TFolder.h" 00013 00014 class PreXtMdcCalib: public MdcCalib { 00015 public: 00016 PreXtMdcCalib(); 00017 ~PreXtMdcCalib(); 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 static Double_t xtfun(Double_t *x, Double_t *par); 00028 00029 MdcCalParams m_param; 00030 00031 IMdcGeomSvc* m_mdcGeomSvc; 00032 IMdcCalibFunSvc* m_mdcFunSvc; 00033 IMdcUtilitySvc* m_mdcUtilitySvc; 00034 TObjArray* m_hlist; 00035 00036 int m_nWire; 00037 int m_nLayer; 00038 00039 TFolder* m_fdPreXt; 00040 TFolder* m_fdNhit; 00041 TGraph* m_grXt[MdcCalNLayer]; 00042 TH2F* m_haxis; 00043 TH1F* m_htrec[MdcCalNLayer]; 00044 TH1F* m_nhitBin[MdcCalNLayer]; 00045 TH1F* m_nhitTot; 00046 00047 /* integrated time Spectrum for determination X-T */ 00048 int m_nXtBin; 00049 double m_tbin[40]; 00050 int m_nEntries[MdcCalNLayer][40]; 00051 int m_nTot[MdcCalNLayer]; 00052 00053 bool m_fgIniTm; 00054 double m_t0[MdcCalNLayer]; 00055 double m_tm[MdcCalNLayer]; 00056 }; 00057 00058 inline void PreXtMdcCalib::setParam(MdcCalParams& param){ 00059 MdcCalib::setParam(param); 00060 m_param = param; 00061 } 00062 #endif /* PREXTMDCCALIB_H */