1 #ifndef ALIITSUTRACKHYP_H
2 #define ALIITSUTRACKHYP_H
6 #include "AliKalmanTrack.h"
7 #include "AliITSUSeed.h"
11 // Container for track hypotheses
13 class AliITSUTrackHyp: public AliKalmanTrack
16 AliITSUTrackHyp(Int_t nlr=0);
17 AliITSUTrackHyp(const AliITSUTrackHyp& src);
18 AliITSUTrackHyp &operator=(const AliITSUTrackHyp &src);
19 virtual ~AliITSUTrackHyp();
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 Int_t GetITSLabel() const {return fITSLabel;}
27 void DefineWinner(Int_t lr=0, Int_t id=0);
28 const TObjArray* GetLayerSeeds(Int_t lr) const {return lr<fNLayers ? &fLayerSeeds[lr] : 0;}
29 void AddSeed(AliITSUSeed* seed, Int_t lr);
30 void SetESDTrack(AliESDtrack* esdtr) {fESDTrack = esdtr;}
31 void SetITSLabel(Int_t lb) {fITSLabel=lb;}
32 Int_t FetchClusterInfo(Int_t* clIDarr) const;
34 void SetChi2(Double_t chi2) {fChi2 = chi2;}
35 Bool_t Update(const AliCluster* c);
37 virtual Double_t GetPredictedChi2(const AliCluster *c) const;
38 virtual Bool_t PropagateTo(Double_t xr, Double_t x0, Double_t rho);
39 virtual Bool_t Update(const AliCluster* c, Double_t chi2, Int_t index);
40 virtual Int_t GetClusterIndex(Int_t) const { return -1;}
41 virtual Int_t GetNumberOfTracklets() const { return 0;}
42 virtual Int_t GetTrackletIndex(Int_t) const { return -1;}
43 virtual Double_t GetPIDsignal() const { return 0;}
45 virtual void Print(Option_t* option = "") const;
48 UChar_t fNLayers; // number of layers
49 Int_t fITSLabel; // ITS MC Label, the global one (wrt TPC) is fLab
50 AliESDtrack* fESDTrack; // reference esd track
51 TObjArray* fLayerSeeds; // seeds of given layer
53 ClassDef(AliITSUTrackHyp,1)
56 //___________________________________________________________________
57 inline void AliITSUTrackHyp::AddSeed(AliITSUSeed* seed, Int_t lr)
59 // add seed to hypothesis
60 fLayerSeeds[lr].AddLast(seed);
61 AliITSUSeed* par = (AliITSUSeed*)seed->GetParent();
62 if (par) par->IncChildren();