]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITStrackMI.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / ITS / AliITStrackMI.h
index 6cfd942ecadc065b7dc870facd7f716d5a49859f..7b208b13dc0bfcd7098448168f643dd4eaa98c5e 100644 (file)
@@ -28,7 +28,6 @@
 
 #include <AliKalmanTrack.h>
 
-#include "AliITSRecoParam.h"
 #include "AliITStrackV2.h"
 
 class AliESDtrack;
@@ -39,6 +38,7 @@ public:
   AliITStrackMI();
   AliITStrackMI(AliESDtrack& t,Bool_t c=kFALSE);
   AliITStrackMI(const AliITStrackMI& t);
+  virtual ~AliITStrackMI()  {if (fWinner) fWinner->fWinner = 0;} // release associated seed
   Int_t GetProlongationFast(Double_t alpha, Double_t xr,Double_t &y, Double_t &z);
   Bool_t UpdateMI(const AliCluster *c, Double_t chi2, Int_t i);  
 
@@ -97,7 +97,10 @@ public:
   void SetChi22(Float_t c) {fChi22=c;}
   Float_t GetDeadZoneProbability(Int_t ilayer) const {return fDeadZoneProbability[ilayer];}
   void SetDeadZoneProbability(Int_t ilayer,Float_t d) {fDeadZoneProbability[ilayer]=d;}
-
+  //
+  AliITStrackMI*  GetWinner()        const {return fWinner;}
+  void   SetWinner(AliITStrackMI* p);
+  //
   Double_t GetPredictedChi2MI(Double_t cy, Double_t cz, Double_t cerry, Double_t cerrz, Double_t covyz=0.) const;
   Bool_t IsGoldPrimary();
 protected:
@@ -125,10 +128,23 @@ protected:
   Float_t fdEdxMismatch;    
   Bool_t fConstrain;        //indication of the vertex constrain
   Int_t  fClIndex[6];       //cluster Index
+  AliITStrackMI* fWinner;   //! pointer on winner candidate
   Bool_t fGoldV0;           //corresponding gold V0 found
-  ClassDef(AliITStrackMI,3)   //ITS reconstructed track
+  //
+ private:
+  AliITStrackMI &operator=(const AliITStrackMI &tr);
+
+  ClassDef(AliITStrackMI,4)   //ITS reconstructed track
 };
 
+inline void AliITStrackMI::SetWinner(AliITStrackMI* p) 
+{
+  // connect winning hypothesis with the seed
+  if (fWinner) fWinner->fWinner = 0; // release previous winner
+  fWinner = p; 
+  if (p) p->fWinner = this;
+}
+
 #endif