/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/MdcTrkRecon/MdcTrkRecon-00-03-45/MdcTrkRecon/MdcMergeDups.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: MdcMergeDups.h,v 1.3 2012/05/13 23:43:41 zhangy Exp $
00004 //
00005 // Description:
00006 //      Class MdcMergeDups is to be merge duplicated track in MDC.
00007 //
00008 // Environment:
00009 //      Software developed for the BESIII Detector at the BEPCII.
00010 //
00011 // Author List:
00012 //      Yoshi Iwasaki(yoshihito.iwasaki@kek.jp)         Original Author
00013 //      Zhang Yao(zhangyao@ihep.ac.cn)                  Migrate to BESIII
00014 //
00015 // Copyright Information:
00016 //      Copyright (C) 2009      IHEP    
00017 // 
00018 // History:
00019 //      Zhang Yao 2009-10-30 
00020 //              Migration BELLE TTrackManager::merge() for BESIII MDC
00021 //
00022 //------------------------------------------------------------------------
00023 
00024 #ifndef MDCMERGECRUL_H
00025 #define MDCMERGECRUL_H
00026 
00027 //----------------------
00028 // Base Class Headers --
00029 //----------------------
00030 #include "GaudiKernel/Algorithm.h"
00031 #include "CLHEP/Alist/AList.h"
00032 #include "MdcData/MdcHit.h"
00033 #include "GaudiKernel/SmartDataPtr.h"
00034 #include "MdcRecEvent/RecMdcTrack.h"
00035 #include "MdcRecEvent/RecMdcHit.h"
00036 #include "MdcCalibFunSvc/MdcCalibFunSvc.h"
00037 #include "RawDataProviderSvc/RawDataProviderSvc.h"
00038 #include "MagneticField/IMagneticFieldSvc.h"
00039 #include "MdcGeom/MdcDetector.h"
00040 #include "BField/BField.h"
00041 
00042 //---------------------
00043 //-- Class Interface --
00044 //---------------------
00045 
00046 class MdcMergeDups : public Algorithm {
00047 
00048   //--------------------
00049   // Instance Members --
00050   //--------------------
00051 
00052   public: 
00053     // Constructors
00054     MdcMergeDups(const std::string& name, ISvcLocator* pSvcLocator);
00055 
00056     // Destructor
00057     virtual ~MdcMergeDups();
00058 
00059     // Operations
00060     StatusCode initialize();
00061     StatusCode execute();
00062     StatusCode finalize(); 
00063     StatusCode beginRun(); 
00064     int  mergeDups(void);
00065     int  mergeCurl(void);
00066     int  testByOverlapHit(RecMdcTrack* refTk, RecMdcTrack* testTk);
00067     int  testByParam(RecMdcTrack* refTk, RecMdcTrack* testTk);
00068     int  doMergeLong(std::vector<RecMdcTrack*> mergeTkList);
00069     int  doMergeCurl(std::vector<RecMdcTrack*> mergeTkList);
00070     //int  doMergeOdd(std::vector<RecMdcTrack*> mergeTkList);
00071     void store(TrkRecoTrk* aTrack);
00072     bool eraseTdsTrack(RecMdcTrackCol::iterator tk);
00073 
00074     void dumpRecMdcTrack();
00075 
00076   private:
00077     const MdcDetector* m_gm;
00078     BField*     m_bfield;
00079 
00080     int         m_debug;
00081     double      m_maxDd0InMerge; 
00082     double      m_maxDphi0InMerge; 
00083     double      m_maxPdradInMerge; 
00084     double      m_maxRcsInMerge; 
00085     double      m_mergePt;
00086     double      m_mergeLoadAx;
00087     double      m_mergeLoadSt;
00088     double      m_mergeOverlapRatio;
00089     double      m_bunchT0;
00090 };
00091 #endif

Generated on Tue Nov 29 23:13:33 2016 for BOSS_7.0.2 by  doxygen 1.4.7