Attaching extra clusters from the overlapped ITS modules
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 6 Apr 2006 08:30:14 +0000 (08:30 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 6 Apr 2006 08:30:14 +0000 (08:30 +0000)
13 files changed:
ITS/AliITStrackV2.cxx
ITS/AliITStrackV2.h
ITS/AliITStrackerMI.cxx
ITS/AliITStrackerMI.h
ITS/AliITStrackerSA.cxx
ITS/AliITStrackerV2.cxx
ITS/AliITStrackerV2.h
STEER/AliESDtrack.cxx
STEER/AliESDtrack.h
STEER/AliReconstruction.cxx
TPC/AliTPCtrackerMI.cxx
TRD/AliTRDtrack.h
TRD/AliTRDtracker.cxx

index 53ef4b6..1ee79a2 100644 (file)
@@ -57,7 +57,7 @@ AliITStrackV2::AliITStrackV2():AliKalmanTrack(),
   fC44(0),
   fESDtrack(0)
 {
-    for(Int_t i=0; i<kMaxLayer; i++) fIndex[i]=0;
+    for(Int_t i=0; i<2*kMaxLayer; i++) fIndex[i]=-1;
     for(Int_t i=0; i<4; i++) fdEdxSample[i]=0;
 }
 
@@ -133,11 +133,10 @@ AliITStrackV2::AliITStrackV2(const AliITStrackV2& t) : AliKalmanTrack(t) {
   fC30=t.fC30;  fC31=t.fC31;  fC32=t.fC32;  fC33=t.fC33;
   fC40=t.fC40;  fC41=t.fC41;  fC42=t.fC42;  fC43=t.fC43;  fC44=t.fC44;
 
-  Int_t n=GetNumberOfClusters();
-  for (Int_t i=0; i<n; i++) {
-    fIndex[i]=t.fIndex[i];
-    if (i<4) fdEdxSample[i]=t.fdEdxSample[i];
-  }
+  Int_t i;
+  for (i=0; i<2*kMaxLayer; i++) fIndex[i]=t.fIndex[i];
+  for (i=0; i<4; i++) fdEdxSample[i]=t.fdEdxSample[i];
+
   fESDtrack=t.fESDtrack;
 }
 
index 121508a..c416063 100644 (file)
@@ -80,7 +80,10 @@ public:
   Int_t GetGlobalXYZat(Double_t r,Double_t &x,Double_t &y,Double_t &z) const;
   void ApproximateHelixWithLine(Double_t xk, AliStrLine *line);
   Double_t GetPredictedChi2(const AliCluster *cluster) const;
-   Int_t Invariant() const;
+  Int_t Invariant() const;
+
+  void  SetExtraCluster(Int_t i, Int_t idx) {fIndex[kMaxLayer+i]=idx;}
+  Int_t GetExtraCluster(Int_t i) const {return fIndex[kMaxLayer+i];}
  
 protected:
   void GetXYZ(Float_t r[3]) const;
@@ -102,11 +105,11 @@ protected:
   Double_t fC30, fC31, fC32, fC33;       // track
   Double_t fC40, fC41, fC42, fC43, fC44; // parameters 
 
-  UInt_t fIndex[kMaxLayer]; // indices of associated clusters 
-  Float_t fdEdxSample[4];   // array of dE/dx samples b.b.
+  Int_t fIndex[2*kMaxLayer]; // indices of associated clusters 
+  Float_t fdEdxSample[4];    // array of dE/dx samples b.b.
 
-  AliESDtrack *fESDtrack;   //! pointer to the connected ESD track
-  ClassDef(AliITStrackV2,4)   //ITS reconstructed track
+  AliESDtrack *fESDtrack;    //! pointer to the connected ESD track
+  ClassDef(AliITStrackV2,5)  //ITS reconstructed track
 };
 
 inline 
index b8398c6..9dd7b10 100644 (file)
@@ -477,7 +477,7 @@ Int_t AliITStrackerMI::RefitInward(AliESD *event) {
       fTrackToFollow.ResetCovariance();
 
     //Refitting...
-    if (RefitAt(3.7, &fTrackToFollow, t)) {
+    if (RefitAt(3.7, &fTrackToFollow, t,kTRUE)) {
        fTrackToFollow.SetLabel(t->GetLabel());
        //       fTrackToFollow.CookdEdx();
        CookdEdx(&fTrackToFollow);
@@ -1466,11 +1466,13 @@ Int_t AliITStrackerMI::AliITSlayer::InRoad() const {
   return ncl;
 }
 
-Bool_t 
-AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,const AliITStrackMI *c) {
+Bool_t AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,
+                               const AliITStrackMI *c, Bool_t extra) {
   //--------------------------------------------------------------------
   // This function refits the track "t" at the position "x" using
   // the clusters from "c"
+  // If "extra"==kTRUE, 
+  //    the clusters from overlapped modules get attached to "t" 
   //--------------------------------------------------------------------
   Int_t index[kMaxLayer];
   Int_t k;
@@ -1555,25 +1557,7 @@ AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,const AliITStrackMI *c) {
          }
        }
      }
-     /*
-     if (cl==0)
-     if (t->GetNumberOfClusters()>2) {
-        Double_t dz=4*TMath::Sqrt(t->GetSigmaZ2()+kSigmaZ2[i]);
-        Double_t dy=4*TMath::Sqrt(t->GetSigmaY2()+kSigmaY2[i]);
-        Double_t zmin=t->GetZ() - dz;
-        Double_t zmax=t->GetZ() + dz;
-        Double_t ymin=t->GetY() + phi*r - dy;
-        Double_t ymax=t->GetY() + phi*r + dy;
-        layer.SelectClusters(zmin,zmax,ymin,ymax);
 
-        const AliITSRecPoint *c=0; Int_t ci=-1;
-        while ((c=layer.GetNextCluster(ci))!=0) {
-           if (idet != c->GetDetectorIndex()) continue;
-           Double_t chi2=t->GetPredictedChi2(c);
-           if (chi2<maxchi2) { cl=c; maxchi2=chi2; idx=ci; }
-        }
-     }
-     */
      if (cl) {
        //if (!t->Update(cl,maxchi2,idx)) {
        if (!UpdateMI(t,cl,maxchi2,idx)) {
@@ -1588,6 +1572,36 @@ AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,const AliITStrackMI *c) {
      t->CorrectForMaterial(-step*d,x0);
      }
                  
+     if (extra) { //search for extra clusters
+        AliITStrackV2 tmp(*t);
+        Double_t dz=4*TMath::Sqrt(tmp.GetSigmaZ2()+kSigmaZ2[i]);
+        if (dz < 0.5*TMath::Abs(tmp.GetTgl())) dz=0.5*TMath::Abs(tmp.GetTgl());
+        Double_t dy=4*TMath::Sqrt(t->GetSigmaY2()+kSigmaY2[i]);
+        if (dy < 0.5*TMath::Abs(tmp.GetSnp())) dy=0.5*TMath::Abs(tmp.GetSnp());
+        Double_t zmin=t->GetZ() - dz;
+        Double_t zmax=t->GetZ() + dz;
+        Double_t ymin=t->GetY() + phi*r - dy;
+        Double_t ymax=t->GetY() + phi*r + dy;
+        layer.SelectClusters(zmin,zmax,ymin,ymax);
+
+        const AliITSRecPoint *c=0; Int_t ci=-1,cci=-1;
+        Double_t maxchi2=1000.*kMaxChi2, tolerance=0.1;
+        while ((c=layer.GetNextCluster(ci))!=0) {
+           if (idet == c->GetDetectorIndex()) continue;
+
+          const AliITSdetector &det=layer.GetDetector(c->GetDetectorIndex());
+
+          if (!tmp.Propagate(det.GetPhi(),det.GetR())) continue;
+           
+          if (TMath::Abs(tmp.GetZ() - c->GetZ()) > tolerance) continue;
+           if (TMath::Abs(tmp.GetY() - c->GetY()) > tolerance) continue;
+
+           Double_t chi2=tmp.GetPredictedChi2(c);
+           if (chi2<maxchi2) { maxchi2=chi2; cci=ci; }
+        }
+        if (cci>=0) t->SetExtraCluster(i,(i<<28)+cci);
+     }
+
      // track time update [SR, GSI 17.02.2003]
      if (t->IsStartedTimeIntegral() && step==1) {
         Double_t newX, newY, newZ;
@@ -1604,7 +1618,6 @@ AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,const AliITStrackMI *c) {
   return kTRUE;
 }
 
-
 Bool_t 
 AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,const Int_t *clindex) {
   //--------------------------------------------------------------------
@@ -1742,8 +1755,6 @@ AliITStrackerMI::RefitAt(Double_t xx,AliITStrackMI *t,const Int_t *clindex) {
   return kTRUE;
 }
 
-
-
 Double_t AliITStrackerMI::GetNormalizedChi2(AliITStrackMI * track, Int_t mode)
 {
   //
index 48cf2a9..4fcaa07 100644 (file)
@@ -39,7 +39,8 @@ public:
   Int_t Clusters2Tracks(AliESD *event);
   Int_t PropagateBack(AliESD *event);
   Int_t RefitInward(AliESD *event);
-  Bool_t RefitAt(Double_t x, AliITStrackMI *seed, const AliITStrackMI *t);
+  Bool_t RefitAt(Double_t x, AliITStrackMI *seed, 
+                const AliITStrackMI *t, Bool_t extra=kFALSE);
   Bool_t RefitAt(Double_t x, AliITStrackMI *seed, const Int_t *clindex);
   void SetupFirstPass(Int_t *flags, Double_t *cuts=0);
   void SetupSecondPass(Int_t *flags, Double_t *cuts=0);
index 787a576..cb5694e 100644 (file)
@@ -213,7 +213,7 @@ Int_t AliITStrackerSA::FindTracks(AliESD* event){
    while (nentr--) {
      AliESDtrack *track=event->GetTrack(nentr);
      if (track->GetStatus()&AliESDtrack::kITSin==AliESDtrack::kITSin){
-       UInt_t idx[6];
+       Int_t idx[12];
        Int_t ncl = track->GetITSclusters(idx);
        for(Int_t k=0;k<ncl;k++){
                 AliITSRecPoint* cll = (AliITSRecPoint*)GetCluster(idx[k]);
index ba90fca..b0f285c 100644 (file)
@@ -367,7 +367,7 @@ Int_t AliITStrackerV2::RefitInward(AliESD *event) {
     fTrackToFollow.ResetClusters();
 
     //Refitting...
-    if (RefitAt(3.7, &fTrackToFollow, t)) {
+    if (RefitAt(3.7, &fTrackToFollow, t, kTRUE)) {
        fTrackToFollow.SetLabel(t->GetLabel());
        fTrackToFollow.CookdEdx();
        CookLabel(&fTrackToFollow,0.); //For comparison only
@@ -900,11 +900,13 @@ Double_t AliITStrackerV2::GetEffectiveThickness(Double_t y,Double_t z) const
   return d/(xn*xn);
 }
 
-Bool_t 
-AliITStrackerV2::RefitAt(Double_t xx,AliITStrackV2 *t,const AliITStrackV2 *c) {
+Bool_t AliITStrackerV2::RefitAt(Double_t xx,AliITStrackV2 *t,
+                                const AliITStrackV2 *c, Bool_t extra) {
   //--------------------------------------------------------------------
   // This function refits the track "t" at the position "x" using
   // the clusters from "c"
+  // If "extra"==kTRUE, 
+  //    the clusters from overlapped modules get attached to "t" 
   //--------------------------------------------------------------------
   Int_t index[kMaxLayer];
   Int_t k;
@@ -985,25 +987,7 @@ AliITStrackerV2::RefitAt(Double_t xx,AliITStrackV2 *t,const AliITStrackV2 *c) {
          return kFALSE;
        }
      }
-     /*
-     if (cl==0)
-     if (t->GetNumberOfClusters()>2) {
-        Double_t dz=4*TMath::Sqrt(t->GetSigmaZ2()+kSigmaZ2[i]);
-        Double_t dy=4*TMath::Sqrt(t->GetSigmaY2()+kSigmaY2[i]);
-        Double_t zmin=t->GetZ() - dz;
-        Double_t zmax=t->GetZ() + dz;
-        Double_t ymin=t->GetY() + phi*r - dy;
-        Double_t ymax=t->GetY() + phi*r + dy;
-        layer.SelectClusters(zmin,zmax,ymin,ymax);
-
-        const AliITSRecPoint *c=0; Int_t ci=-1;
-        while ((c=layer.GetNextCluster(ci))!=0) {
-           if (idet != c->GetDetectorIndex()) continue;
-           Double_t chi2=t->GetPredictedChi2(c);
-           if (chi2<maxchi2) { cl=c; maxchi2=chi2; idx=ci; }
-        }
-     }
-     */
      if (cl) {
        if (!t->Update(cl,maxchi2,idx)) {
           return kFALSE;
@@ -1017,6 +1001,36 @@ AliITStrackerV2::RefitAt(Double_t xx,AliITStrackV2 *t,const AliITStrackV2 *c) {
      t->CorrectForMaterial(-step*d,x0);
      }
                  
+     if (extra) { //search for extra clusters
+        AliITStrackV2 tmp(*t);
+        Double_t dz=4*TMath::Sqrt(tmp.GetSigmaZ2()+kSigmaZ2[i]);
+        if (dz < 0.5*TMath::Abs(tmp.GetTgl())) dz=0.5*TMath::Abs(tmp.GetTgl());
+        Double_t dy=4*TMath::Sqrt(t->GetSigmaY2()+kSigmaY2[i]);
+        if (dy < 0.5*TMath::Abs(tmp.GetSnp())) dy=0.5*TMath::Abs(tmp.GetSnp());
+        Double_t zmin=t->GetZ() - dz;
+        Double_t zmax=t->GetZ() + dz;
+        Double_t ymin=t->GetY() + phi*r - dy;
+        Double_t ymax=t->GetY() + phi*r + dy;
+        layer.SelectClusters(zmin,zmax,ymin,ymax);
+
+        const AliITSRecPoint *c=0; Int_t ci=-1,cci=-1;
+        Double_t maxchi2=1000.*kMaxChi2, tolerance=0.1;
+        while ((c=layer.GetNextCluster(ci))!=0) {
+           if (idet == c->GetDetectorIndex()) continue;
+
+          const AliITSdetector &det=layer.GetDetector(c->GetDetectorIndex());
+
+          if (!tmp.Propagate(det.GetPhi(),det.GetR())) continue;
+           
+          if (TMath::Abs(tmp.GetZ() - c->GetZ()) > tolerance) continue;
+           if (TMath::Abs(tmp.GetY() - c->GetY()) > tolerance) continue;
+
+           Double_t chi2=tmp.GetPredictedChi2(c);
+           if (chi2<maxchi2) { maxchi2=chi2; cci=ci; }
+        }
+        if (cci>=0) t->SetExtraCluster(i,(i<<28)+cci);
+     }
+
      // track time update [SR, GSI 17.02.2003]
      if (t->IsStartedTimeIntegral() && step==1) {
         Double_t newX, newY, newZ;
index a8b343f..5029a32 100644 (file)
@@ -36,7 +36,8 @@ public:
   Int_t Clusters2Tracks(AliESD *event);
   Int_t PropagateBack(AliESD *event);
   Int_t RefitInward(AliESD *event);
-  Bool_t RefitAt(Double_t x, AliITStrackV2 *seed, const AliITStrackV2 *t);
+  Bool_t RefitAt(Double_t x, AliITStrackV2 *seed, 
+                 const AliITStrackV2 *t, Bool_t extra=kFALSE);
   void SetupFirstPass(Int_t *flags, Double_t *cuts=0);
   void SetupSecondPass(Int_t *flags, Double_t *cuts=0);
 
index 44755fb..2aaf276 100644 (file)
@@ -128,11 +128,11 @@ AliESDtrack::AliESDtrack() :
   //  fPHOSpos[0]=fPHOSpos[1]=fPHOSpos[2]=0.;
 
   Int_t i;
-  for (i=0;i<12;i++) fITSchi2MIP[i] =1e10;
-  for (i=0; i<6; i++)  { fITSindex[i]=0; }
-  for (i=0; i<180; i++){ fTPCindex[i]=0; }
-  for (i=0; i<3;i++)   { fKinkIndexes[i]=0;}
-  for (i=0; i<3;i++)   { fV0Indexes[i]=-1;}
+  for (i=0; i<12; i++)  fITSchi2MIP[i]=1e10;
+  for (i=0; i<12; i++)  { fITSindex[i]=-1; }
+  for (i=0; i<180; i++) { fTPCindex[i]=0; }
+  for (i=0; i<3; i++)   { fKinkIndexes[i]=0;}
+  for (i=0; i<3; i++)   { fV0Indexes[i]=-1;}
   for (i=0; i<180; i++) { fTRDindex[i]=0; }
   for (i=0;i<kNPlane;i++) {fTRDsignals[i]=0.; fTRDTimBin[i]=-1;}
   for (i=0;i<4;i++) {fTPCPoints[i]=-1;}
@@ -201,11 +201,11 @@ AliESDtrack::AliESDtrack(const AliESDtrack& track):
   //
   //copy constructor
   //
-  for (Int_t i=0;i<AliPID::kSPECIES;i++) fTrackTime[i] =track.fTrackTime[i];
-  for (Int_t i=0;i<AliPID::kSPECIES;i++)  fR[i] =track.fR[i];
+  for (Int_t i=0;i<AliPID::kSPECIES;i++) fTrackTime[i]=track.fTrackTime[i];
+  for (Int_t i=0;i<AliPID::kSPECIES;i++)  fR[i]=track.fR[i];
   //
-  for (Int_t i=0;i<12;i++) fITSchi2MIP[i] =track.fITSchi2MIP[i];
-  for (Int_t i=0;i<6;i++) fITSindex[i]=track.fITSindex[i];    
+  for (Int_t i=0;i<12;i++) fITSchi2MIP[i]=track.fITSchi2MIP[i];
+  for (Int_t i=0;i<12;i++) fITSindex[i]=track.fITSindex[i];    
   for (Int_t i=0;i<AliPID::kSPECIES;i++) fITSr[i]=track.fITSr[i]; 
   //
   for (Int_t i=0;i<180;i++) fTPCindex[i]=track.fTPCindex[i];  
@@ -283,11 +283,11 @@ void AliESDtrack::MakeMiniESDtrack(){
 
   // Reset ITS track related information
   fITSchi2 = 0;
-  for (Int_t i=0;i<12;i++) fITSchi2MIP[i] = 0;
+  for (Int_t i=0;i<12;i++) fITSchi2MIP[i]=0;
   fITSncls = 0;       
-  for (Int_t i=0;i<6;i++) fITSindex[i]= 0;    
+  for (Int_t i=0;i<12;i++) fITSindex[i]=0;    
   fITSsignal = 0;     
-  for (Int_t i=0;i<AliPID::kSPECIES;i++) fITSr[i]= 0; 
+  for (Int_t i=0;i<AliPID::kSPECIES;i++) fITSr[i]=0; 
   fITSLabel = 0;       
   fITSFakeRatio = 0;   
   fITStrack =0;
@@ -398,7 +398,7 @@ Bool_t AliESDtrack::UpdateTrackParams(const AliKalmanTrack *t, ULong_t flags){
   case kITSin: case kITSout: case kITSrefit:
     fITSncls=t->GetNumberOfClusters();
     fITSchi2=t->GetChi2();
-    for (Int_t i=0;i<fITSncls;i++) fITSindex[i]=t->GetClusterIndex(i);
+    for (Int_t i=0;i<12;i++) fITSindex[i]=t->GetClusterIndex(i);
     fITSsignal=t->GetPIDsignal();
     fITSLabel = t->GetLabel();
     fITSFakeRatio = t->GetFakeRatio();
@@ -610,7 +610,7 @@ Int_t AliESDtrack::GetNcls(Int_t idet) const
   return ncls;
 }
 
-Int_t AliESDtrack::GetClusters(Int_t idet, UInt_t *idx) const
+Int_t AliESDtrack::GetClusters(Int_t idet, Int_t *idx) const
 {
   // Get cluster index array by subdetector index
   //
@@ -620,7 +620,7 @@ Int_t AliESDtrack::GetClusters(Int_t idet, UInt_t *idx) const
     ncls = GetITSclusters(idx);
     break;
   case 1:
-    ncls = GetTPCclusters((Int_t *)idx);
+    ncls = GetTPCclusters(idx);
     break;
   case 2:
     ncls = GetTRDclusters(idx);
@@ -666,11 +666,11 @@ void AliESDtrack::GetITSpid(Double_t *p) const {
 }
 
 //_______________________________________________________________________
-Int_t AliESDtrack::GetITSclusters(UInt_t *idx) const {
+Int_t AliESDtrack::GetITSclusters(Int_t *idx) const {
   //---------------------------------------------------------------------
   // This function returns indices of the assgined ITS clusters 
   //---------------------------------------------------------------------
-  for (Int_t i=0; i<fITSncls; i++) idx[i]=fITSindex[i];
+  for (Int_t i=0; i<12; i++) idx[i]=fITSindex[i];
   return fITSncls;
 }
 
@@ -716,7 +716,7 @@ void AliESDtrack::GetTPCpid(Double_t *p) const {
 }
 
 //_______________________________________________________________________
-Int_t AliESDtrack::GetTRDclusters(UInt_t *idx) const {
+Int_t AliESDtrack::GetTRDclusters(Int_t *idx) const {
   //---------------------------------------------------------------------
   // This function returns indices of the assgined TRD clusters 
   //---------------------------------------------------------------------
index d2bad18..2826427 100644 (file)
@@ -105,7 +105,7 @@ public:
 
 
   Int_t GetNcls(Int_t idet) const;
-  Int_t GetClusters(Int_t idet, UInt_t *idx) const;
+  Int_t GetClusters(Int_t idet, Int_t *idx) const;
  
   void SetITSpid(const Double_t *p);
   void SetITSChi2MIP(const Float_t *chi2mip);
@@ -113,7 +113,7 @@ public:
   void GetITSpid(Double_t *p) const;
   Float_t GetITSsignal() const {return fITSsignal;}
   Float_t GetITSchi2() const {return fITSchi2;}
-  Int_t GetITSclusters(UInt_t *idx) const;
+  Int_t GetITSclusters(Int_t *idx) const;
   Int_t GetITSLabel() const {return fITSLabel;}
   Float_t GetITSFakeRatio() const {return fITSFakeRatio;}
   AliKalmanTrack * GetITStrack(){return fITStrack;}
@@ -148,7 +148,7 @@ public:
   Float_t GetTRDsignals(Int_t i) const {return fTRDsignals[i];}
   Int_t GetTRDTimBin(Int_t i) const {return fTRDTimBin[i];}
   Float_t GetTRDchi2() const {return fTRDchi2;}
-  Int_t GetTRDclusters(UInt_t *idx) const;
+  Int_t GetTRDclusters(Int_t *idx) const;
   Int_t GetTRDncls() const {return fTRDncls;}
   void    SetTRDpid(Int_t iSpecies, Float_t p);
   Float_t GetTRDpid(Int_t iSpecies) const;
@@ -169,8 +169,8 @@ public:
   void    GetTOFInfo(Float_t *info) const;
   void    SetTOFInfo(Float_t *info);
   Int_t   GetTOFCalChannel() const {return fTOFCalChannel;}
-  UInt_t  GetTOFcluster() const {return fTOFindex;}
-  void  SetTOFcluster(UInt_t index) {fTOFindex=index;}
+  Int_t  GetTOFcluster() const {return fTOFindex;}
+  void  SetTOFcluster(Int_t index) {fTOFindex=index;}
   void  SetTOFCalChannel(Int_t index) {fTOFCalChannel=index;}
   
   void    SetRICHsignal(Double_t beta) {fRICHsignal=beta;}
@@ -179,8 +179,8 @@ public:
   void    GetRICHpid(Double_t *p) const;
   void    SetRICHchi2(Double_t chi2) {fRICHchi2=chi2;}
   Float_t GetRICHchi2() const {return fRICHchi2;}
-  void    SetRICHcluster(UInt_t index) {fRICHindex=index;}
-  UInt_t  GetRICHcluster() const {return fRICHindex;}
+  void    SetRICHcluster(Int_t index) {fRICHindex=index;}
+  Int_t  GetRICHcluster() const {return fRICHindex;}
   void    SetRICHnclusters(Int_t n) {fRICHncls=n;}
   Int_t   GetRICHnclusters() const {return fRICHncls;}
   void    SetRICHthetaPhi(Double_t theta, Double_t phi) {
@@ -196,17 +196,6 @@ public:
     dx=fRICHdx; dy=fRICHdy;
   }
   
- /*  void SetPHOSposition(const Double_t *pos)  { */
-/*     fPHOSpos[0] = pos[0]; fPHOSpos[1]=pos[1]; fPHOSpos[2]=pos[2]; */
-/*   } */
-/*   void SetPHOSsignal(Double_t ene) {fPHOSsignal = ene; } */
-/*   void SetPHOSpid(const Double_t *p); */
-/*   void GetPHOSposition(Double_t *pos) const { */
-/*     pos[0]=fPHOSpos[0]; pos[1]=fPHOSpos[1]; pos[2]=fPHOSpos[2]; */
-/*   } */
-/*   Float_t GetPHOSsignal() const {return fPHOSsignal;} */
-/*   void GetPHOSpid(Double_t *p) const;   */
-
   Bool_t IsOn(Int_t mask) const {return (fFlags&mask)>0;}
   Bool_t IsRICH()  const {return fFlags&kRICHpid;}
   Bool_t IsPHOS()  const {return fFlags&kPHOSpid;}
@@ -263,7 +252,7 @@ protected:
   Float_t fITSchi2;        // chi2 in the ITS
   Float_t fITSchi2MIP[12];     // chi2s in the ITS
   Int_t   fITSncls;        // number of clusters assigned in the ITS
-  UInt_t  fITSindex[6];    //! indices of the assigned ITS clusters
+  Int_t   fITSindex[12];   //! indices of the assigned ITS clusters
   Float_t fITSsignal;      // detector's PID signal
   Float_t fITSr[AliPID::kSPECIES]; // "detector response probabilities" (for the PID)
   Int_t   fITSLabel;       // label according TPC
@@ -289,10 +278,10 @@ protected:
   Float_t fTRDchi2;        // chi2 in the TRD
   Int_t   fTRDncls;        // number of clusters assigned in the TRD
   Int_t   fTRDncls0;       // number of clusters assigned in the TRD before first material cross
-  UInt_t  fTRDindex[180];   //! indices of the assigned TRD clusters
+  Int_t  fTRDindex[180];   //! indices of the assigned TRD clusters
   Float_t fTRDsignal;      // detector's PID signal
   Float_t fTRDsignals[kNPlane];  // TRD signals from all six planes
-  Int_t fTRDTimBin[kNPlane];     // Time bin of Max cluster from all six planes
+  Int_t   fTRDTimBin[kNPlane];   // Time bin of Max cluster from all six planes
   Float_t fTRDr[AliPID::kSPECIES]; // "detector response probabilities" (for the PID)
   Int_t   fTRDLabel;       // label according TRD
   Float_t fTRDQuality;     //trd quality factor for TOF
@@ -301,7 +290,7 @@ protected:
 
   // TOF related track information
   Float_t fTOFchi2;        // chi2 in the TOF
-  UInt_t  fTOFindex;       // index of the assigned TOF cluster
+  Int_t   fTOFindex;       // index of the assigned TOF cluster
   Int_t   fTOFCalChannel; // Channel Index of the TOF Signal 
   Float_t fTOFsignal;      // detector's PID signal
   Float_t fTOFsignalToT;   // detector's ToT signal
@@ -309,15 +298,10 @@ protected:
   Int_t   fTOFLabel[3];       // TOF label 
   Float_t fTOFInfo[10];       //! TOF informations
 
-  // PHOS related track information 
-  //  Float_t fPHOSpos[3]; // position localised by PHOS in global coordinate system
-  // Float_t fPHOSsignal; // energy measured by PHOS
-  //Float_t fPHOSr[AliPID::kSPECIESN]; // PID information from PHOS
-
   // HMPID related track information
   Float_t fRICHchi2;       // chi2 in the RICH
   Int_t   fRICHncls;       // number of photon clusters
-  UInt_t  fRICHindex;      // index of the assigned MIP cluster
+  Int_t   fRICHindex;      // index of the assigned MIP cluster
   Float_t fRICHsignal;     // RICH PID signal
   Float_t fRICHr[AliPID::kSPECIES];// "detector response probabilities" (for the PID)
   Float_t fRICHtheta;      // theta of the track extrapolated to the RICH
@@ -327,7 +311,7 @@ protected:
 
   AliTrackPointArray *fPoints; // Array which contains the track space points in the global frame
 
-  ClassDef(AliESDtrack,24)  //ESDtrack 
+  ClassDef(AliESDtrack,25)  //ESDtrack 
 };
 
 #endif 
index 684d222..a27d891 100644 (file)
@@ -1533,7 +1533,7 @@ void AliReconstruction::WriteAlignmentData(AliESD* esd)
     {
       AliESDtrack *track = esd->GetTrack(itrack);
       Int_t nsp = 0;
-      UInt_t idx[200];
+      Int_t idx[200];
       for (Int_t iDet = 3; iDet >= 0; iDet--)
        nsp += track->GetNcls(iDet);
       if (nsp) {
index 4260113..992e1a0 100644 (file)
@@ -2238,7 +2238,7 @@ void AliTPCtrackerMI::RemoveUsed2(TObjArray * arr, Float_t factor1,  Float_t fac
     Float_t sharedfactor = Float_t(shared+1)/Float_t(found+1);
     Bool_t itsgold =kFALSE;
     if (pt->fEsd){
-      UInt_t dummy[12];
+      Int_t dummy[12];
       if (pt->fEsd->GetITSclusters(dummy)>4) itsgold= kTRUE;
     }
     if (!itsgold){
index 122e6e2..a5435c5 100644 (file)
@@ -125,8 +125,8 @@ public:
    Double_t GetX()    const {return fX;}
    Double_t GetY()    const {return fY;}
    Double_t GetZ()    const {return fZ;}
-   UInt_t * GetBackupIndexes()  {return fIndexBackup;}
-   UInt_t * GetIndexes()  {return fIndex;}
+   Int_t * GetBackupIndexes()  {return fIndexBackup;}
+   Int_t * GetIndexes()  {return fIndex;}
    Double_t GetYat(Double_t xk) const {     
 //-----------------------------------------------------------------
 // This function calculates the Y-coordinate of a track at the plane x=xk.
@@ -217,8 +217,8 @@ protected:
    Double_t fCty, fCtz, fCte, fCtt;       // track
    Double_t fCcy, fCcz, fCce, fCct, fCcc; // parameters   
    
-   UInt_t  fIndex[kMAX_CLUSTERS_PER_TRACK];  // global indexes of clusters  
-   UInt_t  fIndexBackup[kMAX_CLUSTERS_PER_TRACK]; //backup indexes of clusters - used in iterations
+   Int_t  fIndex[kMAX_CLUSTERS_PER_TRACK];  // global indexes of clusters  
+   Int_t  fIndexBackup[kMAX_CLUSTERS_PER_TRACK]; //backup indexes of clusters - used in iterations
    Float_t fdQdl[kMAX_CLUSTERS_PER_TRACK];   // cluster amplitudes corrected 
                                              // for track angles    
                            
@@ -234,7 +234,7 @@ protected:
    AliTRDtracklet fTracklets[6]; //tracklets
    Float_t     fBudget[3];       // integrated material budget
    AliTRDtrack * fBackupTrack; //! backup track
-   ClassDef(AliTRDtrack,3) // TRD reconstructed tracks
+   ClassDef(AliTRDtrack,4) // TRD reconstructed tracks
 };                     
 
 inline void AliTRDtrack::GetXYZ(Float_t r[3]) const {
index 4c9b912..f8f3381 100644 (file)
@@ -305,7 +305,7 @@ AliTRDcluster * AliTRDtracker::GetCluster(AliTRDtrack * track, Int_t plane, Int_
   //try to find cluster in the backup list
   //
   AliTRDcluster * cl =0;
-  UInt_t *indexes = track->GetBackupIndexes();
+  Int_t *indexes = track->GetBackupIndexes();
   for (UInt_t i=0;i<kMaxTimeBinIndex;i++){
     if (indexes[i]==0) break;  
     AliTRDcluster * cli = (AliTRDcluster*)fClusters->UncheckedAt(indexes[i]);
@@ -326,7 +326,7 @@ Int_t  AliTRDtracker::GetLastPlane(AliTRDtrack * track){
   //
   //return last updated plane
   Int_t lastplane=0;
-  UInt_t *indexes = track->GetBackupIndexes();
+  Int_t *indexes = track->GetBackupIndexes();
   for (UInt_t i=0;i<kMaxTimeBinIndex;i++){
     AliTRDcluster * cli = (AliTRDcluster*)fClusters->UncheckedAt(indexes[i]);
     if (!cli) break;
@@ -621,13 +621,13 @@ Int_t AliTRDtracker::RefitInward(AliESD* event)
 //     }
 
     AliTRDtrack *pt = new AliTRDtrack(seed2,seed2.GetAlpha());
-    UInt_t * indexes2 = seed2.GetIndexes();
+    Int_t * indexes2 = seed2.GetIndexes();
     for (Int_t i=0;i<kNPlane;i++) {
       pt->SetPIDsignals(seed2.GetPIDsignals(i),i);
       pt->SetPIDTimBin(seed2.GetPIDTimBin(i),i);
     }
 
-    UInt_t * indexes3 = pt->GetBackupIndexes();
+    Int_t * indexes3 = pt->GetBackupIndexes();
     for (Int_t i=0;i<200;i++) {
       if (indexes2[i]==0) break;
       indexes3[i] = indexes2[i];