Made Track Hypothesis container to derive from AliKalmanTrack for ESD update
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUTrackHyp.h
1 #ifndef ALIITSUTRACKHYP_H
2 #define ALIITSUTRACKHYP_H
3
4 #include <TObject.h>
5 #include <TObjArray.h>
6 #include "AliKalmanTrack.h"
7 #include "AliITSUSeed.h"
8 class AliESDtrack;
9 class AliCluster;
10
11 // Container for track hypotheses
12
13 class AliITSUTrackHyp: public AliKalmanTrack
14 {
15  public:
16   AliITSUTrackHyp(Int_t nlr=0);
17   AliITSUTrackHyp(const AliITSUTrackHyp& src);
18   AliITSUTrackHyp &operator=(const AliITSUTrackHyp &src);
19   virtual ~AliITSUTrackHyp();
20   //
21   Int_t              GetNLayers()        const {return fNLayers;}
22   Int_t              GetNSeeds(Int_t lr) const {return fLayerSeeds[lr].GetEntriesFast();}
23   AliITSUSeed*       GetSeed(Int_t lr, Int_t id) const {return (AliITSUSeed*)fLayerSeeds[lr].UncheckedAt(id);}
24   AliITSUSeed*       GetWinner()         const;
25   AliESDtrack*       GetESDTrack()       const {return fESDTrack;}
26   void               DefineWinner(Int_t lr, Int_t id);
27   const TObjArray*   GetLayerSeeds(Int_t lr) const {return lr<fNLayers ? &fLayerSeeds[lr] : 0;}
28   void               AddSeed(AliITSUSeed* seed, Int_t lr) {fLayerSeeds[lr].AddLast(seed);}
29   void               SetESDTrack(AliESDtrack* esdtr) {fESDTrack = esdtr;}
30   void               UpdateESD();
31   //
32   void               SetChi2(Double_t chi2) {fChi2 = chi2;}
33   //
34   virtual Double_t   GetPredictedChi2(const AliCluster *c) const;
35   virtual Bool_t     PropagateTo(Double_t xr, Double_t x0, Double_t rho);
36   virtual Bool_t     Update(const AliCluster* c, Double_t chi2, Int_t index);
37   virtual Int_t      GetClusterIndex(Int_t)  const { return -1;}
38   virtual Int_t      GetNumberOfTracklets()  const { return 0;}
39   virtual Int_t      GetTrackletIndex(Int_t) const { return -1;}
40   virtual Double_t   GetPIDsignal()          const { return 0;}
41   //
42   virtual void       Print(Option_t* option = "") const;
43   //
44  protected:
45   UChar_t          fNLayers;               // number of layers
46   AliESDtrack*     fESDTrack;              // reference esd track
47   TObjArray*       fLayerSeeds;            // seeds of given layer
48   //
49   ClassDef(AliITSUTrackHyp,1)
50 };
51
52
53 #endif