]>
Commit | Line | Data |
---|---|---|
716ccba7 | 1 | #ifndef ALIITSUTRACKHYP_H |
2 | #define ALIITSUTRACKHYP_H | |
3 | ||
4 | #include <TObject.h> | |
5 | #include <TObjArray.h> | |
3e4e3c23 | 6 | #include "AliKalmanTrack.h" |
716ccba7 | 7 | #include "AliITSUSeed.h" |
3e4e3c23 | 8 | class AliESDtrack; |
9 | class AliCluster; | |
716ccba7 | 10 | |
11 | // Container for track hypotheses | |
12 | ||
3e4e3c23 | 13 | class AliITSUTrackHyp: public AliKalmanTrack |
716ccba7 | 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;} | |
3e4e3c23 | 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;} | |
dd2117a2 | 26 | Int_t GetITSLabel() const {return fITSLabel;} |
69e0f089 | 27 | AliITSUSeed* DefineWinner(Int_t lr=0, Int_t id=0); |
716ccba7 | 28 | const TObjArray* GetLayerSeeds(Int_t lr) const {return lr<fNLayers ? &fLayerSeeds[lr] : 0;} |
b8b59e05 | 29 | void AddSeed(AliITSUSeed* seed, Int_t lr); |
3e4e3c23 | 30 | void SetESDTrack(AliESDtrack* esdtr) {fESDTrack = esdtr;} |
dd2117a2 | 31 | void SetITSLabel(Int_t lb) {fITSLabel=lb;} |
68a0f687 | 32 | Int_t FetchClusterInfo(Int_t* clIDarr) const; |
3e4e3c23 | 33 | // |
34 | void SetChi2(Double_t chi2) {fChi2 = chi2;} | |
76390254 | 35 | Double_t Update(const AliCluster* c); |
716ccba7 | 36 | // |
3e4e3c23 | 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); | |
e7d83d38 | 40 | virtual Int_t GetNumberOfClusters() const; |
41 | virtual Int_t GetClusterIndex(Int_t ind) const; | |
42 | // virtual Int_t GetTrackletIndex(Int_t) const { return -1;} | |
3e4e3c23 | 43 | virtual Double_t GetPIDsignal() const { return 0;} |
716ccba7 | 44 | // |
45 | virtual void Print(Option_t* option = "") const; | |
46 | // | |
47 | protected: | |
48 | UChar_t fNLayers; // number of layers | |
dd2117a2 | 49 | Int_t fITSLabel; // ITS MC Label, the global one (wrt TPC) is fLab |
3e4e3c23 | 50 | AliESDtrack* fESDTrack; // reference esd track |
716ccba7 | 51 | TObjArray* fLayerSeeds; // seeds of given layer |
52 | // | |
53 | ClassDef(AliITSUTrackHyp,1) | |
54 | }; | |
55 | ||
b8b59e05 | 56 | //___________________________________________________________________ |
57 | inline void AliITSUTrackHyp::AddSeed(AliITSUSeed* seed, Int_t lr) | |
58 | { | |
59 | // add seed to hypothesis | |
60 | fLayerSeeds[lr].AddLast(seed); | |
61 | AliITSUSeed* par = (AliITSUSeed*)seed->GetParent(); | |
62 | if (par) par->IncChildren(); | |
63 | } | |
716ccba7 | 64 | |
65 | #endif |