]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDtrackV1.h
New tracker by Markus and Alexandru
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackV1.h
1 #ifndef ALITRDTRACKV1_H
2 #define ALITRDTRACKV1_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ///////////////////////////////////////////////////////////////////////////////
9 //                                                                           //
10 //  Represents a reconstructed TRD track                                     //
11 //                                                                           //
12 ///////////////////////////////////////////////////////////////////////////////
13
14 #ifndef ALITRDTRACK_H
15 #include "AliTRDtrack.h"
16 #endif
17
18 class AliTRDseedV1;
19 class AliESDtrack;
20
21 class AliTRDtrackV1 : public AliTRDtrack
22 {
23
24  public:
25         AliTRDtrackV1();
26         AliTRDtrackV1(AliTRDseedV1 *trklts, const Double_t p[5], const Double_t cov[15], Double_t x, Double_t alpha);
27         AliTRDtrackV1(const AliESDtrack &ref);
28         AliTRDtrackV1(const AliTRDtrackV1 &ref);
29         AliTRDtrackV1 &operator=(const AliTRDtrackV1 &ref) { *(new(this) AliTRDtrackV1(ref));
30                                                              return *this; }
31
32         Bool_t         CookPID();
33         Float_t        GetMomentum(Int_t plane) const;
34         inline Int_t   GetNumberOfClusters() const;
35         Double_t       GetPredictedChi2(const AliTRDseedV1 *tracklet) const;
36         Double_t       GetPredictedChi2(const AliCluster* /*c*/) const                   { return 0.0; }
37         const AliTRDseedV1* GetTracklet(Int_t plane) const {return plane >=0 && plane <6 ? &fTracklet[plane] : 0x0;}
38         Int_t*         GetTrackletIndexes() {return &fTrackletIndex[0];}
39         
40         Bool_t         IsOwner() const;
41         
42         void           SetOwner(Bool_t own = kTRUE);
43         void           SetTracklet(AliTRDseedV1 *trklt, Int_t plane, Int_t index);
44         Bool_t         Update(AliTRDseedV1 *tracklet, Double_t chi2);
45         Bool_t         Update(const AliTRDcluster*, Double_t, Int_t, Double_t) { return kFALSE; };
46         Bool_t         Update(const AliCluster *, Double_t, Int_t)             { return kFALSE; };
47         void           UpdateESDtrack(AliESDtrack *t);
48
49  protected:
50         AliTRDrecoParam *fRecoParam;       // reconstruction parameters
51
52         ClassDef(AliTRDtrackV1, 1)         // development TRD track
53
54 };
55
56 //___________________________________________________________
57 inline Int_t AliTRDtrackV1::GetNumberOfClusters() const
58 {
59 /*      Int_t ntrklts = GetNumberOfTracklets();
60         printf("AliTRDtrackV1::GetNumberOfClusters() %d\n", ntrklts);
61         return ntrklts;*/
62         Int_t ncls = 0;
63         for(int ip=0; ip<6; ip++)
64                 if(fTrackletIndex[ip] >= 0) ncls+=fTracklet[ip].GetN();
65                 
66         return ncls;
67 }
68
69 // //___________________________________________________________
70 // inline Int_t AliTRDtrackV1::GetNumberOfTracklets() const
71 // {
72 //      Int_t ntrklt = 0;
73 //      for(int ip=0; ip<6; ip++) if(fTrackletIndex[ip] >= 0) ntrklt++;
74 //      return ntrklt;
75 // }
76
77 #endif
78
79