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