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