BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcHoughFinder/MdcHoughFinder-00-00-14/MdcHoughFinder/HoughMap.h
Go to the documentation of this file.
1#ifndef HOUGHMAP_H
2#define HOUGHMAP_H
3
4#include <vector>
5#include "TH2D.h"
6#include "TF1.h"
7#include "TGraph.h"
8#include "MdcHoughFinder/HoughHit.h"
9#include "MdcHoughFinder/HoughHitList.h"
10#include "MdcHoughFinder/HoughPeak.h"
11#include "MdcHoughFinder/HoughTrack.h"
12#include <memory>
13
14using namespace std;
15
16//class HoughPeak;
17
18class HoughMap{
19 public:
20 HoughMap(int charge, HoughHitList &houghHitList,int mapHit,int ntheta,int nrho,double rhoMin,double rhoMaxi,int peakWidth,int peakHigh,double hitpro);
22 HoughMap(const HoughMap& other);
23 void doMap();
25
26 TH2D* getMdcHoughFinder() const {return _houghSpace;}
27// TH2D* getHoughR() const {return _houghR;}
28 const HoughHitList& getHitList() const {return _hitList;}
29 //
30 int getPeakNumber() const {return _houghPeakList.size();}
31 int getTrackNumber() const {return _houghTrackList.size();}
32 const HoughPeak& getPeak(int i) const {return _houghPeakList[i];}
33 const HoughTrack& getTrack(int i) const {return _houghTrackList[i];}
34 //HoughPeak& getPeak(int i) {return _houghPeakList[i];}
35
36 const vector<HoughPeak> getPeakList() const {return _houghPeakList;}
37 const vector<HoughTrack> getTrackList() const {return _houghTrackList;}
38// vector<const HoughHit*> getMapHitList(int i,int j) const {return _mapHitList[i][j];}
39 int getPeakWidth() const {return _peakWidth;}
40 int getPeakHigh() const {return _peakHigh;}
41 int getNTheta() const {return _nTheta;}
42 int getNRho() const {return _nRho;}
43// double** getNL() const {return _houghNL;}
44// double** getRL() const {return _houghRL;}
45// double** getS2() const {return _houghS2;}
46// double** getS() const {return _houghS;}
47 void printPeak();
48 void printTrack();
49 void clearMap();
50
51 //unused
53 vector<double> get_maxlayer_slant() const {return maxlayer_slant;}
54 double get_maxlayer() const {return m_maxlayer;}
55 vector<double> get_nomaxlayer_slant() const {return nomaxlayer_slant;}
56 vector<int> get_nomaxlayerid() const {return nomaxlayerid;}
57
58 static int m_debug;
59 static int m_useHalfCir;
60 static int m_N1;
61 static int m_N2;
62
63 //unused
64 double Rho;
65 double Theta;
66 double Height;
67 //
68 int MAX;
69
70 double exTheta(int,double ,double ,int );
71 double exRho(int,double ,double ,int );
72 int exThetaBin(double );
73 int exRhoBin(double );
75
76 private:
77 void buildMap();
78 void findPeaks(vector< vector<int> > vec_hist,double ,double ,double ,double );
79 //void loopPeak(double ,double ,int ,int, double hist[1000][1000]);
80 void loopPeak(double ,double ,int ,int);
81 void sortPeaks();
82 void hitFinding();
83 void trackFinder();
84 void compareTrack_and_Peak(HoughTrack& track,HoughPeak& peak);
85 // distribution of noise and peak
86 void mapDev(vector< vector<int> > vec_hist,double& aver ,double& sigma);
87 void mapDev(TH2D* h,double& aver ,double& sigma);
88
89 //unused
90 int mergeNeighbor(int** hough_trans_CS_peak,double ,double ,double ,double );
91 void combineNeighbor(int ipeak);
92 void combine_two_cells(vector< const HoughHit* >&cellHitList,int ax,int py);
93 void candiTrack();
94
95 //in study
96 void gravity();
97 void cald_layer();
98 void Leastfit(vector<double>, vector<double>,double&,double&);
99
100 //class member
101 int _mapHit; //0 all ; 1 axial
102 int _nTheta; //number of theta bin
103 int _nRho; //number of rho bin
104 double _thetaMin; //0
105 double _thetaMax; //M_PI
106 double _rhoMin; // -0.1
107 double _rhoMax; // 0.1
108 int _peakWidth; //no use ?
109 int _peakHigh; //no use ?
110 double _hitpro; // proportion cut in other track
111 int _charge; //map charge
112 HoughHitList _hitList;//hit list in this space
113 vector<HoughPeak> _houghPeakList;//peak list of HoughRec space
114 vector<HoughTrack> _houghTrackList;//peak list of HoughRec space
115 TH2D* _houghSpace;//accumulate array of HoughRec space
116 //double** _houghRL;
117 //double** _houghNL;
118 //TH2D* _houghR;
119// double** _houghS;
120// double** _houghS2;
121// vector< const HoughHit* >** _mapHitList;//hits of each bin in the accumulate array
122
123 // in map study
124 vector<double> maxlayer_slant;
125 double m_maxlayer;
126 vector<double> nomaxlayer_slant;
127 vector<int> nomaxlayerid;
128
129
130
131};
132#endif
133
TTree * sigma
void printPeak()
HoughMap(const HoughMap &other)
void clearMap()
void select_slant()
void printMapHit()
HoughMap(int charge, HoughHitList &houghHitList, int mapHit, int ntheta, int nrho, double rhoMin, double rhoMaxi, int peakWidth, int peakHigh, double hitpro)
int exRhoBin(double)
void doMap()
double exRho(int, double, double, int)
void printTrack()
int exThetaBin(double)
double exTheta(int, double, double, int)
float charge