CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcHoughFinder/MdcHoughFinder-00-00-12/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, int);
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;
67 void print() ;
68 void sortHit() ;
69 void fit(double bunchtime);
70 int calzs();
71 void fitzs();
77 static bool m_debug;
78 static bool m_globalfit;
80 HoughTrack& add(const HoughTrack& other);
81 int fit2D(double bunchtime);
82 int fit3D();
86 void outerHit();
87 void cald_layer();
88
89 double getMapRho() const {return _maprho;}
90 double getMapTheta() const {return _maptheta;}
91 double getPro() const {return t_pro_correct;}
92 void Leastfit(vector<double>, vector<double>,double&,double&);
93 void setMdcHit(const vector<MdcHit*>* mdchit) {vec_mdcHit= mdchit;}
94 void setMcPar(std::map<int, const HepVector > mcTkPars){g_tkParTruth = mcTkPars;}
95 std::map< int, const HepVector > g_tkParTruth;
96 double getbunchTime() {return _bunchTime;}
97 void setbunchTime(double t) {_bunchTime = t;}
98 int getTrkid() {return _trkid;}
99 int fitLeast();
100 double intersect_cylinder(double r_cylinder, double r_center, double phi_center, int charge);
101 double intersect_cylinder(int charge, double x_center, double y_center, double r_cylinder);
102
103 private:
104 void hitOnTrack();
105 int judge_half(const HoughRecHit&);
106// void hitOnTrack(recHitCol&);
107 double calcuDistToTrack(const HoughRecHit& );
108 double calcuDistToCir(const HoughRecHit& );
109 std::pair<double,double> calcuArcTrack(const HoughRecHit& );
110 //int fit_global2D();
111 int fit_global2D(vector<HoughRecHit>& recHit);
112 int fit_global3D(int);
113 int cutMultiCirHit();
114 int cutMultiCirHit_after_zs();
115 int collectAxialHit();
116 void fun(int,int**,int*,int*,vector<HoughRecHit>&,int&);
117
118 //class member
119 double _dist;
120 int _charge;
121 double _ptLeast;
122 double _pt2D;
123 double _pt3D;
124 double _pz;
125 double _p;
126 double _chi2_aver;
127 double _chi2_aver2D;
128 int _nfit;
129 int _nfit2D;
130
131 double _d0;
132 double _omega;
133 double _phi0;
134 double _tanl;
135 double _z0;
136 double _tanl_zs;
137 double _z0_zs;
138 HoughPeak _centerPeak;
139 Hough2D _Hough2D;
140 Hough3D _Hough3D;
141 double _bunchTime;
142 double _centerX;
143 double _centerY;
144 double _centerR;
145 //fit stat
146 int _stat2D;
147 int _stat3D;
148 std::vector<HoughRecHit> _recHitVec;
149 std::vector<HoughHit> _houghList;
150 TrkRecoTrk *p_trk;
151 TrkRecoTrk *p_trk2D;
152 //par on map
153 double _maprho;
154 double _maptheta;
155 double t_pro_correct;
156 const vector<MdcHit*>* vec_mdcHit;
157 int _trkid;
158
159};
160#endif
std::vector< HoughRecHit > recHitCol
void print()
int cut_axial_inner()
void sortHit()
void fitzs()
void printHoughTrack()
HoughTrack(const HoughPeak &centerPeak, std::vector< const HoughHit * > trackHitList, double, double, int)
int trackCharge2D()
int getHitNumS(int) const
int find_stereo_hit()
double intersect_cylinder(int charge, double x_center, double y_center, double r_cylinder)
int fitLeast()
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()
void outerHit()
void fit(double bunchtime)
HoughTrack & operator=(const HoughTrack &other)
int cutNoise_inner()
void printRecHit() const
HoughTrack(const HoughTrack &other)
double intersect_cylinder(double r_cylinder, double r_center, double phi_center, int charge)
int find_pair_hit()
int t()
Definition: t.c:1