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