00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef MDCXFINDTRACKS_HH
00023 #define MDCXFINDTRACKS_HH
00024
00025 #include <iostream>
00026 #include <fstream>
00027 #include "CLHEP/Alist/AList.h"
00028 #include "MdcxReco/MdcxHel.h"
00029 #include "MdcxReco/MdcxFittedHel.h"
00030 #include "MdcxReco/MdcxSeg.h"
00031
00032 class MdcxFindTracks{
00033 public:
00034 MdcxFindTracks();
00035 MdcxFindTracks(const HepAList<MdcxSeg> &f, int debug = 0);
00036 virtual ~MdcxFindTracks();
00037
00038
00039 inline const HepAList<MdcxFittedHel> &GetMdcxTrklist(){return MdcxTrklist;}
00040 void process( const HepAList<MdcxSeg> &f);
00041 void print(std::ostream &o);
00042 void plot()const;
00043
00044
00045 protected:
00046
00047 HepAList<MdcxFittedHel> MdcxTrklist;
00048 MdcxHel mhel;
00049 float probmin;
00050 float curvmax;
00051 int ngood;
00052 int npure;
00053 int nbad;
00054 int nfail;
00055 int nhitsmc;
00056 int nhitsgd;
00057 int m_debug;
00058 bool m_doSag;
00059
00060
00061 void KillList(){HepAListDeleteAll(MdcxTrklist);}
00062 void beginmore();
00063 void endmore();
00064 double findz_sl(int i1, int i2, const HepAList<MdcxSeg> &slclus);
00065 double findz_cyl(int i1, int i2, const HepAList<MdcxSeg> &slclus);
00066 double dlen(int slay1, double p1, int slay2, double p2, double om);
00067
00068 MdcxFittedHel drophits(MdcxFittedHel* f);
00069 MdcxHel TakeToOrigin(MdcxHel& );
00070 void resout(MdcxFittedHel* f);
00071 void printpar(std::ostream &o);
00072 bool testFromSameTrack(MdcxSeg* seg1, MdcxSeg* seg2);
00073
00074 };
00075
00076 #endif