BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
HoughTrack.h
Go to the documentation of this file.
1#ifndef HOUGHTRACK_H
2#define HOUGHTRACK_H
3
4//#include "Hough/HoughMap.h"
11#include "MdcRawEvent/MdcDigi.h"
12#include <vector>
13#include <utility>
15typedef std::vector<HoughRecHit> recHitCol;
16 public:
17 HoughTrack();
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();
71 int judgeTrack();
72 int find_stereo_hit();
73 int find_pair_hit();
74 int cutNoise_inner();
75 int cut_axial_inner();
76 static bool m_debug;
77 HoughTrack& operator=(const HoughTrack& other);
78 HoughTrack& add(const HoughTrack& other);
79 int fit2D(double bunchtime);
80 int fit3D();
81 int fit3D_inner();
82 int trackCharge2D();
83 int trackCharge3D();
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
double getNfit() const
Definition: Hough2D.h:62
vector< MdcHit * > & getVecForClean()
Definition: Hough3D.h:44
int getNfit() const
Definition: Hough3D.h:43
double getTheta() const
Definition: HoughPeak.h:25
double getRho() const
Definition: HoughPeak.h:26
TrkRecoTrk * getTrk() const
Definition: HoughTrack.h:22
void print()
Definition: HoughTrack.cxx:994
double getD0() const
Definition: HoughTrack.h:40
double getPt_least() const
Definition: HoughTrack.h:33
int cut_axial_inner()
Definition: HoughTrack.cxx:733
double getPt2D() const
Definition: HoughTrack.h:34
void sortHit()
Definition: HoughTrack.cxx:187
double getZ0() const
Definition: HoughTrack.h:44
void fitzs()
Definition: HoughTrack.cxx:584
int getNfit2D() const
Definition: HoughTrack.h:51
double getPhi0() const
Definition: HoughTrack.h:42
int getStat3D() const
Definition: HoughTrack.h:54
void setHoughHitList(vector< HoughHit > vec_hit)
Definition: HoughTrack.h:63
recHitCol & getHoughHitList()
Definition: HoughTrack.h:29
TrkRecoTrk * getTrk2D() const
Definition: HoughTrack.h:23
double getCirY() const
Definition: HoughTrack.h:58
int trackCharge2D()
Definition: HoughTrack.cxx:820
int getHitNumS(int) const
Definition: HoughTrack.cxx:643
double getCirX() const
Definition: HoughTrack.h:57
static bool m_debug
Definition: HoughTrack.h:76
int find_stereo_hit()
Definition: HoughTrack.cxx:697
double getNfit() const
Definition: HoughTrack.h:61
int getStat2D() const
Definition: HoughTrack.h:53
int getHitNumA(int) const
Definition: HoughTrack.cxx:618
Hough2D get2D() const
Definition: HoughTrack.h:27
double getPro() const
Definition: HoughTrack.h:89
int fit2D(double bunchtime)
Definition: HoughTrack.cxx:190
double getOmega() const
Definition: HoughTrack.h:41
int getHitNum(int) const
Definition: HoughTrack.cxx:594
double getPt3D() const
Definition: HoughTrack.h:35
vector< MdcHit * > & getVecForClean3D()
Definition: HoughTrack.h:25
void Leastfit(vector< double >, vector< double >, double &, double &)
Definition: HoughTrack.cxx:857
int trackCharge3D()
Definition: HoughTrack.cxx:838
double getTanl() const
Definition: HoughTrack.h:43
void setMdcHit(const vector< MdcHit * > *mdchit)
Definition: HoughTrack.h:91
int fit3D_inner()
Definition: HoughTrack.cxx:312
HoughTrack & add(const HoughTrack &other)
Definition: HoughTrack.cxx:126
double getP() const
Definition: HoughTrack.h:36
void cald_layer()
Definition: HoughTrack.cxx:879
double getMapTheta() const
Definition: HoughTrack.h:88
double getRho() const
Definition: HoughTrack.h:38
Hough3D get3D() const
Definition: HoughTrack.h:28
int judgeTrack()
Definition: HoughTrack.cxx:669
void outerHit()
Definition: HoughTrack.cxx:207
double getTheta() const
Definition: HoughTrack.h:39
void fit(double bunchtime)
HoughTrack & operator=(const HoughTrack &other)
Definition: HoughTrack.cxx:19
void setCharge(int charge)
Definition: HoughTrack.h:31
int getNfit3D() const
Definition: HoughTrack.h:52
double getChi2_2D() const
Definition: HoughTrack.h:60
int cutNoise_inner()
Definition: HoughTrack.cxx:762
void printRecHit() const
Definition: HoughTrack.cxx:795
double getChi2_3D() const
Definition: HoughTrack.h:59
double getCirR() const
Definition: HoughTrack.h:56
double getMapRho() const
Definition: HoughTrack.h:87
double getTanl_zs() const
Definition: HoughTrack.h:45
int find_pair_hit()
Definition: HoughTrack.cxx:946
HoughPeak getCenterPeak() const
Definition: HoughTrack.h:26
double getZ0_zs() const
Definition: HoughTrack.h:46
double getPz() const
Definition: HoughTrack.h:37
int getCharge() const
Definition: HoughTrack.h:32
float charge