]>
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: | |
9cdcba2c | 16 | enum {kSkip=BIT(14)}; |
716ccba7 | 17 | AliITSUTrackHyp(Int_t nlr=0); |
18 | AliITSUTrackHyp(const AliITSUTrackHyp& src); | |
7ce7f445 | 19 | AliITSUTrackHyp(const AliKalmanTrack& src); |
20 | AliITSUTrackHyp(const AliESDtrack& src); | |
716ccba7 | 21 | AliITSUTrackHyp &operator=(const AliITSUTrackHyp &src); |
7ce7f445 | 22 | AliITSUTrackHyp &operator=(const AliESDtrack &src); |
23 | AliITSUTrackHyp &operator=(const AliKalmanTrack &src); | |
716ccba7 | 24 | virtual ~AliITSUTrackHyp(); |
25 | // | |
6cd80116 | 26 | void InitFrom(const AliITSUTrackHyp *src); |
716ccba7 | 27 | Int_t GetNLayers() const {return fNLayers;} |
3e4e3c23 | 28 | Int_t GetNSeeds(Int_t lr) const {return fLayerSeeds[lr].GetEntriesFast();} |
29 | AliITSUSeed* GetSeed(Int_t lr, Int_t id) const {return (AliITSUSeed*)fLayerSeeds[lr].UncheckedAt(id);} | |
6cd80116 | 30 | AliITSUSeed* RemoveSeed(Int_t lr, Int_t id) const {return (AliITSUSeed*)fLayerSeeds[lr].RemoveAt(id);} |
3e4e3c23 | 31 | AliITSUSeed* GetWinner() const; |
32 | AliESDtrack* GetESDTrack() const {return fESDTrack;} | |
dd2117a2 | 33 | Int_t GetITSLabel() const {return fITSLabel;} |
69e0f089 | 34 | AliITSUSeed* DefineWinner(Int_t lr=0, Int_t id=0); |
9cdcba2c | 35 | void SetWinner(AliITSUSeed* w) {fWinner = w;} |
716ccba7 | 36 | const TObjArray* GetLayerSeeds(Int_t lr) const {return lr<fNLayers ? &fLayerSeeds[lr] : 0;} |
b8b59e05 | 37 | void AddSeed(AliITSUSeed* seed, Int_t lr); |
3e4e3c23 | 38 | void SetESDTrack(AliESDtrack* esdtr) {fESDTrack = esdtr;} |
dd2117a2 | 39 | void SetITSLabel(Int_t lb) {fITSLabel=lb;} |
68a0f687 | 40 | Int_t FetchClusterInfo(Int_t* clIDarr) const; |
3e4e3c23 | 41 | // |
42 | void SetChi2(Double_t chi2) {fChi2 = chi2;} | |
76390254 | 43 | Double_t Update(const AliCluster* c); |
7ce7f445 | 44 | Bool_t Update(Double_t p[2],Double_t cov[3]) {return AliExternalTrackParam::Update(p,cov);} |
45 | Double_t GetPredictedChi2(Double_t p[2],Double_t cov[3]) const {return AliExternalTrackParam::GetPredictedChi2(p,cov);} | |
46 | Double_t GetPredictedChi2(const AliExternalTrackParam *t) const {return AliExternalTrackParam::GetPredictedChi2(t);} | |
9cdcba2c | 47 | AliExternalTrackParam* GetTPCSeed() const {return fTPCSeed;} |
48 | void SetTPCSeed(AliExternalTrackParam* seed) {fTPCSeed = seed;} | |
716ccba7 | 49 | // |
3e4e3c23 | 50 | virtual Double_t GetPredictedChi2(const AliCluster *c) const; |
7ce7f445 | 51 | |
3e4e3c23 | 52 | virtual Bool_t PropagateTo(Double_t xr, Double_t x0, Double_t rho); |
53 | virtual Bool_t Update(const AliCluster* c, Double_t chi2, Int_t index); | |
e7d83d38 | 54 | virtual Int_t GetNumberOfClusters() const; |
55 | virtual Int_t GetClusterIndex(Int_t ind) const; | |
56 | // virtual Int_t GetTrackletIndex(Int_t) const { return -1;} | |
3e4e3c23 | 57 | virtual Double_t GetPIDsignal() const { return 0;} |
716ccba7 | 58 | // |
59 | virtual void Print(Option_t* option = "") const; | |
60 | // | |
9cdcba2c | 61 | Bool_t GetSkip() const {return TestBit(kSkip);} |
62 | void SetSkip(Bool_t v=kTRUE) {SetBit(kSkip,v);} | |
63 | // | |
716ccba7 | 64 | protected: |
65 | UChar_t fNLayers; // number of layers | |
dd2117a2 | 66 | Int_t fITSLabel; // ITS MC Label, the global one (wrt TPC) is fLab |
3e4e3c23 | 67 | AliESDtrack* fESDTrack; // reference esd track |
c03e4f8a | 68 | AliITSUSeed* fWinner; // winner seed |
9cdcba2c | 69 | AliExternalTrackParam* fTPCSeed; // kinematics of TPC track at outer radius |
716ccba7 | 70 | TObjArray* fLayerSeeds; // seeds of given layer |
71 | // | |
72 | ClassDef(AliITSUTrackHyp,1) | |
73 | }; | |
74 | ||
b8b59e05 | 75 | //___________________________________________________________________ |
76 | inline void AliITSUTrackHyp::AddSeed(AliITSUSeed* seed, Int_t lr) | |
77 | { | |
78 | // add seed to hypothesis | |
79 | fLayerSeeds[lr].AddLast(seed); | |
80 | AliITSUSeed* par = (AliITSUSeed*)seed->GetParent(); | |
81 | if (par) par->IncChildren(); | |
82 | } | |
716ccba7 | 83 | |
84 | #endif |