HARPO  5.1.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HarpoRecoEvent.h
Go to the documentation of this file.
1 #ifndef HARPORECOEVENT_H
2 #define HARPORECOEVENT_H
3 
4 
6 //
7 // HarpoReconstructionWriter
8 //
9 // save the informations of cluster and tracking in a file.root
10 //
11 
12 #include "TObject.h"
13 #include "TClonesArray.h"
14 #include "TVector3.h"
15 //#include "TGraph.h"
16 //#include "TArrayD.h"
17 
18 #define MAXTRPERCL 20
19 #define NCLUSTERMAX 6000
20 
21 #define NCLUSTERTYPES 3
22 #define CCLUSTER 0
23 #define TCLUSTER 1
24 #define BLOCCLUSTER 2
25 #define HOUGH 1
26 #define KALMAN 2
27 
28 class HarpoRecoClusters : public TObject {
29  public:
30 
32  HarpoRecoClusters(Int_t Type, Double_t Q, Double_t Qmax, Double_t Mean, Int_t Index, Double_t Sig,Int_t iFirst,Int_t Width,Int_t IdClusterTrack,Int_t plane,Int_t quality = 0);
34  virtual ~HarpoRecoClusters();
35 
36  Int_t GetType(){return fType;}
37  Int_t GetQ(){return fQ;}
38  Int_t GetQmax(){return fQmax;}
39  Double_t GetMean(){return fMean;}
40  Int_t GetIndex(){return fIndex;}
41  Double_t GetSig(){return fSig;}
42  Int_t GetWidth(){return fWidth;}
43  Int_t GetIfirst(){return fIfirst;}
44  Int_t GetPlane(){return fPlane;}
45  Int_t GetIdClusterTrack(){return fIdClusterTrack[0];}
46  Int_t GetIdClusterTrack(Int_t i){
47  if(i>=0 && i<MAXTRPERCL) return fIdClusterTrack[i];
48  return -1;
49  }
50  Double_t GetX(){return fX;}
51  Double_t GetZ(){return fZ;}
52  Double_t GetXfit(Int_t i = 0){return fXfit[i];}
53  Double_t GetZfit(Int_t i = 0){return fZfit[i];}
54  Int_t GetNtr() {return fNtr;}
55  Int_t GetQuality(){return fQuality;}
56 
57  void SetQuality(Int_t val){fQuality = val;}
58  void SetType(Int_t val){fType = val;}
59  void SetMean(Double_t val){fMean = val;}
60  void SetIndex(Int_t val){fIndex = val;}
61  void SetSig(Double_t val){fSig = val;}
62  void SetWidth(Int_t val){fWidth = val;}
63  void SetIfirst(Int_t val){fIfirst = val;}
64  void SetQ(Int_t val){fQ = val;}
65  void SetQmax(Int_t val){fQmax = val;}
66  void SetPlane(Int_t val){fPlane = val;}
67  void SetIdClusterTrack(Int_t val){fIdClusterTrack[0] = val;}
68  void SetX(Double_t val){ fX = val;}
69  void SetZ(Double_t val){ fZ = val;}
70  void SetXfit(Int_t i, Double_t val){ fXfit[i] = val;}
71  void SetZfit(Int_t i, Double_t val){ fZfit[i] = val;}
72  void AddIdClusterTrack(Int_t val);
73  void RemoveIdClusterTrack(Int_t val);
75  for(Int_t i = 0; i<MAXTRPERCL; i++)
76  fIdClusterTrack[i] = -1;
77  fNtr = 0;
78  }
79  Bool_t CheckIdClusterTrack(Int_t val){
80  for(Int_t i = 0; i<MAXTRPERCL; i++)
81  if(fIdClusterTrack[i]==val) return kTRUE;
82  return kFALSE;
83  }
84 
85 
86  private:
88  Int_t fType;
90  Double_t fQ;
92  Double_t fQmax;
94  Double_t fMean;
96  Int_t fIndex;
98  Double_t fX;
100  Double_t fZ;
102  Double_t fSig;
104  Int_t fWidth;
106  Int_t fIfirst;
108  Int_t fQuality;
110  Int_t fNtr;
112  Int_t fPlane;
116  Double_t fXfit[MAXTRPERCL];
118  Double_t fZfit[MAXTRPERCL];
119 
121 };
122 
123 
124 
125 class HarpoRecoTracks : public TObject {
126  public:
127 
128  HarpoRecoTracks();
129  HarpoRecoTracks(Int_t Ntrack,Int_t QtTrack,Double_t AngleTrack,Double_t x0, Int_t TypeTrack,Int_t IdTrackMatching,Int_t NclusterTrack,Int_t plane, Double_t xStart, Double_t zStart, Double_t xEnd, Double_t zEnd);
130  HarpoRecoTracks(const HarpoRecoTracks &tra);
131  virtual ~HarpoRecoTracks();
132 
133  Int_t GetNtrack(){return fNtrack;}
134  Int_t GetQtTrack(){return fQtTrack;}
135  Int_t GetPlane(){return fPlane;}
136  Double_t GetAngleTrack(){return fAngleTrack;}
137  Double_t GetX0(){return fX0;}
138  Int_t GetTypeTrack(){return fTypeTrack;}
141  Double_t GetXstart(){return fXstart;}
142  Double_t GetZstart(){return fZstart;}
143  Double_t GetXend(){return fXend;}
144  Double_t GetZend(){return fZend;}
145 
146  void SetNtrack(Int_t val){fNtrack = val;}
147  void SetQtTrack(Int_t val){fQtTrack = val;}
148  void SetPlane(Int_t val){fPlane = val;}
149  void SetAngleTrack(Int_t val){fAngleTrack = val;}
150  void SetX0(Double_t val){fX0 = val;}
151  void SetTypeTrack(Int_t val){fTypeTrack = val;}
152  void SetIdTrackMatching(Int_t val){fIdTrackMatching = val;}
153  void SetNclusterTrack(Int_t val){fNclusterTrack = val;}
154  void SetXstart(Double_t val){fXstart = val;}
155  void SetZstart(Double_t val){fZstart = val;}
156  void SetXend(Double_t val){fXend = val;}
157  void SetZend(Double_t val){fZend = val;}
158 
159  private:
160 
162  Int_t fNtrack;
164  Int_t fQtTrack;
166  Double_t fAngleTrack;
168  Double_t fX0;
170  Int_t fTypeTrack;
172  Int_t fPlane;
178  Double_t fXstart;
180  Double_t fZstart;
182  Double_t fXend;
184  Double_t fZend;
185 
187 };
188 
189 
191  public:
192 
194  HarpoRecoHoughTracks(Int_t Ntrack, Double_t Mtheta, Double_t Mrho,Double_t Sigtheta,Double_t Sigrho,Int_t QtTrack,Double_t AngleTrack,Double_t x0, Int_t TypeTrack,Int_t IdTrackMatching,Int_t NclusterTrack,Int_t plane, Double_t xStart, Double_t zStart, Double_t xEnd, Double_t zEnd);
196  virtual ~HarpoRecoHoughTracks();
197 
198  Double_t GetMtheta(){return fMtheta;}
199  Double_t GetMrho(){return fMrho;}
200  Double_t GetSigtheta(){return fSigtheta;}
201  Double_t GetSigrho(){return fSigrho;}
202 
203  void SetMtheta(Double_t val){fMtheta = val;}
204  void SetMrho(Double_t val){fMrho = val;}
205  void SetSigtheta(Double_t val){fSigtheta = val;}
206  void SetSigrho(Double_t val){fSigrho = val;}
207 
208  private:
210  Double_t fMtheta;
212  Double_t fMrho;
214  Double_t fSigtheta;
216  Double_t fSigrho;
217 
219 };
220 
221 
222 
224  public:
225 
227  HarpoRecoKalmanTracks(Int_t Ntrack, Int_t QtTrack, Double_t AngleTrack,Double_t x0,Double_t chi2, Int_t TypeTrack, Int_t IdTrackMatching, Int_t NclusterTrack,Int_t plane, Double_t xStart, Double_t zStart, Double_t pxStart, Double_t pzStart, Double_t xEnd, Double_t zEnd, Double_t pxEnd, Double_t pzEnd);
229  virtual ~HarpoRecoKalmanTracks();
230 
231  Double_t GetPxStart(){return fPxStart;}
232  Double_t GetPzStart(){return fPzStart;}
233  Double_t GetPxEnd() {return fPxEnd;}
234  Double_t GetPzEnd() {return fPzEnd;}
235  // TGraph* GetGraph() {return fGraph;}
236  Double_t GetChi2(){return fChi2;}
237 
238  void SetPxStart(Double_t val){fPxStart = val;}
239  void SetPzStart(Double_t val){fPzStart = val;}
240  void SetPxEnd(Double_t val) {fPxEnd = val;}
241  void SetPzEnd(Double_t val) {fPzEnd = val;}
242  // void SetGraph(TGraph* g) {fGraph = g;}
243  void SetChi2(Double_t val){fChi2 = val;}
244 
245  private:
246 
248  Double_t fPxStart;
250  Double_t fPzStart;
252  Double_t fPxEnd;
254  Double_t fPzEnd;
256  Double_t fChi2;
257 
258  // TGraph* fGraph; // filtered points
259 
261 };
262 
263 class HarpoRecoVertex : public TObject {
264  public:
265 
266  HarpoRecoVertex();
267  HarpoRecoVertex(Int_t plane, Double_t z, Double_t x, Double_t pz, Double_t px, Double_t theta, Double_t chi2, Int_t tr1, Int_t tr2);
268  HarpoRecoVertex(const HarpoRecoVertex &vec);
269  virtual ~HarpoRecoVertex();
270 
271  void SetPlane(Int_t val){fPlane = val;}
272  void SetNvertex(Int_t val){fNvertex = val;}
273  void SetTr1Vertex(Int_t val){fTr1Vertex = val;}
274  void SetTr2Vertex(Int_t val){fTr2Vertex = val;}
275  void SetXvertex(Double_t val){fXvertex = val;}
276  void SetZvertex(Double_t val){fZvertex = val;}
277  void SetPxVertex(Double_t val){fPxVertex = val;}
278  void SetPzVertex(Double_t val){fPzVertex = val;}
279  void SetThetaVertex(Double_t val){fThetaVertex = val;}
280  void SetChi2Vertex(Double_t val){fChi2Vertex = val;}
281 
282 
283  Int_t GetPlane(){return fPlane;}
284  Int_t GetNvertex(){return fNvertex;}
285  Int_t GetTr1Vertex1(){return fTr1Vertex;}
286  Int_t GetTr2Vertex2(){return fTr2Vertex;}
287  Double_t GetXvertex(){return fXvertex;}
288  Double_t GetZvertex(){return fZvertex;}
289  Double_t GetPxVertex(){return fPxVertex;}
290  Double_t GetPzVertex(){return fPzVertex;}
291  Double_t GetThetaVertex(){return fThetaVertex;}
292  Double_t GetChi2Vertex(){return fChi2Vertex;}
293 
294  private:
295 
296  Int_t fNvertex;
297  Int_t fPlane;
298  Int_t fTr1Vertex;
299  Int_t fTr2Vertex;
300  Double_t fXvertex;
301  Double_t fZvertex;
302  Double_t fPxVertex;
303  Double_t fPzVertex;
304  Double_t fThetaVertex;
305  Double_t fChi2Vertex;
306 
307 
309 };
310 
311 
312 
313 class HarpoRecoVertex3D : public TObject {
314  public:
315 
317  HarpoRecoVertex3D(Double_t x, Double_t y, Double_t z, Double_t px1, Double_t py1, Double_t pz1, Double_t px2, Double_t py2, Double_t pz2, Int_t vX, Int_t vY, Double_t chi2);
319  virtual ~HarpoRecoVertex3D();
320 
321  void SetIdVertex3D(Int_t val){fIdVertex3D = val;}
322  void SetVertexX(Int_t val){fVertexX = val;}
323  void SetVertexY(Int_t val){fVertexY = val;}
324  void SetXvertex3D(Double_t val){fXvertex3D = val;}
325  void SetYvertex3D(Double_t val){fYvertex3D = val;}
326  void SetZvertex3D(Double_t val){fZvertex3D = val;}
327  void SetPx1Vertex3D(Double_t val){fPx1Vertex3D = val;}
328  void SetPy1Vertex3D(Double_t val){fPy1Vertex3D = val;}
329  void SetPz1Vertex3D(Double_t val){fPz1Vertex3D = val;}
330  void SetPx2Vertex3D(Double_t val){fPx2Vertex3D = val;}
331  void SetPy2Vertex3D(Double_t val){fPy2Vertex3D = val;}
332  void SetPz2Vertex3D(Double_t val){fPz2Vertex3D = val;}
333  void SetChi2Vertex3D(Double_t val){fChi2Vertex3D = val;}
334 
335 
336  Int_t GetIdVertex3D(){return fIdVertex3D;}
337  Int_t GetVertexX(){return fVertexX;}
338  Int_t GetVertexY(){return fVertexY;}
339  Double_t GetXvertex3D(){return fXvertex3D;}
340  Double_t GetYvertex3D(){return fYvertex3D;}
341  Double_t GetZvertex3D(){return fZvertex3D;}
342  Double_t GetPx1Vertex3D(){return fPx1Vertex3D;}
343  Double_t GetPy1Vertex3D(){return fPy1Vertex3D;}
344  Double_t GetPz1Vertex3D(){return fPz1Vertex3D;}
345  Double_t GetPx2Vertex3D(){return fPx2Vertex3D;}
346  Double_t GetPy2Vertex3D(){return fPy2Vertex3D;}
347  Double_t GetPz2Vertex3D(){return fPz2Vertex3D;}
348  Double_t GetChi2Vertex3D(){return fChi2Vertex3D;}
349  TVector3 GetP1Vertex3D(){return TVector3(fPx1Vertex3D,fPy1Vertex3D,fPz1Vertex3D);}
350  TVector3 GetP2Vertex3D(){return TVector3(fPx2Vertex3D,fPy2Vertex3D,fPz2Vertex3D);}
351 
352  Double_t GetOmega();
353  Double_t GetOpenAngle();
354  Double_t GetPxVertex3D();
355  Double_t GetPyVertex3D();
356  Double_t GetPzVertex3D();
357 
358  private:
359 
360  Int_t fIdVertex3D;
361  Int_t fVertexX;
362  Int_t fVertexY;
363  Double_t fXvertex3D;
364  Double_t fYvertex3D;
365  Double_t fZvertex3D;
366  Double_t fPx1Vertex3D;
367  Double_t fPy1Vertex3D;
368  Double_t fPz1Vertex3D;
369  Double_t fPx2Vertex3D;
370  Double_t fPy2Vertex3D;
371  Double_t fPz2Vertex3D;
372  Double_t fChi2Vertex3D;
373 
374 
376 };
377 
378 
379 class HarpoRecoMatching : public TObject {
380  public:
381 
383  // HarpoRecoMatching(Int_t ngoodmatch, Int_t iMatchTrX, Int_t iMatchTrY, Int_t run);
384  // HarpoRecoMatching(Int_t ngoodmatch, Int_t iMatchTrX, Int_t iMatchTrY,Double_t chi2);
385  HarpoRecoMatching(Int_t ngoodmatch, Int_t iMatchTrX, Int_t iMatchTrX2, Int_t iMatchTrY, Int_t iMatchTrY2,Double_t chi2);
387  virtual ~HarpoRecoMatching();
388 
389  Int_t Getngoodmatch(){return fngoodmatch;}
390  Int_t GetiMatchTrX(){return fiMatchTrX;}
391  Int_t GetiMatchTrY(){return fiMatchTrY;}
392  Int_t GetiMatchTrX2(){return fiMatchTrX2;}
393  Int_t GetiMatchTrY2(){return fiMatchTrY2;}
395  // Int_t GetRun(){return fRun;}
396 
397  void Setngoodmatch(Int_t val){fngoodmatch = val;}
398  void SetiMatchTrX(Int_t val){fiMatchTrX = val;}
399  void SetiMatchTrY(Int_t val){fiMatchTrY = val;}
400  void SetiMatchTrX2(Int_t val){fiMatchTrX2 = val;}
401  void SetiMatchTrY2(Int_t val){fiMatchTrY2 = val;}
402  void SetChi2Matching(Double_t val){fChi2Matching = val;}
403  // void SetRun(Int_t val){fRun = val;}
404 
405  private:
406 
408  Int_t fngoodmatch;
410  Int_t fiMatchTrX;
411  Int_t fiMatchTrX2;
413  Int_t fiMatchTrY;
414  Int_t fiMatchTrY2;
416  Double_t fChi2Matching;
417  // Int_t fRun;
418 
420 };
421 
422 class HarpoRecoReco3D : public TObject {
423  public:
424 
425  HarpoRecoReco3D();
426  HarpoRecoReco3D(Int_t ntrack_3d,Double_t doca, Double_t poca_x, Double_t poca_y, Double_t poca_z, Double_t px,Double_t py, Double_t pz,Double_t aopen,Double_t aazimutal);
427  // HarpoRecoReco3D(Int_t ntrack_3d,Double_t doca, Double_t poca_x, Double_t poca_y, Double_t poca_z, Double_t px,Double_t py, Double_t pz,Double_t aopen,Double_t aazimutal, Int_t run);
428  HarpoRecoReco3D(const HarpoRecoReco3D &rec);
429  virtual ~HarpoRecoReco3D();
430 
431  Int_t Getntrack_3d(){return fntrack_3d;}
432  Double_t GetDoca(){return fDoca;}
433  Double_t GetPoca_x(){return fPoca_x;}
434  Double_t GetPoca_y(){return fPoca_y;}
435  Double_t GetPoca_z(){return fPoca_z;}
436  Double_t GetPx(){return fPx;}
437  Double_t GetPy(){return fPy;}
438  Double_t GetPz(){return fPz;}
439  Double_t GetAopen(){return fAopen;}
440  Double_t GetAazimutal(){return fAazimutal;}
441  Int_t GetTypeTrack3d(Int_t i){return ftypetrack3d[i];}
442 
443  void Setntrack_3d(Int_t val){fntrack_3d = val;}
444  void SetDoca(Double_t val){ fDoca=val;}
445  void SetPoca_x(Double_t val){ fPoca_x=val;}
446  void SetPoca_y(Double_t val){ fPoca_y=val;}
447  void SetPoca_z(Double_t val){ fPoca_z=val;}
448  void SetPx(Double_t val){ fPx=val;}
449  void SetPy(Double_t val){ fPy=val;}
450  void SetPz(Double_t val){ fPz=val;}
451  void SetAopen(Double_t val){ fAopen=val;}
452  void SetAazimutal(Double_t val){ fAazimutal=val;}
453  void SetTypeTrack3d(Int_t i, Int_t val){ftypetrack3d[i]=val;}
454  private:
455 
456 
457 
458  Int_t fntrack_3d;
459  Double_t fDoca;
460  Double_t fPoca_x;
461  Double_t fPoca_y;
462  Double_t fPoca_z;
463  Double_t fPx;
464  Double_t fPy;
465  Double_t fPz;
466  Double_t fAopen;
467  Double_t fAazimutal;
468  Double_t ftypetrack3d[7];
469 
471 };
472 
473 
474 class HarpoRecoEvent : public TObject {
475 
476  public:
477 
478  HarpoRecoEvent();
479  ~HarpoRecoEvent();
480 
481  void SetClusters(HarpoRecoClusters* val, Int_t nrec){
482  if(nrec>=fClustersArray->GetEntries()){AddClusters(val); return;}
483  if(nrec>=kMaxNclusters) return;
484  new((*fClustersArray)[nrec]) HarpoRecoClusters(*val);
485  }
486  void SetTracks(HarpoRecoTracks* val, Int_t nrec){
487  if(val->InheritsFrom("HarpoRecoHoughTracks")){
488  if(nrec>=fHoughTracksArray->GetEntries()){AddTracks(val); return;}
489  if(nrec>=2*kMaxNtracks) return;
490  new((*fHoughTracksArray)[nrec]) HarpoRecoHoughTracks(*(HarpoRecoHoughTracks*)val);
491  }
492  if(val->InheritsFrom("HarpoRecoKalmanTracks")){
493  if(nrec>=fKalmanTracksArray->GetEntries()){AddTracks(val); return;}
494  if(nrec>=2*kMaxNtracks) return;
495  new((*fKalmanTracksArray)[nrec]) HarpoRecoKalmanTracks(*(HarpoRecoKalmanTracks*)val);
496  }
497  }
498  void SetMatching(HarpoRecoMatching* val, Int_t nrec){
499  if(nrec>=fMatchingArray->GetEntries()){AddMatching(val); return;}
500  if(nrec>=kMaxNtracks) return;
501  new((*fMatchingArray)[nrec]) HarpoRecoMatching(*val);
502  }
503  void SetReco3D(HarpoRecoReco3D* val, Int_t nrec){
504  if(nrec>=fReco3DArray->GetEntries()){AddReco3D(val); return;}
505  if(nrec>=kMaxNtracks) return;
506  new((*fReco3DArray)[nrec]) HarpoRecoReco3D(*val);
507  }
508  void SetVertex(HarpoRecoVertex* val, Int_t nrec){
509  if(nrec>=fVertexArray->GetEntries()){AddVertex(val); return;}
510  if(nrec>=kMaxNvertex) return;
511  new((*fVertexArray)[nrec]) HarpoRecoVertex(*val);
512  }
513  void SetVertex3D(HarpoRecoVertex3D* val, Int_t nrec){
514  if(nrec>=fVertex3DArray->GetEntries()){AddVertex3D(val); return;}
515  if(nrec>=kMaxNvertex3D) return;
516  new((*fVertex3DArray)[nrec]) HarpoRecoVertex3D(*val);
517  }
519  if(fClustersArray->GetEntries()>=kMaxNclusters) return;
520  new((*fClustersArray)[fClustersArray->GetEntries()]) HarpoRecoClusters(*val);
521  }
522  /* void AddTracks(HarpoRecoTracks* val){ */
523  /* if(fTracksArray->GetEntries()>=2*kMaxNtracks) return; */
524  /* new((*fTracksArray)[fTracksArray->GetEntries()]) HarpoRecoTracks(*val); */
525  /* } */
527  if(val->InheritsFrom("HarpoRecoHoughTracks")){
528  if(fHoughTracksArray->GetEntries()>=2*kMaxNtracks) return;
529  new((*fHoughTracksArray)[fHoughTracksArray->GetEntries()]) HarpoRecoHoughTracks(*(HarpoRecoHoughTracks*)val);
530  }
531  if(val->InheritsFrom("HarpoRecoKalmanTracks")){
532  if(fKalmanTracksArray->GetEntries()>=2*kMaxNtracks) return;
533  new((*fKalmanTracksArray)[fKalmanTracksArray->GetEntries()]) HarpoRecoKalmanTracks(*(HarpoRecoKalmanTracks*)val);
534  }
535  }
537  Info("AddKalmanTracks","nTrK = %d",fKalmanTracksArray->GetEntries());
538  if(fKalmanTracksArray->GetEntries()>=2*kMaxNtracks) return;
539  new((*fKalmanTracksArray)[fKalmanTracksArray->GetEntries()]) HarpoRecoKalmanTracks(*val);
540  }
542  if(fHoughTracksArray->GetEntries()>=2*kMaxNtracks) return;
543  new((*fHoughTracksArray)[fHoughTracksArray->GetEntries()]) HarpoRecoHoughTracks(*val);
544  }
546  if(fMatchingArray->GetEntries()>=kMaxNtracks) return;
547  new((*fMatchingArray)[fMatchingArray->GetEntries()]) HarpoRecoMatching(*val);
548  }
550  if(fReco3DArray->GetEntries()>=kMaxNtracks) return;
551  new((*fReco3DArray)[fReco3DArray->GetEntries()]) HarpoRecoReco3D(*val);
552  }
554  if(fVertexArray->GetEntries()>=kMaxNvertex) return;
555  val->SetNvertex(fVertexArray->GetEntries());
556  new((*fVertexArray)[fVertexArray->GetEntries()]) HarpoRecoVertex(*val);
557  }
559  if(fVertex3DArray->GetEntries()>=kMaxNvertex3D) return;
560  val->SetIdVertex3D(fVertex3DArray->GetEntries());
561  new((*fVertex3DArray)[fVertex3DArray->GetEntries()]) HarpoRecoVertex3D(*val);
562  }
564  if(icl>=kMaxNclusters) return 0;
565  return (HarpoRecoClusters*)fClustersArray->At(icl);
566  }
567 
568  void SetClustersArray(TClonesArray* a){fClustersArray = a;}
569  void SetHoughTracksArray(TClonesArray* a){fHoughTracksArray = a;}
570  void SetKalmanTracksArray(TClonesArray* a){fKalmanTracksArray = a;}
571  void SetMatchingArray(TClonesArray* a){fMatchingArray = a;}
572  void SetReco3DArray(TClonesArray* a){fReco3DArray = a;}
573  void SetVertexArray(TClonesArray* a){fVertexArray = a;}
574  void SetVertex3DArray(TClonesArray* a){fVertex3DArray = a;}
575 
577  // void ResetTracksArray(){fTracksArray->Clear();}
582  void ResetReco3DArray(){fReco3DArray->Clear();}
583  void ResetVertexArray(){fVertexArray->Clear();}
585  void Reset(){
592  }
593 
594  TClonesArray* GetClustersArray(){return fClustersArray;}
595  TClonesArray* GetHoughTracksArray(){return fHoughTracksArray;}
596  TClonesArray* GetKalmanTracksArray(){return fKalmanTracksArray;}
597  TClonesArray* GetTracksArray(){
598  if(fTrackType == HOUGH)
599  return fHoughTracksArray;
600  if(fTrackType == KALMAN)
601  return fKalmanTracksArray;
602  return fHoughTracksArray;
603  }
604  TClonesArray* GetMatchingArray(){return fMatchingArray;}
605  TClonesArray* GetReco3DArray(){return fReco3DArray;}
606  TClonesArray* GetVertexArray(){return fVertexArray;}
607  TClonesArray* GetVertex3DArray(){return fVertex3DArray;}
608 
609  Int_t GetNcl(){return fClustersArray->GetEntries();}
610 
611  Int_t GetNtracksXEvt(){return fNtracksXEvt;}
612  Int_t GetNtracksYEvt(){return fNtracksYEvt;}
614  Int_t GetNclXEvt(){return fNclXEvt;}
615  Int_t GetNclYEvt(){return fNclYEvt;}
616  Int_t GetNCclXEvt(){return fNclXEvt;}
617  Int_t GetNCclYEvt(){return fNclYEvt;}
618  Int_t GetNTclXEvt(){return fNclXEvt;}
619  Int_t GetNTclYEvt(){return fNclYEvt;}
620  Int_t GetQtotXEvt(){return fQtotXEvt;}
621  Int_t GetQtotYEvt(){return fQtotYEvt;}
622  Int_t GetNclTrackEvt(){return fNclTrackEvt;}
623  Int_t GetTmin(){return fTmin;}
624  Int_t GetTmax(){return fTmax;}
625  Int_t GetXmin(){return fTmin;}
626  Int_t GetXmax(){return fTmax;}
627  Int_t GetYmin(){return fTmin;}
628  Int_t GetYmax(){return fTmax;}
629  Int_t GetXstart(){return fXstart;}
630  Int_t GetYstart(){return fYstart;}
631  Int_t GetTstart(){return fTstart;}
632 
633  Int_t GetTrackType(){return fTrackType;}
634 
635 
636  Int_t GetEventType() {return fEventType;}
637 
638  void SetNtracksXEvt(Int_t val) {fNtracksXEvt = val;}
639  void SetNtracksYEvt(Int_t val) {fNtracksYEvt = val;}
640 // number of different type of event
641  void SetEventType(Int_t val) {fEventType = val;}
642 
643  void SetNtracks3DEvt(Int_t val) {fNtracks3DEvt = val;}
644  void SetNclXEvt(Int_t val) {fNclXEvt = val;}
645  void SetNclYEvt(Int_t val) {fNclYEvt = val;}
646  void SetNCclXEvt(Int_t val) {fNclXEvt = val;}
647  void SetNCclYEvt(Int_t val) {fNclYEvt = val;}
648  void SetNTclXEvt(Int_t val) {fNclXEvt = val;}
649  void SetNTclYEvt(Int_t val) {fNclYEvt = val;}
650  void SetQtotXEvt(Int_t val) {fQtotXEvt = val;}
651  void SetQtotYEvt(Int_t val) {fQtotYEvt = val;}
652  void SetNclTrackEvt(Int_t val) {fNclTrackEvt = val;}
653  void SetTmin(Int_t val) {fTmin = val;}
654  void SetTmax(Int_t val) {fTmax = val;}
655  void SetXmin(Int_t val) {fXmin = val;}
656  void SetXmax(Int_t val) {fXmax = val;}
657  void SetYmin(Int_t val) {fYmin = val;}
658  void SetYmax(Int_t val) {fYmax = val;}
659  void SetXstart(Double_t val){fXstart = val;}
660  void SetYstart(Double_t val){fYstart = val;}
661  void SetTstart(Double_t val){fTstart = val;}
662 
663  void SetTrackType(Int_t val) {fTrackType = val;}
664 
665  Int_t GetQmaxX() {return fQmaxX;}
666  Int_t GetQrestX() {return fQrestX;}
667 
668  Int_t GetQmaxY() {return fQmaxY;}
669  Int_t GetQrestY() {return fQrestY;}
670 
671  void SetQmaxX(Int_t val) {fQmaxX = val;}
672  void SetQrestX(Int_t val) {fQrestX = val;}
673 
674  void SetQmaxY(Int_t val) {fQmaxY = val;}
675  void SetQrestY(Int_t val) {fQrestY = val;}
676  //void SetQmaxX(Int_t val) {fQmax = val;}
677 
678  void Summary();
679 
680 
681 
682 
683  Int_t GetAngleOmega() {return fAngleOmega;}
684  void SetAngleOmega(Double_t val) {fAngleOmega = val;}
685 
686  private:
687 
689  TClonesArray* fClustersArray;
691  TClonesArray* fKalmanTracksArray;
693  TClonesArray* fHoughTracksArray;
695  TClonesArray* fMatchingArray;
697  TClonesArray* fReco3DArray;
699  TClonesArray* fVertexArray;
701  TClonesArray* fVertex3DArray;
702 
704  Double_t fAngleOmega;
705 
707  Int_t fTrackType;
708 
710  Int_t fQmaxX;
712  Int_t fQrestX;
714  Int_t fQmaxY;
716  Int_t fQrestY;
717 
727  Int_t fNvertex3D;
728 
729 
731  Int_t fEventType ;
732 
736  Int_t fNclXEvt;
738  Int_t fNclYEvt;
740  Int_t fNCclXEvt;
742  Int_t fNCclYEvt;
744  Int_t fNTclXEvt;
746  Int_t fNTclYEvt;
748  Int_t fQtotXEvt;
750  Int_t fQtotYEvt;
754  Int_t fTmin;
756  Int_t fTmax;
758  Int_t fXmin;
760  Int_t fXmax;
762  Int_t fYmin;
764  Int_t fYmax;
765 
767  Double_t fXstart;
768  Double_t fYstart;
769  Double_t fTstart;
770 
771  static const Int_t kMaxNclusters = 4000;
772  static const Int_t kMaxNtracks = 10;
773  static const Int_t kMaxNvertex = 20;
774  static const Int_t kMaxNvertex3D = 10;
775 
776  ClassDef(HarpoRecoEvent,1)
777  };
778 
779 #endif
Double_t GetZvertex3D()
void SetPzEnd(Double_t val)
Double_t GetYvertex3D()
ClassDef(HarpoRecoClusters, 1)
void ResetTracksArray()
void SetXend(Double_t val)
Int_t fNclusterTrack
Number of associated clusters.
void SetTypeTrack(Int_t val)
Double_t GetZfit(Int_t i=0)
void SetTr2Vertex(Int_t val)
Double_t GetPz()
void SetX(Double_t val)
void SetXvertex3D(Double_t val)
Int_t fQtTrack
total charge associated to the track
Int_t fNvertexXEvt
Number of vertexes in X.
void SetVertex(HarpoRecoVertex *val, Int_t nrec)
Int_t fIfirst
index of cluster beginning
void AddVertex3D(HarpoRecoVertex3D *val)
virtual ~HarpoRecoTracks()
void SetVertexX(Int_t val)
void SetChi2Vertex(Double_t val)
void SetChi2(Double_t val)
void SetMatchingArray(TClonesArray *a)
void SetEventType(Int_t val)
TClonesArray * GetKalmanTracksArray()
TClonesArray * fVertex3DArray
list of 3D vertexes HarpoRecoVertex3D in the event
Int_t fXmax
maximum value of X in the event
void SetPx(Double_t val)
virtual ~HarpoRecoClusters()
Int_t fTmax
maximum value of T in the event
void SetPoca_x(Double_t val)
Int_t fQtotXEvt
total charge on X
void SetXmax(Int_t val)
void SetQtotXEvt(Int_t val)
void SetPxEnd(Double_t val)
void SetPxVertex(Double_t val)
Int_t GetNtracks3DEvt()
void ResetVertexArray()
void Setngoodmatch(Int_t val)
void SetNclTrackEvt(Int_t val)
Double_t fSigrho
RMS for Hough parameter rho.
Int_t fiMatchTrY
Associated Y tracks.
TVector3 GetP2Vertex3D()
TClonesArray * fReco3DArray
Int_t fEventType
Event Type (TO BE DEFINED)
Double_t GetAazimutal()
TClonesArray * fClustersArray
List of HarpoRecoClusters in the event.
Double_t GetPz1Vertex3D()
Double_t GetPy2Vertex3D()
Double_t GetMean()
void SetTr1Vertex(Int_t val)
Int_t GetNclTrackEvt()
Double_t GetZvertex()
void AddIdClusterTrack(Int_t val)
TClonesArray * fMatchingArray
List of matched tracks HarpoRecoMatching in the event.
void SetNtracks3DEvt(Int_t val)
void SetQrestX(Int_t val)
void SetIdClusterTrack(Int_t val)
TClonesArray * GetHoughTracksArray()
Double_t fQ
Total charge.
Int_t fPlane
Plane (XPLANE = 0, YPLANE = 1)
void AddKalmanTracks(HarpoRecoKalmanTracks *val)
Double_t fMtheta
mean value for Hough parameter theta
static const Int_t kMaxNtracks
void SetPlane(Int_t val)
void SetWidth(Int_t val)
Double_t fSig
RMS of the cluster.
void SetYmin(Int_t val)
Double_t fAngleTrack
Angle of the track wrt the drift direction.
Double_t fZ
Poisition in time direction.
HarpoRecoClusters * GetClusters(Int_t icl)
void SetNtracksXEvt(Int_t val)
Double_t GetXend()
Int_t GetEventType()
Int_t fIdClusterTrack[MAXTRPERCL]
List of tracks associated to the cluster.
Int_t fQrestY
Charge not associated to a track.
Int_t GetIdTrackMatching()
void SetNclXEvt(Int_t val)
Int_t fNclTrackEvt
number of clusters associated to a track in the event
void SetKalmanTracksArray(TClonesArray *a)
void ResetMatchingArray()
Double_t GetThetaVertex()
Double_t ftypetrack3d[7]
ClassDef(HarpoRecoVertex3D, 1)
void SetPzStart(Double_t val)
void SetNtracksYEvt(Int_t val)
void AddVertex(HarpoRecoVertex *val)
Double_t GetAngleTrack()
void SetVertexY(Int_t val)
void ResetHoughTracksArray()
void SetiMatchTrY(Int_t val)
Track object, containing position, angle, charge and quality information.
Double_t GetPy()
void SetNclusterTrack(Int_t val)
void SetQ(Int_t val)
Object containing the reconstruction information for one event (with array of HarpoRecoClusters Harpo...
void SetAngleOmega(Double_t val)
void SetNclYEvt(Int_t val)
Int_t GetTypeTrack3d(Int_t i)
Matching object, containing matched track number, and quality info.
void SetYmax(Int_t val)
void AddTracks(HarpoRecoTracks *val)
void SetVertexArray(TClonesArray *a)
2D vertex object, containing position, angle and associated track numbers, and quality info ...
Int_t GetAngleOmega()
TClonesArray * GetMatchingArray()
void SetiMatchTrX2(Int_t val)
Int_t fNTclYEvt
total number of Tclusters in Y
static const Int_t kMaxNvertex3D
void SetPy2Vertex3D(Double_t val)
Double_t GetDoca()
void SetVertex3D(HarpoRecoVertex3D *val, Int_t nrec)
Int_t fNtracksXEvt
Number of tracks in X.
Int_t GetNtracksYEvt()
void SetPz(Double_t val)
Double_t fXstart
Time and Position of first signal.
Int_t fQtotYEvt
total charge on Y
Double_t fZend
Ending point Z.
Double_t fX
Position in channel direction.
void SetQmax(Int_t val)
void SetYvertex3D(Double_t val)
Double_t GetPzVertex()
void AddClusters(HarpoRecoClusters *val)
void SetNtrack(Int_t val)
void SetZvertex(Double_t val)
Int_t fQmaxX
???
void SetPz2Vertex3D(Double_t val)
void SetPx2Vertex3D(Double_t val)
Int_t fTrackType
???
void SetMtheta(Double_t val)
TClonesArray * GetVertexArray()
Double_t fX0
Fitted Coordinate at T = 0.
ClassDef(HarpoRecoKalmanTracks, 1)
void SetZ(Double_t val)
void RemoveAllClusterTrack()
Int_t fIdTrackMatching
Associated matching object.
Double_t GetPx1Vertex3D()
void SetHoughTracksArray(TClonesArray *a)
void SetPlane(Int_t val)
void SetPy1Vertex3D(Double_t val)
Int_t fNCclXEvt
total number of Cclusters in X
void SetNTclXEvt(Int_t val)
void SetAazimutal(Double_t val)
HarpoRecoTracks object, Obtained with Kalman filter.
static const Int_t kMaxNclusters
Double_t GetX0()
Double_t fChi2Matching
chi2 of the matching
Int_t fngoodmatch
Identifier.
Cluster object, containing position, charge and quality information.
void SetPz1Vertex3D(Double_t val)
Double_t fXstart
Starting point X.
Double_t GetAopen()
Double_t fMrho
mean value for Hough parameter rho
void SetXstart(Double_t val)
void SetZend(Double_t val)
ClassDef(HarpoRecoVertex, 1)
void SetiMatchTrX(Int_t val)
void SetPx1Vertex3D(Double_t val)
Double_t GetChi2Vertex3D()
void SetPy(Double_t val)
Double_t fPxEnd
End direction X.
Int_t fQuality
cluster quality 0 = good, 1 = cut left, 2 = cut right, -1 = noisy
void SetIndex(Int_t val)
ClassDef(HarpoRecoReco3D, 1)
Double_t GetPy1Vertex3D()
Double_t GetPyVertex3D()
Double_t fZfit[MAXTRPERCL]
Fitted Z position for the associated track (TO BE IMPLEMENTED)
#define HOUGH
Int_t fType
Type (CCLUSTER = 0, TCLUSTER = 1)
Double_t fSigtheta
RMS for Hough parameter theta.
TClonesArray * fKalmanTracksArray
List of Kalman tracks HarpoRecoKalmanTracks in the event.
Int_t GetNtracksXEvt()
void ResetVertex3DArray()
Double_t fXfit[MAXTRPERCL]
Fitted X position for the associated track (TO BE IMPLEMENTED)
void SetNTclYEvt(Int_t val)
void SetClusters(HarpoRecoClusters *val, Int_t nrec)
TVector3 GetP1Vertex3D()
Double_t GetZstart()
void SetPoca_z(Double_t val)
void SetPlane(Int_t val)
Int_t GetIdClusterTrack()
void SetZstart(Double_t val)
virtual ~HarpoRecoReco3D()
void SetAopen(Double_t val)
#define MAXTRPERCL
void SetX0(Double_t val)
void SetXfit(Int_t i, Double_t val)
Int_t fQmaxY
???
void SetClustersArray(TClonesArray *a)
Int_t fNvertexYEvt
Number of vertexes in Y.
void SetQmaxX(Int_t val)
Int_t fNclYEvt
total number of clusters in Y
void SetThetaVertex(Double_t val)
void SetXvertex(Double_t val)
Double_t fThetaVertex
#define KALMAN
Int_t fNCclYEvt
total number of Cclusters in Y
Int_t fTmin
minimum value of T in the event
Double_t GetPoca_x()
void SetTypeTrack3d(Int_t i, Int_t val)
virtual ~HarpoRecoMatching()
Int_t fNtr
Number of associated tracks.
void SetPxStart(Double_t val)
Double_t fZstart
Starting point Z.
Double_t fChi2
Chi2 of linear fit.
TClonesArray * fVertexArray
list of 2D vertexes HarpoRecoVertex in the event
void SetSigrho(Double_t val)
void SetIdTrackMatching(Int_t val)
void ResetClustersArray()
void SetIdVertex3D(Int_t val)
void SetSig(Double_t val)
Int_t GetIdClusterTrack(Int_t i)
Int_t fNTclXEvt
total number of Tclusters in X
void SetMatching(HarpoRecoMatching *val, Int_t nrec)
static const Int_t kMaxNvertex
ClassDef(HarpoRecoTracks, 1)
Double_t GetChi2Vertex()
Int_t fYmax
maximum value of Y in the event
Double_t GetPoca_z()
void SetPoca_y(Double_t val)
void SetTstart(Double_t val)
void SetSigtheta(Double_t val)
Int_t fNvertex3D
Number of vertexes in Y.
void SetZvertex3D(Double_t val)
TClonesArray * GetVertex3DArray()
void SetTmax(Int_t val)
Double_t fPxStart
Start Direction X.
void SetTmin(Int_t val)
ClassDef(HarpoRecoMatching, 1)
Double_t fAngleOmega
Azimuthal angle.
Int_t fWidth
number of pixels in the cluster
Double_t GetPx2Vertex3D()
Double_t GetXstart()
void SetType(Int_t val)
Int_t fXmin
minimum value of X in the event
void SetQuality(Int_t val)
void SetReco3D(HarpoRecoReco3D *val, Int_t nrec)
Double_t GetPz2Vertex3D()
Double_t fMean
COG of the cluster.
void SetQtTrack(Int_t val)
TClonesArray * fHoughTracksArray
List of Hough tracks HarpoRecoHoughTracks in the event.
Double_t GetPxVertex()
void RemoveIdClusterTrack(Int_t val)
void SetChi2Vertex3D(Double_t val)
void SetQmaxY(Int_t val)
void SetAngleTrack(Int_t val)
TClonesArray * GetReco3DArray()
Double_t fXend
Ending point X.
void SetDoca(Double_t val)
Double_t GetPoca_y()
Double_t GetXfit(Int_t i=0)
void SetNCclYEvt(Int_t val)
Int_t fYmin
minimum value of Y in the event
TClonesArray * GetTracksArray()
void SetXmin(Int_t val)
Int_t fNtracks3DEvt
number of 3D tracks (matched)
Int_t fQrestX
Charge not associated to a track.
void Setntrack_3d(Int_t val)
ClassDef(HarpoRecoHoughTracks, 1)
Int_t fTypeTrack
Type of track (traversing, created, included, ttz)
Int_t GetNclusterTrack()
void SetIfirst(Int_t val)
void SetMrho(Double_t val)
Double_t fChi2Vertex
Int_t fPlane
Plane (XPLANE = 0, YPLANE = 1)
void SetYstart(Double_t val)
void SetChi2Matching(Double_t val)
Int_t fiMatchTrX
Associated X tracks.
void SetNvertex(Int_t val)
void AddHoughTracks(HarpoRecoHoughTracks *val)
void SetQrestY(Int_t val)
Double_t fPzStart
Start Direction Z.
void SetQtotYEvt(Int_t val)
Double_t GetXvertex()
void SetZfit(Int_t i, Double_t val)
Double_t fPzEnd
End direction Z.
void AddMatching(HarpoRecoMatching *val)
Double_t GetZend()
void SetVertex3DArray(TClonesArray *a)
Int_t fNclXEvt
total number of clusters in X
void SetMean(Double_t val)
HarpoRecoTracks object, obtained with Hough tracking method.
Double_t GetPxVertex3D()
TClonesArray * GetClustersArray()
void AddReco3D(HarpoRecoReco3D *val)
Int_t fNtracksYEvt
Number of tracks in Y.
Int_t fIndex
Index of the cluster.
void SetPzVertex(Double_t val)
Double_t fQmax
Maximum charge value.
void SetXstart(Double_t val)
virtual ~HarpoRecoVertex()
void ResetReco3DArray()
void SetNCclXEvt(Int_t val)
Double_t GetXvertex3D()
void SetTrackType(Int_t val)
Bool_t CheckIdClusterTrack(Int_t val)
void SetTracks(HarpoRecoTracks *val, Int_t nrec)
void SetReco3DArray(TClonesArray *a)
Int_t GetTrackType()
virtual ~HarpoRecoVertex3D()
Double_t GetPzVertex3D()
void ResetKalmanTracksArray()
Double_t GetPx()
void SetiMatchTrY2(Int_t val)
Int_t fNtrack
Track identifier.
3D vertex object, containing position, angle and associated 2D vertexes, and quality info ...