00001 #ifndef MDCALIGNALG_H 00002 #define MDCALIGNALG_H 00003 00004 #include "GaudiKernel/Algorithm.h" 00005 00006 #include "MdcGeomSvc/IMdcGeomSvc.h" 00007 #include "MdcGeomSvc/MdcGeomSvc.h" 00008 #include "MdcGeomSvc/MdcGeoWire.h" 00009 #include "MdcGeomSvc/MdcGeoLayer.h" 00010 00011 #include "MdcCalibFunSvc/IMdcCalibFunSvc.h" 00012 #include "MdcCalibFunSvc/MdcCalibFunSvc.h" 00013 00014 #include "MdcAlignAlg/MdcAlignPar.h" 00015 #include "MdcAlignAlg/MdcAliEvent.h" 00016 #include "MdcAlignAlg/MdcAliParams.h" 00017 #include "MdcAlignAlg/Alignment.h" 00018 00019 #include "MdcAlignAlg/MdcAlign.h" 00020 00021 #include "TObjArray.h" 00022 00023 #include <iostream> 00024 #include <fstream> 00025 using namespace std; 00026 00028 00029 class MdcAlignAlg: public Algorithm { 00030 public: 00031 MdcAlignAlg(const std::string& name, ISvcLocator* pSvcLocator); 00032 00033 StatusCode initialize(); 00034 StatusCode execute(); 00035 StatusCode finalize(); 00036 00037 private: 00038 void initParam(); 00039 TObjArray* m_hlist; 00040 IMdcGeomSvc* m_mdcGeomSvc; 00041 IMdcCalibFunSvc* m_mdcFunSvc; 00042 MdcAlign* m_pAlign; 00043 MdcAliEvent* m_mdcevt; 00044 MdcAlignPar* m_alignPar; 00045 MdcAliParams m_param; 00046 00047 bool m_distAlign; 00048 int m_alignMeth; 00049 int m_flgKalFit; /* 1 for using Kalman filter, 0 for not */ 00050 int m_evtType; /* 0: bhabha; 1: dimu */ 00051 int m_nEvtDisp; 00052 int m_nEvt; 00053 double m_mag; /* magnetic field [Tesla] */ 00054 00055 std::string m_alignFile; 00056 std::string m_configFile; 00057 std::string m_fixMomLab; 00058 std::string m_histname; 00059 }; 00060 00061 #endif /* MDCALIGNALG_H */