HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HarpoKalman.h
Go to the documentation of this file.
1  #ifndef HARPOKALMAN_H
2 #define HARPOKALMAN_H
3 
5 //
6 // HarpoKalman
7 //
8 // Virtual class for Kalman filter in the HARPO geometry
9 //
10 
11 #include "TObject.h"
12 #include "HarpoAnalyse.h"
13 #include "HarpoEvent.h"
14 #include "HarpoRecoEvent.h"
15 #include "TProfile.h"
16 #include "TH1F.h"
17 #include "TH2F.h"
18 #include "TCanvas.h"
19 #include "TPolyLine.h"
20 #include "TMatrixD.h"
21 #include "TGraphErrors.h"
22 
23 #define NTRACK 100
24 
25 
26 class HarpoKalman : public HarpoAnalyse {
27 
28  public:
29 
30  virtual ~HarpoKalman() {}
31 
33 
34  void Init();
35  void Save(char *mode=NULL);
36  //void process(); //! Ovreloaded medod whic do all job
37  void print();
38 
39  TH1F* hNcl;
40  /* TGraph* GetGraph(Int_t i, Int_t plane = 0) { */
41  /* /\* if(plane<0 || plane>1) return 0; *\/ */
42  /* /\* if(fId[i][plane]<0) return 0; *\/ */
43  /* /\* if(i>=0 && i<fNtr[plane]) return fGraphs[plane][fId[i][plane]]; *\/ */
44  /* /\* //if(i>=0 && i<fNtr[plane]) return fGraphs[plane][i]; *\/ */
45  /* /\* else return 0; *\/ */
46  /* return fGraphs[plane][i]; */
47  /* } */
48  Int_t GetNtr(Int_t plane){if(plane<0 || plane>1) return 0; return fNtr[plane];}
49  /* Int_t GetId(Int_t i,Int_t plane) {return fId[i][plane];} */
50 
51  void SetCanvas(TVirtualPad* c, Int_t plane){fCanvas[plane] = c;}
52  void SetHist(TH2F* h, Int_t plane){fHist[plane] = h;}
53 
54  void SetQmin(Double_t val){fQmin = val;}
55  void SetWidthMinT(Double_t val){fWidthMinT = val;}
56  void SetWidthMinC(Double_t val){fWidthMinC = val;}
57  void SetWidthMax(Double_t val){fWidthMax = val;}
58 
59 
60  protected:
61 
62  TArrayI* FindNext(TMatrixD X, TMatrixD C, Double_t angle, Int_t Ntr, TClonesArray* clArray, TArrayI* arr, Int_t ncl, Int_t plane, Int_t color, Int_t fill,Int_t smooth, Int_t q);
63  TArrayI* FindNextClosest(TMatrixD X, TMatrixD C, Double_t angle, Int_t Ntr, TClonesArray* clArray, TArrayI* arr, Int_t ncl, Int_t plane, Int_t color, Int_t fill,Int_t smooth, Int_t q);
64  Int_t InitPlane(TClonesArray* clArray, Int_t plane);
65 
66  Double_t GetResolution(HarpoRecoClusters* cl);
67 
68  Int_t Ccl[NCHAN][20];
69  Int_t NCcl[NCHAN];
70  Int_t Tcl[NADC][20];
71  Int_t NTcl[NADC];
72  Int_t fNtr[2];
73 
74  Int_t fNclTrack[NTRACK];
75  /* TGraph* fGraphs[2][NTRACK]; */
76 
77 
78  Double_t fStartPointX[NTRACK][10];
79  Double_t fStartPointZ[NTRACK][10];
80  // Double_t fStartAngle[NTRACK][10];
81  Double_t fStartDirX[NTRACK][10];
82  Double_t fStartDirZ[NTRACK][10];
83  Double_t fEndPointX[NTRACK][10];
84  Double_t fEndPointZ[NTRACK][10];
85  Double_t fEndDirX[NTRACK][10];
86  Double_t fEndDirZ[NTRACK][10];
88  Int_t fEndIndex[NTRACK];
89  /* Int_t fId[NTRACK][2]; */
90  /* Double_t fQcommon[NTRACK][NTRACK]; */
91 
92  // Double_t fMapTmp[NCHAN][NADC];
93  ULong64_t fMapTmp[NCHAN][NADC];
94  Double_t fQtot;
95  Double_t fQused;
96 
97  Int_t used[4000];
98  Int_t reused[4000];
99  Int_t fTrack[4000];
100  TVirtualPad* fCanvas[2];
101  TH2F* fHist[2];
102 
103  TH1F* hDistTracks;
107  TH2F* hThetaDist[10];
108 
110  TH2F* fHistQQmin;
111 
112  /* TMatrixD H; */
113  /* TMatrixD Ht; */
114  /* TMatrixD Q; */
115  /* TMatrixD G; */
116  /* TMatrixD V; */
117  /* TMatrixD I; */
118  /* TMatrixD Corig; */
119 
120  Double_t fQmin;
121  Double_t fWidthMinT;
122  Double_t fWidthMinC;
123  Double_t fWidthMax;
124  Int_t fNclMin;
125  Int_t fNclMin2;
126  Double_t fMaxSlopeType;
127  Double_t fResKalman;
128  Double_t fScatKalman;
129  Double_t fResFinder;
130  Double_t fScatFinder;
131 
132 
133  ClassDef(HarpoKalman,1) //Run AnalysePrint
134 };
135 
136 #endif
Int_t NCcl[NCHAN]
Definition: HarpoKalman.h:69
Double_t fScatKalman
Definition: HarpoKalman.h:128
Double_t fStartPointZ[NTRACK][10]
Definition: HarpoKalman.h:79
void SetWidthMinC(Double_t val)
Definition: HarpoKalman.h:56
TH2F * hThetaDist[10]
Definition: HarpoKalman.h:107
#define NCHAN
Definition: HarpoDccMap.h:16
void SetWidthMax(Double_t val)
Definition: HarpoKalman.h:57
void SetWidthMinT(Double_t val)
Definition: HarpoKalman.h:55
Double_t fWidthMax
Definition: HarpoKalman.h:123
A virtual class which define intrafece between HARPO Reader and Event Analysis code.
Definition: HarpoAnalyse.h:47
Int_t fNclMin
Definition: HarpoKalman.h:124
Double_t fQtot
Definition: HarpoKalman.h:94
Double_t fResKalman
Definition: HarpoKalman.h:127
Int_t fTrack[4000]
Definition: HarpoKalman.h:99
TH1F * hThetaTracks
Definition: HarpoKalman.h:105
Int_t used[4000]
Definition: HarpoKalman.h:97
void Save(char *mode=NULL)
TH2F * hThetaTracksNtr
Definition: HarpoKalman.h:106
#define NTRACK
Definition: HarpoKalman.h:23
Double_t fMaxSlopeType
Definition: HarpoKalman.h:126
Double_t fQmin
Definition: HarpoKalman.h:120
Int_t InitPlane(TClonesArray *clArray, Int_t plane)
Definition: HarpoKalman.cxx:54
TH1F * hDistMinTracks
Definition: HarpoKalman.h:104
A virtual class for Kalman tracking.
Definition: HarpoKalman.h:26
TArrayI * FindNextClosest(TMatrixD X, TMatrixD C, Double_t angle, Int_t Ntr, TClonesArray *clArray, TArrayI *arr, Int_t ncl, Int_t plane, Int_t color, Int_t fill, Int_t smooth, Int_t q)
virtual ~HarpoKalman()
Definition: HarpoKalman.h:30
TVirtualPad * fCanvas[2]
Definition: HarpoKalman.h:100
TH1F * hNcl
Redefine empty default.
Definition: HarpoKalman.h:39
Int_t fNclTrack[NTRACK]
Definition: HarpoKalman.h:74
Int_t fEndIndex[NTRACK]
Definition: HarpoKalman.h:88
Cluster object, containing position, charge and quality information.
Double_t fEndPointZ[NTRACK][10]
Definition: HarpoKalman.h:84
Double_t fScatFinder
Definition: HarpoKalman.h:130
ULong64_t fMapTmp[NCHAN][NADC]
Definition: HarpoKalman.h:93
Int_t reused[4000]
Definition: HarpoKalman.h:98
void SetHist(TH2F *h, Int_t plane)
Definition: HarpoKalman.h:52
Int_t NTcl[NADC]
Definition: HarpoKalman.h:71
Double_t fWidthMinC
Definition: HarpoKalman.h:122
Double_t GetResolution(HarpoRecoClusters *cl)
void print()
Definition: HarpoKalman.cxx:39
Double_t fEndDirZ[NTRACK][10]
Definition: HarpoKalman.h:86
#define NADC
Definition: HarpoDccMap.h:18
Int_t fNtr[2]
Definition: HarpoKalman.h:72
Double_t fWidthMinT
Definition: HarpoKalman.h:121
Double_t fStartDirX[NTRACK][10]
Definition: HarpoKalman.h:81
Int_t fNclMin2
Definition: HarpoKalman.h:125
Double_t fResFinder
Definition: HarpoKalman.h:129
void SetCanvas(TVirtualPad *c, Int_t plane)
Definition: HarpoKalman.h:51
TH1F * hDistTracks
Definition: HarpoKalman.h:103
Double_t fEndPointX[NTRACK][10]
Definition: HarpoKalman.h:83
Int_t fStartIndex[NTRACK]
Definition: HarpoKalman.h:87
TArrayI * FindNext(TMatrixD X, TMatrixD C, Double_t angle, Int_t Ntr, TClonesArray *clArray, TArrayI *arr, Int_t ncl, Int_t plane, Int_t color, Int_t fill, Int_t smooth, Int_t q)
Double_t fQused
Definition: HarpoKalman.h:95
Int_t GetNtr(Int_t plane)
Definition: HarpoKalman.h:48
Int_t Tcl[NADC][20]
Definition: HarpoKalman.h:70
Double_t fStartPointX[NTRACK][10]
Definition: HarpoKalman.h:78
Double_t fStartDirZ[NTRACK][10]
Definition: HarpoKalman.h:82
Double_t fEndDirX[NTRACK][10]
Definition: HarpoKalman.h:85
void SetQmin(Double_t val)
Definition: HarpoKalman.h:54
TH2F * fHist[2]
Definition: HarpoKalman.h:101
TH2F * fHistQQmin
Definition: HarpoKalman.h:110
TH2F * fHistQQtestVsDist
Definition: HarpoKalman.h:109
Int_t Ccl[NCHAN][20]
Definition: HarpoKalman.h:68