Protection against index out of range
authormarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 5 Feb 2008 20:11:45 +0000 (20:11 +0000)
committermarian <marian@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 5 Feb 2008 20:11:45 +0000 (20:11 +0000)
SetFastCluster(Int_t i, Short_t cl)

In case of misscalibrated drift velocity the index can go out of range
(Marian)

TPC/AliTPCtrackerMI.cxx
TPC/AliTPCtrackerMI.h

index 47767ab..b287219 100644 (file)
@@ -4441,7 +4441,7 @@ void  AliTPCtrackerMI::FindSplitted(TObjArray * array, AliESDEvent */*esd*/, Int
 
 
 
-void  AliTPCtrackerMI::FindCurling(TObjArray * array, AliESDEvent *esd, Int_t iter)
+void  AliTPCtrackerMI::FindCurling(TObjArray * array, AliESDEvent */*esd*/, Int_t iter)
 {
   //
   //  find Curling tracks
@@ -7061,6 +7061,10 @@ AliTPCtrackerMI::AliTPCRow::InsertCluster(const AliTPCclusterMI* c, UInt_t index
   if (fN==kMaxClusterPerRow) {
     cerr<<"AliTPCRow::InsertCluster(): Too many clusters !\n"; return;
   }
+  if (fN>=fN1+fN2) {
+    cout<<"AliTPCRow::InsertCluster(): Too many clusters !\n";
+  }
+
   if (fN==0) {fIndex[0]=index; fClusters[fN++]=c; return;}
   Int_t i=Find(c->GetZ());
   memmove(fClusters+i+1 ,fClusters+i,(fN-i)*sizeof(AliTPCclusterMI*));
@@ -7163,6 +7167,17 @@ AliTPCclusterMI * AliTPCtrackerMI::AliTPCRow::FindNearest2(Double_t y, Double_t
 }
 
 
+void AliTPCtrackerMI::AliTPCRow::SetFastCluster(Int_t i, Short_t cl){
+  //
+  // Set cluster info for fast navigation
+  //
+  if (i>510|| i<0){
+    cerr<<"Out of range cluster\t"<<i<<"\n";
+  }else{
+    fFastCluster[i]=cl;
+  }
+}
+
 
 
 
index 5038644..bed5ad7 100644 (file)
@@ -140,7 +140,7 @@ public:
      AliTPCclusterMI* GetCluster1(Int_t i) const {return &fClusters1[i];}
      AliTPCclusterMI* GetCluster2(Int_t i) const {return &fClusters2[i];}
      Short_t GetFastCluster(Int_t i) const {return fFastCluster[i];}
-     void SetFastCluster(Int_t i, Short_t cl) {fFastCluster[i]=cl;}
+     void SetFastCluster(Int_t i, Short_t cl);
 
 private:  
      AliTPCRow & operator=(const AliTPCRow & );