00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef TFinderBase_FLAG_
00014 #define TFinderBase_FLAG_
00015
00016 #ifdef TRKRECO_DEBUG_DETAIL
00017 #ifndef TRKRECO_DEBUG
00018 #define TRKRECO_DEBUG
00019 #endif
00020 #endif
00021
00022 #include <string>
00023
00024 #define HEP_SHORT_NAMES
00025 #include "CLHEP/Alist/AList.h"
00026
00027 class TMDCWireHit;
00028 class TTrack;
00029
00031 class TFinderBase {
00032
00033 public:
00035 TFinderBase();
00036
00038 virtual ~TFinderBase();
00039
00040 public:
00042 virtual std::string name(void) const = 0;
00043
00045 virtual std::string version(void) const= 0;
00046
00048 virtual void dump(const std::string & message = std::string(""),
00049 const std::string & prefix = std::string("")) const;
00050
00052 virtual int debugLevel(void) const;
00053
00054 public:
00056 virtual void clear(void) = 0;
00057
00059 virtual int debugLevel(int);
00060
00062 virtual bool doStereo(bool);
00063
00065 virtual bool doSalvage(bool);
00066
00068 virtual int doit(const AList<TMDCWireHit> & axialHits,
00069 const AList<TMDCWireHit> & stereoHits,
00070 AList<TTrack> & tracks3D,
00071 AList<TTrack> & tracks2D) = 0;
00072
00073 private:
00074 int _debugLevel;
00075 };
00076
00077
00078
00079 #ifdef TFinderBase_NO_INLINE
00080 #define inline
00081 #else
00082 #undef inline
00083 #define TFinderBase_INLINE_DEFINE_HERE
00084 #endif
00085
00086 #ifdef TFinderBase_INLINE_DEFINE_HERE
00087
00088 inline
00089 int
00090 TFinderBase::debugLevel(void) const {
00091 return _debugLevel;
00092 }
00093
00094 inline
00095 int
00096 TFinderBase::debugLevel(int a) {
00097 return _debugLevel = a;
00098 }
00099
00100 inline
00101 bool
00102 TFinderBase::doStereo(bool a) {
00103 return a;
00104 }
00105
00106 inline
00107 bool
00108 TFinderBase::doSalvage(bool a) {
00109 return a;
00110 }
00111
00112 #endif
00113
00114 #undef inline
00115
00116 #endif