BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcHoughFinder/MdcHoughFinder-00-00-14/MdcHoughFinder/HoughTrack.h
Go to the documentation of this file.
1#ifndef HOUGHTRACK_H
2#define HOUGHTRACK_H
3
4//#include "Hough/HoughMap.h"
5#include "MdcHoughFinder/HoughPeak.h"
6#include "MdcHoughFinder/Hough2D.h"
7#include "MdcHoughFinder/Hough3D.h"
8#include "MdcHoughFinder/HoughHitList.h"
9#include "MdcHoughFinder/HoughRecHit.h"
10#include "MdcHoughFinder/HoughZsFit.h"
11#include "MdcRawEvent/MdcDigi.h"
12#include <vector>
13#include <utility>
14class HoughTrack{
15typedef std::vector<HoughRecHit> recHitCol;
16 public:
19 HoughTrack(const HoughTrack& other);
20 HoughTrack(const HoughPeak& centerPeak, std::vector<const HoughHit*> trackHitList, double ,double);
21// HoughTrack(const HoughPeak& centerPeak, std::vector<const HoughHit*> trackHitList, int charge);
22 TrkRecoTrk* getTrk() const {return p_trk;}
23 TrkRecoTrk* getTrk2D() const {return p_trk2D;}
24 //vector<MdcHit*>& getVecForClean2D() {return _Hough2D.getVecForClean();}
25 vector<MdcHit*>& getVecForClean3D() {return _Hough3D.getVecForClean();}
26 HoughPeak getCenterPeak() const { return _centerPeak;}
27 Hough2D get2D() const { return _Hough2D;}
28 Hough3D get3D() const { return _Hough3D;}
29 recHitCol& getHoughHitList() { return _recHitVec; }
30 //std::vector<const HoughHit*> getHoughHitList() const{ return _trackHitList; }
31 void setCharge(int charge) {_charge=charge;}
32 int getCharge() const {return _charge;}
33 double getPt_least() const {return _ptLeast;}
34 double getPt2D() const {return _pt2D;}
35 double getPt3D() const {return _pt3D;}
36 double getP() const {return _p;}
37 double getPz() const {return _pz;}
38 double getRho() const {return _centerPeak.getRho();}
39 double getTheta() const {return _centerPeak.getTheta();}
40 double getD0() const {return _d0;}
41 double getOmega() const {return _omega;}
42 double getPhi0() const {return _phi0;}
43 double getTanl() const {return _tanl;}
44 double getZ0() const {return _z0;}
45 double getTanl_zs() const {return _tanl_zs;}
46 double getZ0_zs() const {return _z0_zs;}
47
48 int getHitNum(int) const;
49 int getHitNumA(int) const;
50 int getHitNumS(int) const;
51 int getNfit2D() const {return _Hough2D.getNfit();}
52 int getNfit3D() const {return _Hough3D.getNfit();}
53 int getStat2D() const {return _stat2D;}
54 int getStat3D() const {return _stat3D;}
55
56 double getCirR() const {return _centerR;}
57 double getCirX() const {return _centerX;}
58 double getCirY() const {return _centerY;}
59 double getChi2_3D() const {return _chi2_aver;}
60 double getChi2_2D() const {return _chi2_aver2D;}
61 double getNfit() const {return _nfit;}
62
63 void setHoughHitList(vector<HoughHit> vec_hit) {_houghList=vec_hit;}
64
65 void printRecHit() const;
66 void print() ;
67 void sortHit() ;
68 void fit(double bunchtime);
69 int calzs();
70 void fitzs();
76 static bool m_debug;
78 HoughTrack& add(const HoughTrack& other);
79 int fit2D(double bunchtime);
80 int fit3D();
84 void outerHit();
85 void cald_layer();
86
87 double getMapRho() const {return _maprho;}
88 double getMapTheta() const {return _maptheta;}
89 double getPro() const {return t_pro_correct;}
90 void Leastfit(vector<double>, vector<double>,double&,double&);
91 void setMdcHit(const vector<MdcHit*>* mdchit) {vec_mdcHit= mdchit;}
92
93 private:
94 void hitOnTrack();
95 int judge_half(const HoughRecHit&);
96// void hitOnTrack(recHitCol&);
97 double calcuDistToTrack(const HoughRecHit& );
98 double calcuDistToCir(const HoughRecHit& );
99 std::pair<double,double> calcuArcTrack(const HoughRecHit& );
100 int fitLeast();
101 //int fit_global2D();
102 int fit_global2D(vector<HoughRecHit>& recHit);
103 int fit_global3D(int);
104 int cutMultiCirHit();
105 int cutMultiCirHit_after_zs();
106 int collectAxialHit();
107 void fun(int,int**,int*,int*,vector<HoughRecHit>&,int&);
108
109 //class member
110 double _dist;
111 int _charge;
112 double _ptLeast;
113 double _pt2D;
114 double _pt3D;
115 double _pz;
116 double _p;
117 double _chi2_aver;
118 double _chi2_aver2D;
119 int _nfit;
120 int _nfit2D;
121
122 double _d0;
123 double _omega;
124 double _phi0;
125 double _tanl;
126 double _z0;
127 double _tanl_zs;
128 double _z0_zs;
129 HoughPeak _centerPeak;
130 Hough2D _Hough2D;
131 Hough3D _Hough3D;
132 double _bunchTime;
133 double _centerX;
134 double _centerY;
135 double _centerR;
136 //fit stat
137 int _stat2D;
138 int _stat3D;
139 std::vector<HoughRecHit> _recHitVec;
140 std::vector<HoughHit> _houghList;
141 TrkRecoTrk *p_trk;
142 TrkRecoTrk *p_trk2D;
143 //par on map
144 double _maprho;
145 double _maptheta;
146 double t_pro_correct;
147 const vector<MdcHit*>* vec_mdcHit;
148
149};
150#endif
std::vector< HoughRecHit > recHitCol
void print()
int cut_axial_inner()
void sortHit()
void fitzs()
int trackCharge2D()
int getHitNumS(int) const
int find_stereo_hit()
int getHitNumA(int) const
int fit2D(double bunchtime)
int getHitNum(int) const
void Leastfit(vector< double >, vector< double >, double &, double &)
int trackCharge3D()
int fit3D_inner()
HoughTrack & add(const HoughTrack &other)
void cald_layer()
int judgeTrack()
HoughTrack(const HoughPeak &centerPeak, std::vector< const HoughHit * > trackHitList, double, double)
void outerHit()
void fit(double bunchtime)
HoughTrack & operator=(const HoughTrack &other)
int cutNoise_inner()
void printRecHit() const
HoughTrack(const HoughTrack &other)
int find_pair_hit()
float charge