HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HarpoTrackingPh.h
Go to the documentation of this file.
1  #ifndef HARPOTRACKINGPH_H
2 #define HARPOTRACKINGPH_H
3 
5 //
6 // HarpoTrackingPh
7 //
8 // Dummy analise which print all run events.
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 HarpoTrackingPh : public HarpoAnalyse {
27 
28  public:
29 
30  virtual ~HarpoTrackingPh() {}
31 
33 
34  void Init();
35  void Save(char *mode=NULL);
36  void process();
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  }
47  Int_t GetNtr(Int_t plane){if(plane<0 || plane>1) return 0; return fNtr[plane];}
48  Int_t GetId(Int_t i,Int_t plane) {return fId[i][plane];}
49 
50  void SetCanvas(TVirtualPad* c, Int_t plane){fCanvas[plane] = c;}
51  void SetHist(TH2F* h, Int_t plane){fHist[plane] = h;}
52 
53  void SetQmin(Double_t val){fQmin = val;}
54  void SetWidthMinT(Double_t val){fWidthMinT = val;}
55  void SetWidthMinC(Double_t val){fWidthMinC = val;}
56  void SetWidthMax(Double_t val){fWidthMax = val;}
57 
58 
59  private:
60 
61  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);
62  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);
63  // TArrayI* FindNextClosest(TMatrixD X, TMatrixD C, Int_t Ncl, TClonesArray* clArray, TArrayI* arr, Int_t plane, Int_t color, Int_t fill,Int_t smooth);
64  Int_t InitPlane(TClonesArray* clArray, Int_t plane);
65  Int_t GetMapEdges(TClonesArray* clArray, Int_t plane, Int_t &iMin, Int_t &iMax, Int_t &jMin, Int_t &jMax);
66  void FindTrack(TClonesArray* clArray, Int_t icl0, Int_t icl1, TMatrixD Corig, Int_t plane, Int_t &color);
67  //Int_t AddTrack(TArrayI* arr, TClonesArray* clArray, Int_t plane);
68  Int_t AddTrack(TClonesArray* clArray, Int_t plane);
69  // Int_t AddTrackOld(TArrayI* arr, TClonesArray* clArray, Int_t plane);
70  // void AddAllTracks(TClonesArray* clArray, Int_t plane);
71  void SpliceTracks(Int_t plane);
72  Double_t GetQtrack(Int_t itr, Int_t plane);
73  Double_t GetQtracks(Int_t plane);
74 
75  Double_t GetResolution(HarpoRecoClusters* cl);
76 
77  Int_t Ccl[NCHAN][20];
78  Int_t NCcl[NCHAN];
79  Int_t Tcl[NADC][20];
80  Int_t NTcl[NADC];
81  Int_t fNtr[2];
82 
83  Int_t fNclTrack[NTRACK];
84  TGraph* fGraphs[2][NTRACK];
85 
86 
87  Double_t fStartPointX[NTRACK][10];
88  Double_t fStartPointZ[NTRACK][10];
89  // Double_t fStartAngle[NTRACK][10];
90  Double_t fStartDirX[NTRACK][10];
91  Double_t fStartDirZ[NTRACK][10];
92  Double_t fEndPointX[NTRACK][10];
93  Double_t fEndPointZ[NTRACK][10];
94  Double_t fEndDirX[NTRACK][10];
95  Double_t fEndDirZ[NTRACK][10];
96  // Double_t fEndAngle[NTRACK][10];
98  Int_t fEndIndex[NTRACK];
99  Int_t fId[NTRACK][2];
100  Double_t fQcommon[NTRACK][NTRACK];
101 
102  // Double_t fMapTmp[NCHAN][NADC];
103  ULong64_t fMapTmp[NCHAN][NADC];
104  Double_t fQtot;
105  Double_t fQused;
106 
107  Int_t used[4000];
108  Int_t reused[4000];
109  Int_t fTrack[4000];
110  TVirtualPad* fCanvas[2];
111  TH2F* fHist[2];
112 
113  TH1F* hDistTracks;
117  TH2F* hThetaDist[10];
118 
120  TH2F* fHistQQmin;
121 
122  /* TMatrixD H; */
123  /* TMatrixD Ht; */
124  /* TMatrixD Q; */
125  /* TMatrixD G; */
126  /* TMatrixD V; */
127  /* TMatrixD I; */
128  /* TMatrixD Corig; */
129 
130  Double_t fQmin;
131  Double_t fWidthMinT;
132  Double_t fWidthMinC;
133  Double_t fWidthMax;
134  Int_t fNclMin;
135  Int_t fNclMin2;
136  Double_t fMaxSlopeType;
137  Double_t fResKalman;
138  Double_t fScatKalman;
139  Double_t fResFinder;
140  Double_t fScatFinder;
141 
142 
143  ClassDef(HarpoTrackingPh,1) //Run AnalysePrint
144 };
145 
146 #endif
#define NTRACK
void FindTrack(TClonesArray *clArray, Int_t icl0, Int_t icl1, TMatrixD Corig, Int_t plane, Int_t &color)
TVirtualPad * fCanvas[2]
Double_t fEndPointZ[NTRACK][10]
void Save(char *mode=NULL)
Int_t GetNtr(Int_t plane)
Double_t fEndDirX[NTRACK][10]
#define NCHAN
Definition: HarpoDccMap.h:16
Double_t fStartDirX[NTRACK][10]
Int_t fId[NTRACK][2]
Double_t fEndPointX[NTRACK][10]
void SpliceTracks(Int_t plane)
A virtual class which define intrafece between HARPO Reader and Event Analysis code.
Definition: HarpoAnalyse.h:47
Int_t NCcl[NCHAN]
virtual ~HarpoTrackingPh()
Double_t fStartPointZ[NTRACK][10]
void SetCanvas(TVirtualPad *c, Int_t plane)
Int_t fStartIndex[NTRACK]
void print()
Ovreloaded medod whic do all job.
Int_t GetMapEdges(TClonesArray *clArray, Int_t plane, Int_t &iMin, Int_t &iMax, Int_t &jMin, Int_t &jMax)
Double_t GetQtrack(Int_t itr, Int_t plane)
Int_t fNclTrack[NTRACK]
void SetWidthMax(Double_t val)
Int_t used[4000]
void SetWidthMinT(Double_t val)
Cluster object, containing position, charge and quality information.
Double_t GetQtracks(Int_t plane)
TGraph * GetGraph(Int_t i, Int_t plane=0)
void SetHist(TH2F *h, Int_t plane)
Int_t fTrack[4000]
Int_t InitPlane(TClonesArray *clArray, Int_t plane)
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)
Int_t reused[4000]
#define NADC
Definition: HarpoDccMap.h:18
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 fStartPointX[NTRACK][10]
TH2F * hThetaDist[10]
void SetQmin(Double_t val)
TGraph * fGraphs[2][NTRACK]
Int_t fEndIndex[NTRACK]
Double_t fQcommon[NTRACK][NTRACK]
Int_t GetId(Int_t i, Int_t plane)
Double_t fMaxSlopeType
Int_t NTcl[NADC]
Int_t Tcl[NADC][20]
Int_t AddTrack(TClonesArray *clArray, Int_t plane)
Double_t fStartDirZ[NTRACK][10]
void SetWidthMinC(Double_t val)
A virtual class which define intrafece between HARPO Reader and Event Analysis code.
ULong64_t fMapTmp[NCHAN][NADC]
Int_t Ccl[NCHAN][20]
Double_t fEndDirZ[NTRACK][10]
Double_t GetResolution(HarpoRecoClusters *cl)
TH1F * hNcl
Redefine empty default.