Bug fix in AliITStrackerMI::CookLabel. Now the track label is assigned correctly...
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 30 Mar 2010 13:17:22 +0000 (13:17 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 30 Mar 2010 13:17:22 +0000 (13:17 +0000)
ITS/AliITStrackV2.cxx
ITS/AliITStrackV2.h
ITS/AliITStrackerMI.cxx

index f62e7c6..cf2a7f0 100644 (file)
@@ -24,7 +24,6 @@
 #include <TMath.h>
 
 #include "AliCluster.h"
-#include "AliESDtrack.h"
 #include "AliESDVertex.h"
 #include "AliITSReconstructor.h"
 #include "AliITStrackV2.h"
index b9923bf..7840c10 100644 (file)
 #include <AliKalmanTrack.h>
 #include "AliITSRecoParam.h"
 #include "AliITSgeomTGeo.h"
+#include "AliESDtrack.h"
 
 /* $Id$ */
 
-class AliESDtrack;
 class AliESDVertex;
 class AliTracker;
 
@@ -60,6 +60,9 @@ public:
   void UpdateESDtrack(ULong_t flags) const;
   
   AliESDtrack *GetESDtrack() const {return fESDtrack;}
+  virtual ULong_t  GetStatus() const {
+    if(fESDtrack){return fESDtrack->GetStatus();} 
+    else { AliWarning("null ESD track pointer - status 0"); return 0;} }
 
   Int_t GetDetectorIndex() const {return GetLabel();}
   Double_t GetdEdx() const {return fdEdx;}
index e3d8edd..38a162b 100644 (file)
@@ -3650,8 +3650,11 @@ void AliITStrackerMI::CookLabel(AliITStrackMI *track,Float_t wrong) const {
   //--------------------------------------------------------------------
   Int_t tpcLabel=-1; 
      
-  if (track->GetESDtrack())   tpcLabel = track->GetESDtrack()->GetTPCLabel();
-
+  if (track->GetESDtrack()){
+    tpcLabel = track->GetESDtrack()->GetTPCLabel();
+    ULong_t trStatus=track->GetESDtrack()->GetStatus();
+    if(!(trStatus&AliESDtrack::kTPCin)) tpcLabel=track->GetLabel(); // for ITSsa tracks
+  }
    track->SetChi2MIP(9,0);
    Int_t nwrong=0;
    for (Int_t i=0;i<track->GetNumberOfClusters();i++){