00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _MDCXSEGS_
00022 #define _MDCXSEGS_
00023
00024 #include <iostream>
00025 #include <fstream>
00026 #include "CLHEP/Alist/AList.h"
00027 #include "MdcxReco/MdcxFittedHel.h"
00028 #include "MdcxReco/MdcxSeg.h"
00029 #include "MdcxReco/MdcxSegPatterns.h"
00030
00031 class MdcxHit;
00032 class MdcDetector;
00033
00034 class MdcxFindSegs{
00035 public:
00036 MdcxFindSegs(MdcDetector* g, const HepAList<MdcxHit> &l, int m_debug = 0);
00037 MdcxFindSegs(const HepAList<MdcxHit> &l, int debug = 0);
00038 virtual ~MdcxFindSegs( );
00039 void initWireGroups(void);
00040 void process();
00041
00042 inline const HepAList<MdcxSeg> &GetMdcxSeglist(){return MdcxSeglist;}
00043 void appendseg(MdcxFittedHel& fithel, int pat, int amb);
00044 void printseg(MdcxFittedHel& fithel, int pat,int amb,int subtry=0);
00045 void print(std::ostream &o,int pmax=10)const;
00046 inline void setDebug(bool debug=0){m_debug = debug;}
00047 protected:
00048 HepAList<MdcxSeg> MdcxSeglist;
00049
00050 MdcxFittedHel trial(int i1, int i2, int i3, int i4, int amb);
00051 MdcxFittedHel trial(int i1, int i2, int i3, int amb);
00052 void KillList(){HepAListDeleteAll(MdcxSeglist);}
00053 int sl;
00054
00055 MdcxFittedHel fithel;
00056 int nseg;
00057
00058 const MdcDetector* gm;
00059 HepAList<MdcxHit> dchitlist;
00060 int m_debug;
00061 MdcxSegPatterns m_segPat;
00062
00063 static int wireGroups[11][288][16];
00064 };
00065
00066 #endif