/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/MdcPatRec/MdcxReco/MdcxReco-00-01-59/MdcxReco/MdcxCosmicSewer.h

Go to the documentation of this file.
00001 //--------------------------------------------------------------------------
00002 // File and Version Information:
00003 //      $Id: MdcxCosmicSewer.h,v 1.8 2012/07/20 05:48:16 zhangy Exp $
00004 //
00005 // Description:
00006 //      Class MdcxCosmicSewer. This is a simple example of a user module. It
00007 //      just prints out each entrypoint (operation) as it is accessed.
00008 //
00009 // Environment:
00010 //      Software developed for the BaBar Detector at the SLAC B-Factory.
00011 //
00012 // Author List:
00013 //      Zhang Yao(zhangyao@ihep.ac.cn)
00014 //
00015 // Copyright Information:
00016 //      Copyright (C) 1994              Lawrence Berkeley Laboratory
00017 // 
00018 // History:
00019 //      Migration for BESIII MDC
00020 //
00021 //------------------------------------------------------------------------
00022 
00023 #ifndef MDCXCOSMICSEWER_H
00024 #define MDCXCOSMICSEWER_H
00025 
00026 //----------------------
00027 // Base Class Headers --
00028 //----------------------
00029 #include "GaudiKernel/Algorithm.h"
00030 #include "CLHEP/Alist/AList.h"
00031 #include "MdcGeom/MdcDetector.h"
00032 #include "BField/BField.h"
00033 #include "MdcRecEvent/RecMdcTrack.h"
00034 #include "MdcRecEvent/RecMdcHit.h"
00035 #include "TrkBase/TrkRecoTrk.h"
00036 #include "TrkFitter/TrkContextEv.h"
00037 #include "MdcCalibFunSvc/MdcCalibFunSvc.h"
00038 #include "RawDataProviderSvc/RawDataProviderSvc.h"
00039 #include "GaudiKernel/NTuple.h"
00040 #include "MdcUtilitySvc/MdcUtilitySvc.h"
00041 #include "MdcPrintSvc/MdcPrintSvc.h"
00042 
00043 class MdcxCosmicSewer : public Algorithm {
00044 
00045 public: 
00046   // Constructors
00047   MdcxCosmicSewer(const std::string& name, ISvcLocator* pSvcLocator);
00048 
00049   // Destructor
00050   virtual ~MdcxCosmicSewer();
00051 
00052   // Operations
00053   StatusCode initialize();
00054   StatusCode execute();
00055   StatusCode finalize(); 
00056   StatusCode beginRun();  
00057 
00058   void MdcxHitsToHots(HepVector& helix, TrkRecoTrk* trk, HitRefVec& hits, HitRefVec& skiped);
00059   void store(TrkRecoTrk* tk, HitRefVec& skip);
00060   void clearRecMdcTrackHit();
00061   void dumpTdsTrack(RecMdcTrackCol* trackList);
00062 
00063 private:
00064   void getInfo(HepVector helix, double fltLen, HepPoint3D& pos, Hep3Vector & dir);
00065   int patAmbig(int bes3FlagLR);
00066   int bes3FlagLR(int patAmbig);
00067   int                   m_debug;
00068   bool                  m_hist;
00069   bool                  m_doSag;
00070 
00071   std::vector<float>    m_cosmicSewPar;
00072   bool                  m_cosmicSewSkip;
00073   bool                  m_countPropTime; 
00074   bool                  m_lineFit;
00075 
00076   MdcUtilitySvc*        m_mdcUtilitySvc;
00077   MdcPrintSvc*              m_mdcPrintSvc;
00078   const MdcDetector*    m_gm;
00079   IMagneticFieldSvc*    m_pIMF;
00080   BField*               m_bfield;
00081   TrkContextEv*         m_context;
00082   const MdcCalibFunSvc* m_mdcCalibFunSvc; 
00083   RawDataProviderSvc*   m_rawDataProviderSvc;
00084   double                m_bunchT0; 
00085   long                  i_evt;
00086   bool                  m_test;
00087   int                   m_nSewed;
00088 
00089   NTuple::Tuple*        m_xtupleCsmcSew;
00090   NTuple::Item<double>           m_csmcD0;
00091   NTuple::Item<double>           m_csmcPhi0;
00092   NTuple::Item<double>           m_csmcZ0;
00093   NTuple::Item<double>           m_csmcOmega;
00094   NTuple::Item<double>           m_csmcPt;
00095   NTuple::Item<double>           m_csmcTanl;
00096 };
00097 #endif

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