/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Reconstruction/TrkReco/TrkReco-00-08-59-patch4-slc6tag/TrkReco/TFastFinder.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // $Id: TFastFinder.h,v 1.5 2010/03/31 09:58:59 liucy Exp $
00003 //-----------------------------------------------------------------------------
00004 // Filename : TFastFinder.h
00005 // Section  : Tracking
00006 // Owner    : Yoshi Iwasaki
00007 // Email    : yoshihito.iwasaki@kek.jp
00008 //-----------------------------------------------------------------------------
00009 // Description : A class to find tracks with the conformal method.
00010 //               See http://bsunsrv1.kek.jp/~yiwasaki/tracking/
00011 //-----------------------------------------------------------------------------
00012 
00013 #ifndef TFastFinder_FLAG_
00014 #define TFastFinder_FLAG_
00015 
00016 #ifdef TRKRECO_DEBUG_DETAIL
00017 #ifndef TRKRECO_DEBUG
00018 #define TRKRECO_DEBUG
00019 #endif
00020 #endif
00021 #include "TrkReco/TFinderBase.h"
00022 #include "TrkReco/TBuilder0.h"
00023 class TMLink;
00024 
00026 class TFastFinder : public TFinderBase {
00027 
00028   public:
00030     TFastFinder();
00031 
00033     virtual ~TFastFinder();
00034 
00035   public:// Selectors
00037     std::string name(void) const;
00038 
00040     std::string version(void) const;
00041 
00043     void dump(const std::string & message = std::string(""),
00044               const std::string & prefix = std::string("")) const;
00045 
00046   public:// Modifiers
00048     void clear(void);
00049 
00051     int doit(const AList<TMDCWireHit> & axialHits,
00052              const AList<TMDCWireHit> & stereoHits,
00053              AList<TTrack> & tracks);
00054 
00055   private:
00057     void selectHits(const AList<TMDCWireHit> & axialHits,
00058                     const AList<TMDCWireHit> & stereoHits);
00059 
00061     void selectHits2(const AList<TMDCWireHit> & axialHits,
00062                      const AList<TMDCWireHit> & stereoHits);
00063 
00065     void selectSimpleSegments(const AList<TMDCWireHit> & hits,
00066                               AList<TMDCWireHit> & output) const;
00067 
00069     AList<TMLink> findCloseHits(const AList<TMLink> & links,
00070                                const TTrack & track) const;
00071 
00072   private:
00073     AList<TMDCWireHit> _axialHits;
00074     AList<TMDCWireHit> _stereoHits;
00075     AList<TMLink> _axialLinks;
00076     AList<TMLink> _stereoLinks;
00077 
00078     TBuilder0 _builder;
00079     TMSelector _selector;
00080 };
00081 
00082 //-----------------------------------------------------------------------------
00083 
00084 #ifdef TFastFinder_NO_INLINE
00085 #define inline
00086 #else
00087 #undef inline
00088 #define TFastFinder_INLINE_DEFINE_HERE
00089 #endif
00090 
00091 #ifdef TFastFinder_INLINE_DEFINE_HERE
00092 
00093 inline
00094 std::string
00095 TFastFinder::name(void) const {
00096     return "Fast Finder";
00097 }
00098 
00099 #endif
00100 
00101 #undef inline
00102 
00103 #endif /* TFastFinder_FLAG_ */
00104 

Generated on Tue Nov 29 23:14:17 2016 for BOSS_7.0.2 by  doxygen 1.4.7