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