]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSUTrackHyp.h
Implementing the wrapper volumes (Mario)
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUTrackHyp.h
index ebc72b4aedb3d21c833bce1f119fc8a50bcb5e49..8f615ca20ba54eb1415c19aeb2626e70286996c6 100644 (file)
@@ -13,18 +13,26 @@ class AliCluster;
 class AliITSUTrackHyp: public AliKalmanTrack
 {
  public:
+  enum {kSkip=BIT(14)};
   AliITSUTrackHyp(Int_t nlr=0);
   AliITSUTrackHyp(const AliITSUTrackHyp& src);
+  AliITSUTrackHyp(const AliKalmanTrack& src);
+  AliITSUTrackHyp(const AliESDtrack& src);
   AliITSUTrackHyp &operator=(const AliITSUTrackHyp &src);
+  AliITSUTrackHyp &operator=(const AliESDtrack &src);
+  AliITSUTrackHyp &operator=(const AliKalmanTrack &src);
   virtual ~AliITSUTrackHyp();
   //
+  void               InitFrom(const AliITSUTrackHyp *src);
   Int_t              GetNLayers()        const {return fNLayers;}
   Int_t              GetNSeeds(Int_t lr) const {return fLayerSeeds[lr].GetEntriesFast();}
   AliITSUSeed*       GetSeed(Int_t lr, Int_t id) const {return (AliITSUSeed*)fLayerSeeds[lr].UncheckedAt(id);}
+  AliITSUSeed*       RemoveSeed(Int_t lr, Int_t id) const {return (AliITSUSeed*)fLayerSeeds[lr].RemoveAt(id);}
   AliITSUSeed*       GetWinner()         const;
   AliESDtrack*       GetESDTrack()       const {return fESDTrack;}
   Int_t              GetITSLabel()       const {return fITSLabel;}
-  void               DefineWinner(Int_t lr=0, Int_t id=0);
+  AliITSUSeed*       DefineWinner(Int_t lr=0, Int_t id=0);
+  void               SetWinner(AliITSUSeed* w) {fWinner = w;}
   const TObjArray*   GetLayerSeeds(Int_t lr) const {return lr<fNLayers ? &fLayerSeeds[lr] : 0;}
   void               AddSeed(AliITSUSeed* seed, Int_t lr);
   void               SetESDTrack(AliESDtrack* esdtr) {fESDTrack = esdtr;}
@@ -32,9 +40,15 @@ class AliITSUTrackHyp: public AliKalmanTrack
   Int_t              FetchClusterInfo(Int_t* clIDarr) const;
   //
   void               SetChi2(Double_t chi2) {fChi2 = chi2;}
-  Bool_t             Update(const AliCluster* c);
+  Double_t           Update(const AliCluster* c);
+  Bool_t             Update(Double_t p[2],Double_t cov[3])                  {return AliExternalTrackParam::Update(p,cov);}
+  Double_t           GetPredictedChi2(Double_t p[2],Double_t cov[3])  const {return AliExternalTrackParam::GetPredictedChi2(p,cov);}
+  Double_t           GetPredictedChi2(const AliExternalTrackParam *t) const {return AliExternalTrackParam::GetPredictedChi2(t);}
+  AliExternalTrackParam* GetTPCSeed() const {return fTPCSeed;}
+  void               SetTPCSeed(AliExternalTrackParam* seed) {fTPCSeed = seed;}
   //
   virtual Double_t   GetPredictedChi2(const AliCluster *c) const;
+  
   virtual Bool_t     PropagateTo(Double_t xr, Double_t x0, Double_t rho);
   virtual Bool_t     Update(const AliCluster* c, Double_t chi2, Int_t index);
   virtual Int_t      GetNumberOfClusters()   const;
@@ -44,10 +58,15 @@ class AliITSUTrackHyp: public AliKalmanTrack
   //
   virtual void       Print(Option_t* option = "") const;
   //
+  Bool_t             GetSkip()               const {return TestBit(kSkip);}
+  void               SetSkip(Bool_t v=kTRUE)       {SetBit(kSkip,v);}
+  //
  protected:
   UChar_t          fNLayers;               // number of layers
   Int_t            fITSLabel;              // ITS MC Label, the global one (wrt TPC) is fLab
   AliESDtrack*     fESDTrack;              // reference esd track
+  AliITSUSeed*     fWinner;                // winner seed
+  AliExternalTrackParam* fTPCSeed;         // kinematics of TPC track at outer radius
   TObjArray*       fLayerSeeds;            // seeds of given layer
   //
   ClassDef(AliITSUTrackHyp,1)