CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcHoughFinder/MdcHoughFinder-00-00-12/MdcHoughFinder/Hough3D.h
Go to the documentation of this file.
1#ifndef Hough3D_H
2#define Hough3D_H
3
4#include "MdcHoughFinder/HoughHit.h"
5//#include "Hough/HoughCircle.h"
6#include "MdcHoughFinder/Hough2D.h"
7#include "MdcHoughFinder/HoughRecHit.h"
8#include "MdcHoughFinder/HoughGlobal.h"
9#include "MdcData/MdcRecoHitOnTrack.h"
10
11#include "TrkFitter/TrkContextEv.h"
12#include "BField/BField.h"
13#include "MdcGeom/MdcDetector.h"
14#include "TrkBase/TrkFit.h"
15#include "TrkBase/TrkHitList.h"
16#include "TrkBase/TrkExchangePar.h"
17#include "TrkFitter/TrkHelixMaker.h"
18#include "TrkFitter/TrkCircleMaker.h"
19#include "TrkFitter/TrkLineMaker.h"
20#include "CgemCalibFunSvc/CgemCalibFunSvc.h"
21#include "CgemGeomSvc/CgemGeomSvc.h"
22//typedef std::vector<const HoughHit*> HitPtrCol;
23typedef std::vector<HoughRecHit> recHitCol;
24extern vector<MdcHit*> vec_for_clean;
25extern vector<TrkRecoTrk*> vectrk_for_clean;
26
27class Hough3D {
28 public:
30 Hough3D(const Hough3D& other);
31 Hough3D(const Hough2D& hough2D,recHitCol hitCol,double bunchtime,double tanl,double z0);
32 Hough3D(const Hough2D& hough2D,recHitCol hitCol,double bunchtime,double tanl,double z0,const vector<MdcHit*>* mdchit);
33 //TrkRecoTrk* getTrk() const {return p_trk;}
34 TrkRecoTrk* getTrk() const {return newTrack;}
35// Hough3D(const Hough2D& hough2D,recHitCol hitCol,double bunchtime,double d0,double phi0,double omega,double tanl,double z0);
36 double getCirX() const {return _circleX;}
37 double getCirY() const {return _circleY;}
38 double getCirR() const {return _circleR;}
39 double getD0() const {return _d0;}
40 double getPhi0() const {return _phi0;}
41 double getOmega() const {return _omega;}
42 double getZ0() const {return _z0;}
43 double getTanl() const {return _tanl;}
44 int getCharge() const {return _charge;}
45 int getNfit() const {return _nfit;}
46 vector<MdcHit*>& getVecForClean() {return vec_for_clean;}
47
48 void setD0(double d0) {_d0=d0;}
49 void setPhi0(double phi0) {_phi0=phi0;}
50 void setOmega(double omega) {_omega=omega;}
51 void setZ0(double z0) {_z0=z0;}
52 void setTanl(double tanl) {_tanl=tanl;}
53
54 void setBunchT0(double bunchT0) {_bunchT0=bunchT0;}
55 void setRecHit(const recHitCol& rechit) {_recHitVec=rechit;}
56 void setCharge(int charge) {_charge=charge;}
57 static void setContext(TrkContextEv* context) {_context=context;}
58 static void setCalib(const MdcCalibFunSvc* mdcCalibFunSvc) {_mdcCalibFunSvc=mdcCalibFunSvc;}
59 static void setCalib(const CgemCalibFunSvc* cgemCalibFunSvc) {_cgemCalibFunSvc=cgemCalibFunSvc;}
60 static void setGeomSvc(const CgemGeomSvc* cgemGeomSvc) {_cgemGeomSvc=cgemGeomSvc;}
61
62 int fit();
63 void outerHit();
64 //int digiToHots(TrkRecoTrk *newTrack);
65 void printRecHit() const;
66 double getPt() const {return _pt;}
67 double getPz() const {return _pz;}
68 double getP() const {return _p;}
69 double getChi2() const {return _chi2_aver;}
70
71 static int m_debug;
72 static TrkContextEv* _context;
73 static const MdcCalibFunSvc* _mdcCalibFunSvc;
75 static const CgemGeomSvc* _cgemGeomSvc;
76 //fit status
77 static int m_qualityFactor;
78 static double m_dropTrkChi2Cut;
79 static double m_dropTrkDrCut;
80 static double m_dropTrkDzCut;
81 static double m_dropTrkNhitCut;
82 static double m_dropTrkChi2NdfCut;
83 //static int m_cgemfit;
84
85 //void setcgemfitflag(int cgemfitflag) {m_cgemfit = cgemfitflag;
86 void print();
87
88 private:
89
90 double _circleR;
91 double _circleX;
92 double _circleY;
93 int _charge;
94 double _d0;
95 double _phi0;
96 double _omega;
97 double _tanl;
98 double _z0;
99
100 double _pt;
101 double _pz;
102 double _p;
103 int _nfit;
104 double _chi2_aver;
105
106 double _bunchT0;
107 const MdcDetector* _m_gm;
108 recHitCol _recHitVec;
109 TrkRecoTrk* newTrack;
110 const vector<MdcHit*>* vec_mdcHit;
111
112};
113#endif
vector< TrkRecoTrk * > vectrk_for_clean
Definition: Hough3D.cxx:5
vector< MdcHit * > vec_for_clean
Definition: Hough3D.cxx:4
void print()
int fit()
void outerHit()
static void setCalib(const MdcCalibFunSvc *mdcCalibFunSvc)
void printRecHit() const
Hough3D(const Hough2D &hough2D, recHitCol hitCol, double bunchtime, double tanl, double z0, const vector< MdcHit * > *mdchit)
static void setCalib(const CgemCalibFunSvc *cgemCalibFunSvc)
Hough3D(const Hough3D &other)
Hough3D(const Hough2D &hough2D, recHitCol hitCol, double bunchtime, double tanl, double z0)
static const CgemCalibFunSvc * _cgemCalibFunSvc