]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Switching off noisy pixel in SPD cluster finder. AliITSDetTypeRec reads only noisy...
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Apr 2008 16:25:26 +0000 (16:25 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 8 Apr 2008 16:25:26 +0000 (16:25 +0000)
ITS/AliITSCalibrationSPD.cxx
ITS/AliITSCalibrationSPD.h
ITS/AliITSClusterFinderV2SPD.cxx
ITS/AliITSDetTypeRec.cxx

index fcfe7b3bf8d8bfb0d39ce52197197e3b3c3a33ac..a7252dfef9b5dda786c6f6f0dfe2fc549523c4ad 100644 (file)
@@ -95,6 +95,23 @@ Bool_t AliITSCalibrationSPD::IsPixelBad(Int_t col, Int_t row) const {
   }
   return false;
 }
+
+//____________________________________________________________________________
+void AliITSCalibrationSPD::GetBadPixel(Int_t i, Int_t &row, Int_t &col) const {
+  //
+  // i: is the i-th bad pixel in fBadChannels
+  // row: is the corresponding row (-1 if i is out of range)
+  // col: is the corresponding column (-1 if i is out of range)
+  row = -1;
+  col = -1;
+  if(i<0 || i>=GetNrBad()){
+    AliWarning(Form("Index %d is out of bounds - nothing done",i));
+    return;
+  }
+  col = fBadChannels.At(i*2);
+  row = fBadChannels.At(i*2+1);
+}
 //___________________________________________________________________________
 Int_t  AliITSCalibrationSPD::GetNrBadInColumn(Int_t col) const {
  //
index 03e0fa4506da36f55b33f62ae115fcc995c63643..92f374d31ad0ef3adaa9d9bf4ea30f149a24d0d7 100644 (file)
@@ -80,6 +80,7 @@ class AliITSCalibrationSPD :  public AliITSCalibration {
     Int_t  GetBadRowAt(UInt_t index); //returns -1 if out of bounds
     void   ClearBad() {fBadChannels.Reset(); fNrBad=0;}
     Bool_t IsPixelBad(Int_t col, Int_t row) const ;
+    void GetBadPixel(Int_t i, Int_t &row, Int_t &col) const;
 
     void   SetBadList(TArrayI badlist) {fBadChannels=badlist;}
     void   SetNrBad(UInt_t nr) {fNrBad=nr;}
index c574df15f39206eb91aa154dae4c36ee754fdd92..1b5429b5e862a223a5c199b368a921d76eb9e991 100644 (file)
@@ -21,6 +21,7 @@
 ////////////////////////////////////////////////////////////////////////////
 
 
+#include "AliITSCalibrationSPD.h"
 #include "AliITSClusterFinderV2SPD.h"
 #include "AliITSRecPoint.h"
 #include "AliITSgeomTGeo.h"
@@ -95,7 +96,17 @@ Int_t AliITSClusterFinderV2SPD::ClustersSPD(AliBin* bins, TClonesArray* digits,T
     }
   }
   const TGeoHMatrix *mT2L=AliITSgeomTGeo::GetTracking2LocalMatrix(iModule);
-  
+
+  AliITSCalibrationSPD *cal =  
+       (AliITSCalibrationSPD*) fDetTypeRec->GetCalibrationModel(iModule); 
+  // Loop on bad pixels and reset them
+  for(Int_t ipix = 0; ipix<cal->GetNrBad(); ipix++){
+    Int_t row, col;
+    cal->GetBadPixel(ipix,row,col);
+    Int_t index = (row+1) * nzbins + (col+1);
+    bins[index].SetQ(0);
+    bins[index].SetMask(0xFFFFFFFE);
+  }
   Int_t nclu=0;
   for(Int_t iBin =0; iBin < maxBins;iBin++){
     if(bins[iBin].IsUsed()) continue;
index 41fba090a44a047b3898bf778e0b75f3023eb480..011f2a5125a2ca6bf98f541df3877155dd4f3338 100644 (file)
@@ -395,7 +395,8 @@ Bool_t AliITSDetTypeRec::GetCalibration() {
     fCalibration->Clear();
   }
 
-  AliCDBEntry *entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDDead");
+  // dead pixel are not used for local reconstruction
+  AliCDBEntry *entrySPD = AliCDBManager::Instance()->Get("ITS/Calib/SPDNoisy");
   AliCDBEntry *entrySDD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSDD");
  
  //  AliCDBEntry *entrySSD = AliCDBManager::Instance()->Get("ITS/Calib/CalibSSD");