00001 #ifndef WR2DMDCCALIB_H 00002 #define WR2DMDCCALIB_H 00003 00004 #include "MdcCalibAlg/MdcCalib.h" 00005 00006 class Wr2dMdcCalib: public MdcCalib { 00007 public: 00008 Wr2dMdcCalib(); 00009 ~Wr2dMdcCalib(); 00010 00011 void initialize(TObjArray* hlist, IMdcGeomSvc* mdcGeomSvc, 00012 IMdcCalibFunSvc* mdcFunSvc, IMdcUtilitySvc* mdcUtilitySvc); 00013 00014 void setParam(MdcCalParams& param); 00015 int fillHist(MdcCalEvent* event); 00016 int updateConst(MdcCalibConst* calconst); 00017 void clear(); 00018 00019 static void fcnWireParab(Int_t &npar, Double_t *gin, Double_t &f, 00020 Double_t *par, Int_t iflag); 00021 static bool fgBIN[MdcCalWrNBin]; 00022 static double xBIN[MdcCalWrNBin]; 00023 static double yBIN[MdcCalWrNBin]; 00024 static double zBIN[MdcCalWrNBin]; 00025 static double zBINERR[MdcCalWrNBin]; 00026 static double zMIN; 00027 static double zMAX; 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 double m_zwest[MdcCalNLayer]; 00038 double m_zeast[MdcCalNLayer]; 00039 double m_zwid[MdcCalNLayer]; 00040 double m_zbinCen[MdcCalNLayer][MdcCalWrNBin]; 00041 00042 TFolder* m_fdWire; 00043 TH1F* m_hl[MdcCalTotCell][MdcCalWrNBin]; 00044 TH1F* m_hr[MdcCalTotCell][MdcCalWrNBin]; 00045 }; 00046 00047 inline void Wr2dMdcCalib::setParam(MdcCalParams& param){ 00048 MdcCalib::setParam(param); 00049 m_param = param; 00050 } 00051 00052 #endif /* WR2DMDCCALIB_H */