]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSChannelStatus.cxx
Move histogram setting ranges from analysis modules to base class (to be moved to...
[u/mrichter/AliRoot.git] / ITS / AliITSChannelStatus.cxx
index b957545471dc8adcfc4006f48586aafc8ff94103..512242db78bcb18a3f2c72800b44c8131c866d94 100644 (file)
@@ -68,6 +68,11 @@ fSSDChannelStatus(0)
   TObjArray* deadArrSPD = (TObjArray*)spdEntryD->GetObject();
   if (!deadArrSPD) AliFatal("No object found in SPDDead file");
 
+  AliCDBEntry* spdEntrySparseD = cdb->Get("ITS/Calib/SPDSparseDead");
+  if (!spdEntrySparseD) AliFatal("Cannot get CDB entry for SPDSparseDead");
+  TObjArray* deadSparseArrSPD = (TObjArray*)spdEntrySparseD->GetObject();
+  if (!deadSparseArrSPD) AliFatal("No object found in SPDSparseDead file");
+  
   AliCDBEntry* spdEntryN = cdb->Get("ITS/Calib/SPDNoisy");
   if (!spdEntryN) AliFatal("Cannot get CDB entry for SPDNoisy");
   TObjArray* noisArrSPD = (TObjArray*)spdEntryN->GetObject();
@@ -89,7 +94,7 @@ fSSDChannelStatus(0)
   fSDDChannelStatus=new TBits(nSDDchan);
   UInt_t nSSDchan=kSSDModules*kSSDStripsPerModule;
   fSSDChannelStatus=new TBits(nSSDchan);
-  InitFromOCDB(deadArrSPD,noisArrSPD,calArrSDD,calArrSSD);
+  InitFromOCDB(deadArrSPD,deadSparseArrSPD,noisArrSPD,calArrSDD,calArrSSD);
 }
 //______________________________________________________________________
 AliITSChannelStatus::AliITSChannelStatus(const AliITSDetTypeRec *dtrec):
@@ -124,6 +129,15 @@ fSSDChannelStatus(0)
       Int_t index=imod*kSPDNpxPerModule*kSPDNpzPerModule+ix*kSPDNpzPerModule+iz;
       fSPDChannelStatus->SetBitNumber(index,kFALSE);      
     }
+    
+       // Mask SPD sparse dead pixels
+    AliITSCalibrationSPD* deadSparseSpd=(AliITSCalibrationSPD*)dtrec->GetSPDSparseDeadModel(imod);
+    for(Int_t ipix=0; ipix<deadSparseSpd->GetNrBad();ipix++){
+      deadSparseSpd->GetBadPixel(ipix,ix,iz);
+      Int_t index=imod*kSPDNpxPerModule*kSPDNpzPerModule+ix*kSPDNpzPerModule+iz;
+      fSPDChannelStatus->SetBitNumber(index,kFALSE);      
+    }
+    
     // Mask SPD noisy pixels
     AliITSCalibrationSPD* noisspd=(AliITSCalibrationSPD*)dtrec->GetCalibrationModel(imod);
     for(Int_t ipix=0; ipix<noisspd->GetNrBad();ipix++){
@@ -184,7 +198,7 @@ void  AliITSChannelStatus::InitDefaults(){
   }
 }
 //______________________________________________________________________
-void AliITSChannelStatus::InitFromOCDB(TObjArray* deadArrSPD, TObjArray* noisArrSPD, TObjArray* calArrSDD, TObjArray *calArrSSD){
+void AliITSChannelStatus::InitFromOCDB(TObjArray* deadArrSPD, TObjArray* /* deadSparseArrSPD */, TObjArray* noisArrSPD, TObjArray* calArrSDD, TObjArray *calArrSSD){
 // fills bitmaps from arrays of AliITSCalibrationSXD objects
 
   // SPD modules
@@ -204,6 +218,14 @@ void AliITSChannelStatus::InitFromOCDB(TObjArray* deadArrSPD, TObjArray* noisArr
       Int_t index=imod*kSPDNpxPerModule*kSPDNpzPerModule+ix*kSPDNpzPerModule+iz;
       fSPDChannelStatus->SetBitNumber(index,kFALSE);      
     }
+    
+    // Mask SPD sparse dead pixels
+    AliITSCalibrationSPD* deadSparseSpd=(AliITSCalibrationSPD*)deadArrSPD->At(imod);
+    for(Int_t ipix=0; ipix<deadSparseSpd->GetNrBad();ipix++){
+      deadSparseSpd->GetBadPixel(ipix,ix,iz);
+      Int_t index=imod*kSPDNpxPerModule*kSPDNpzPerModule+ix*kSPDNpzPerModule+iz;
+      fSPDChannelStatus->SetBitNumber(index,kFALSE);      
+    }
 
     // Mask SPD noisy pixels
     AliITSCalibrationSPD* noisspd=(AliITSCalibrationSPD*)noisArrSPD->At(imod);