HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HarpoKalmanNew.h
Go to the documentation of this file.
1  #ifndef HARPOKALMANNEW_H
2 #define HARPOKALMANNEW_H
3 
5 //
6 // HarpoKalmanNew
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 #include "TRootEmbeddedCanvas.h"
23 
24 #define NTRACK 100
25 
26 #include <vector>
27 
28 class HarpoKalmanNew : public HarpoAnalyse {
29 
30  public:
31 
32  virtual ~HarpoKalmanNew() {}
33 
35 
36  void Init();
37  void Save(char *mode=NULL);
38  void process();
39  void print();
40 
41  TH1F* hNcl;
42  /* TGraph* GetGraph(Int_t i, Int_t plane = 0) { */
43  /* /\* if(plane<0 || plane>1) return 0; *\/ */
44  /* /\* if(fId[i][plane]<0) return 0; *\/ */
45  /* /\* if(i>=0 && i<fNtr[plane]) return fGraphs[plane][fId[i][plane]]; *\/ */
46  /* /\* //if(i>=0 && i<fNtr[plane]) return fGraphs[plane][i]; *\/ */
47  /* /\* else return 0; *\/ */
48  /* return fGraphs[plane][i]; */
49  /* } */
50  Int_t GetNtr(Int_t plane){if(plane<0 || plane>1) return 0; return fNtr[plane];}
51  /* Int_t GetId(Int_t i,Int_t plane) {return fId[i][plane];} */
52  Int_t GetNclCommon(TClonesArray* clArray, Int_t plane, Int_t iTr1, Int_t iTr2);
53 
54  void SetCanvas(TVirtualPad* c, Int_t plane){fCanvas[plane] = c;}
55  void SetHist(TH2F* h, Int_t plane){fHist[plane] = h;}
56 
57  void DisplayAnalysis(TRootEmbeddedCanvas* ecTab, TGListBox* infobox);
58 
59  Int_t InitPlane(TClonesArray* clArray, Int_t plane);
60  std::vector<TMatrixD> NextStep(TMatrixD X, TMatrixD C, 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, Bool_t finder = kTRUE);
61 
62  void SetLambdaMin(Double_t val){fLambdaMin = val;}
63  void SetLambdaMax(Double_t val){fLambdaMax = val;}
64  void SetQmin(Double_t val){fQmin = val;}
65  void SetWidthMinT(Double_t val){fWidthMinT = val;}
66  void SetWidthMinC(Double_t val){fWidthMinC = val;}
67  void SetWidthMax(Double_t val){fWidthMax = val;}
68  void SetNclMin(Int_t val){fNclMin = val;}
69  void SetNclMin2(Int_t val){fNclMin2 = val;}
70  void SetMaxSlopeType(Double_t val){fMaxSlopeType = val;}
71  void SetResKalman(Double_t val){fResKalman = val;}
72  void SetScatKalman(Double_t val){fScatKalman = val;}
73  void SetResFinder(Double_t val){fResFinder = val;}
74  void SetScatFinder(Double_t val){fScatFinder = val;}
75 
76 
77  protected:
78 
79 /* //TArrayI* */
80 /* void FindNext(TMatrixD X, TMatrixD C, Double_t angle, Double_t angle2, 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); */
81 /* //TArrayI* */
82 /* void FindNextClosest(TMatrixD X, TMatrixD C, Double_t angle, Double_t angle2, 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); */
83 
84  Double_t GetResolution(HarpoRecoClusters* cl);
85 
86 
87  Int_t FindClosestNeighbour(TMatrixD X, Int_t iTr, TClonesArray* clArray, Int_t plane, Int_t color, Int_t fill, Bool_t finder = kTRUE);
88 
89 
90 
91 
92 
93  Int_t Ccl[NCHAN][20];
94  Int_t NCcl[NCHAN];
95  Int_t Tcl[NADC][20];
96  Int_t NTcl[NADC];
97  Int_t fNtr[2];
98 
99  Int_t fNclTrack[NTRACK];
100  TGraph* fGraph[2][NTRACK];
101  TGraph* fGraph2[2][NTRACK];
102 
103 
104  Double_t fStartPointX[NTRACK][10];
105  Double_t fStartPointZ[NTRACK][10];
106  // Double_t fStartAngle[NTRACK][10];
107  Double_t fStartDirX[NTRACK][10];
108  Double_t fStartDirZ[NTRACK][10];
109  Double_t fEndPointX[NTRACK][10];
110  Double_t fEndPointZ[NTRACK][10];
111  Double_t fEndDirX[NTRACK][10];
112  Double_t fEndDirZ[NTRACK][10];
115  /* Int_t fId[NTRACK][2]; */
116  /* Double_t fQcommon[NTRACK][NTRACK]; */
117 
118  // Double_t fMapTmp[NCHAN][NADC];
119  ULong64_t fMapTmp[NCHAN][NADC];
120  Double_t fQtot;
121  Double_t fQused;
122 
123  Int_t used[4000];
124  Int_t reused[4000];
125  Int_t fTrack[4000];
126  TVirtualPad* fCanvas[2];
127  TH2F* fHist[2];
128 
129  TH1F* hChi2;
130  TH1F* hDistTracks;
134  TH2F* hThetaDist[10];
135 
137  TH2F* fHistQQmin;
138 
139  /* TMatrixD H; */
140  /* TMatrixD Ht; */
141  /* TMatrixD Q; */
142  /* TMatrixD G; */
143  /* TMatrixD V; */
144  /* TMatrixD I; */
145  /* TMatrixD Corig; */
146 
147  Double_t fLambdaMin;
148  Double_t fLambdaMax;
149  Double_t fQmin;
150  Double_t fWidthMinT;
151  Double_t fWidthMinC;
152  Double_t fWidthMax;
153  Int_t fNclMin;
154  Int_t fNclMin2;
155  Double_t fMaxSlopeType;
156  Double_t fResKalman;
157  Double_t fScatKalman;
158  Double_t fResFinder;
159  Double_t fScatFinder;
160 
161  Int_t nEvents;
162 
163  ClassDef(HarpoKalmanNew,1) //Run AnalysePrint
164 };
165 
166 #endif
Double_t fScatKalman
void SetMaxSlopeType(Double_t val)
Double_t fEndPointZ[NTRACK][10]
TH1F * hNcl
Redefine empty default.
void SetScatFinder(Double_t val)
TH2F * hThetaTracksNtr
void SetScatKalman(Double_t val)
void SetWidthMax(Double_t val)
Double_t fStartDirZ[NTRACK][10]
Int_t Tcl[NADC][20]
#define NCHAN
Definition: HarpoDccMap.h:16
Double_t fWidthMax
Double_t fWidthMinT
Int_t FindClosestNeighbour(TMatrixD X, Int_t iTr, TClonesArray *clArray, Int_t plane, Int_t color, Int_t fill, Bool_t finder=kTRUE)
A virtual class which define intrafece between HARPO Reader and Event Analysis code.
Definition: HarpoAnalyse.h:47
Int_t GetNclCommon(TClonesArray *clArray, Int_t plane, Int_t iTr1, Int_t iTr2)
TGraph * fGraph2[2][NTRACK]
Double_t GetResolution(HarpoRecoClusters *cl)
void SetQmin(Double_t val)
Double_t fStartDirX[NTRACK][10]
Int_t reused[4000]
void SetResFinder(Double_t val)
void SetResKalman(Double_t val)
Int_t fTrack[4000]
void SetNclMin2(Int_t val)
Double_t fLambdaMax
#define NTRACK
TH2F * fHistQQtestVsDist
Int_t NCcl[NCHAN]
void SetNclMin(Int_t val)
void SetWidthMinT(Double_t val)
void print()
Ovreloaded medod whic do all job.
Cluster object, containing position, charge and quality information.
Int_t used[4000]
Double_t fMaxSlopeType
void Save(char *mode=NULL)
Double_t fResKalman
Int_t fStartIndex[NTRACK]
Double_t fWidthMinC
Double_t fLambdaMin
void DisplayAnalysis(TRootEmbeddedCanvas *ecTab, TGListBox *infobox)
Double_t fResFinder
#define NADC
Definition: HarpoDccMap.h:18
Int_t GetNtr(Int_t plane)
Int_t fNclTrack[NTRACK]
std::vector< TMatrixD > NextStep(TMatrixD X, TMatrixD C, 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, Bool_t finder=kTRUE)
Double_t fStartPointX[NTRACK][10]
void SetHist(TH2F *h, Int_t plane)
Double_t fEndPointX[NTRACK][10]
TVirtualPad * fCanvas[2]
void SetLambdaMin(Double_t val)
Int_t Ccl[NCHAN][20]
Double_t fEndDirZ[NTRACK][10]
Double_t fEndDirX[NTRACK][10]
TH2F * hThetaDist[10]
Int_t NTcl[NADC]
Double_t fStartPointZ[NTRACK][10]
TGraph * fGraph[2][NTRACK]
virtual ~HarpoKalmanNew()
Double_t fScatFinder
ULong64_t fMapTmp[NCHAN][NADC]
void SetLambdaMax(Double_t val)
Int_t fEndIndex[NTRACK]
void SetWidthMinC(Double_t val)
Int_t InitPlane(TClonesArray *clArray, Int_t plane)
void SetCanvas(TVirtualPad *c, Int_t plane)