00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MDCSEGFINDER_H
00021 #define MDCSEGFINDER_H
00022
00023 #include "MdcTrkRecon/MdcSegPatterns.h"
00024
00025 class MdcSegList;
00026 class MdcSegUsage;
00027 template <class K, class V> class MdcMap;
00028 class MdcHit;
00029 class MdcDetector;
00030 class MdcLine;
00031 class MdcSuperLayer;
00032 class MdcSeg;
00033 class MdcHitMap;
00034
00035
00036 class MdcSegFinder {
00037
00038 public:
00039 MdcSegFinder(int useAllAmbig);
00040 ~MdcSegFinder() { };
00041 int createSegs(const MdcDetector *gm, MdcSegList &segs,
00042 const MdcMap<const MdcHit*, MdcSegUsage*>& usedHits, const MdcHitMap* map,double tbunch);
00043 MdcSegPatterns* thePattList() {return &patternList;}
00044
00045 private:
00046 MdcSegPatterns patternList;
00047 int tryPatterns(MdcHit *groupHits[8], unsigned groupWord, int nhit,
00048 int lPrevHit, int npatt, int *allowedPatt, const MdcSuperLayer *slayer,
00049 MdcSegList &segs, const MdcMap<const MdcHit*, MdcSegUsage*>& usedHits, const MdcHitMap*,
00050 double bunchTime);
00051
00052 bool _addHits;
00053
00054 MdcSegFinder& operator= (const MdcSegFinder&);
00055 MdcSegFinder(const MdcSegFinder &);
00056 };
00057 #endif
00058
00059
00060
00061
00062
00063
00064