}
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 {
//
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;}
////////////////////////////////////////////////////////////////////////////
+#include "AliITSCalibrationSPD.h"
#include "AliITSClusterFinderV2SPD.h"
#include "AliITSRecPoint.h"
#include "AliITSgeomTGeo.h"
}
}
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;
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");