00001 #ifndef Physics_Analysis_DSemilep_H 00002 #define Physics_Analysis_DSemilep_H 00003 00004 #include "GaudiKernel/AlgFactory.h" 00005 #include "GaudiKernel/Algorithm.h" 00006 #include "GaudiKernel/NTuple.h" 00007 00008 #include "VertexFit/IVertexDbSvc.h" 00009 #include "SimplePIDSvc/ISimplePIDSvc.h" 00010 #include "DTagTool/DTagTool.h" 00011 00012 class DSemilepAlg : public Algorithm { 00013 00014 public: 00015 DSemilepAlg(const std::string& name, ISvcLocator* pSvcLocator); 00016 00017 StatusCode initialize(); 00018 StatusCode execute(); 00019 StatusCode finalize(); 00020 00021 bool isGoodTrack(EvtRecTrack* trk,Hep3Vector xorigin); 00022 void calU(DTagToolIterator sditer,RecMdcKalTrack* Etrack, RecMdcKalTrack* Ktrack,double& U, double& MM2, double& q2); 00023 Hep3Vector tagDP3(DTagToolIterator iter_dtag); 00024 00025 private: 00026 ISimplePIDSvc* m_simplePIDSvc; 00027 std::string m_pdt; 00028 00029 // 00030 // Define Ntuples here 00031 NTuple::Tuple* m_tuple0; 00032 NTuple::Item<double> m_mBC; 00033 NTuple::Item<double> m_deltaE; 00034 NTuple::Item<double> m_U; 00035 NTuple::Item<double> m_mode; 00036 NTuple::Item<double> m_MM2; 00037 NTuple::Item<double> m_q2; 00038 00039 00040 }; 00041 #endif