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

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 // $Id: TPerfectFinder.h,v 1.5 2010/03/31 09:58:59 liucy Exp $
00003 //-----------------------------------------------------------------------------
00004 // Filename : TPerfectFinder.h
00005 // Section  : Tracking
00006 // Owner    : Yoshi Iwasaki
00007 // Email    : yoshihito.iwasaki@kek.jp
00008 //-----------------------------------------------------------------------------
00009 // Description : A class to find tracks using MC info.
00010 //               See http://bsunsrv1.kek.jp/~yiwasaki/tracking/
00011 //-----------------------------------------------------------------------------
00012 
00013 #ifndef TPERFECTFINDER_FLAG_
00014 #define TPERFECTFINDER_FLAG_
00015 #ifdef TRKRECO_DEBUG_DETAIL
00016 #ifndef TRKRECO_DEBUG
00017 #define TRKRECO_DEBUG
00018 #endif
00019 #endif
00020 #define HEP_SHORT_NAMES
00021 #include "TrkReco/TFinderBase.h"
00022 #include "TrkReco/TMLink.h"
00023 #include "TrkReco/TBuilder.h"
00024 #include "TrkReco/THelixFitter.h"
00025 template <class T> class AList;
00026 
00028 class TPerfectFinder : public TFinderBase {
00029 
00030   public:
00032     TPerfectFinder(int perfectFitting,
00033                    float maxSigma,
00034                    float maxSigmaStereo,
00035                    unsigned fittingFlag);
00036 
00038     virtual ~TPerfectFinder();
00039 
00040   public:// Selectors
00042     std::string name(void) const;
00043 
00045     std::string version(void) const;
00046 
00048     void dump(const std::string & message = std::string(""),
00049               const std::string & prefix = std::string("")) const;
00050 
00052     void clear(void);
00053 
00055     bool perfectFitting(bool);
00056 
00057   public:// Modifiers
00059     int doit(const AList<TMDCWireHit> & axialHits,
00060              const AList<TMDCWireHit> & stereoHits,
00061              AList<TTrack> & tracks,
00062              AList<TTrack> & tracks2D);
00063 
00064   private:
00065     float charge(int pType) const;
00066 
00067   private:
00068     bool _perfectFitting;
00069     AList<TMLink> _links;
00070     float _maxSigma;
00071     float _maxSigmaStereo;
00072     unsigned _fittingFlag;
00073     TBuilder _builder;
00074     THelixFitter _fitter;
00075 };
00076 
00077 //-----------------------------------------------------------------------------
00078 
00079 #ifdef TPERFECTFINDER_NO_INLINE
00080 #define inline
00081 #else
00082 #undef inline
00083 #define TPERFECTFINDER_INLINE_DEFINE_HERE
00084 #endif
00085 
00086 #ifdef TPERFECTFINDER_INLINE_DEFINE_HERE
00087 
00088 inline
00089 std::string
00090 TPerfectFinder::name(void) const {
00091     return "Perfect Finder";
00092 }
00093 
00094 inline
00095 bool
00096 TPerfectFinder::perfectFitting(bool a) {
00097     return _perfectFitting = a;
00098 }
00099 
00100 #endif
00101 
00102 #undef inline
00103 
00104 #endif /* TPERFECTFINDER_FLAG_ */

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