]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSCalibrationSSD.cxx
adding protection in case of missing sub-calibration
[u/mrichter/AliRoot.git] / ITS / AliITSCalibrationSSD.cxx
index 592c08045304a36800dbb210c049c2e320cf0c28..bdcc8faa56cfe81b9a807864cba4fde1e0a3f8c1 100644 (file)
@@ -84,6 +84,10 @@ AliITSCalibrationSSD::~AliITSCalibrationSSD(){
     // destructor
  
     delete [] fDetPar;
+    if(fNoise)delete fNoise;
+    if(fPedestal)delete fPedestal;
+    if(fGain)delete fGain;
+    if(fBadChannels)delete fBadChannels;
 }
 //______________________________________________________________________
 void AliITSCalibrationSSD::SetDetParam(Double_t  *par){
@@ -108,11 +112,18 @@ void AliITSCalibrationSSD::GetDetParam(Double_t  *par) const {
 //______________________________________________________________________
 void AliITSCalibrationSSD::FillBadChipMap() {
 
+  // reset
+  fIsBad=kFALSE;
+  for(Int_t i=0;i<fgkChipsPerModule;i++){
+    fIsChipBad[i]=kFALSE;
+  }
+
+
   Int_t mc=0;
-  Int_t cc[12];
+  Int_t cc[fgkChipsPerModule];
 
   // P-side
-  for(Int_t i=0; i<6; i++){
+  for(Int_t i=0; i<fgkChipsPerModule/2; i++){
     cc[i]=0;
     for(Int_t j=0; j<ChannelsPerChip(); j++) {
       if(IsPChannelBad(i*ChannelsPerChip()+j)) cc[i]++;
@@ -121,7 +132,7 @@ void AliITSCalibrationSSD::FillBadChipMap() {
   }
   
   // N-side
-  for(Int_t i=6; i<11; i++){
+  for(Int_t i=fgkChipsPerModule/2; i<fgkChipsPerModule; i++){
     cc[i]=0;
     for(Int_t j=0; j<ChannelsPerChip(); j++) {
       if(IsNChannelBad(1535-i*ChannelsPerChip()-j)) cc[i]++;      
@@ -129,5 +140,5 @@ void AliITSCalibrationSSD::FillBadChipMap() {
     if(cc[i]==ChannelsPerChip()) { SetChipBad(i); mc++; }
   }
   
-  if(mc==ChannelsPerChip()) fIsBad=kTRUE;
+  if(mc==fgkChipsPerModule) fIsBad=kTRUE;
 }