Protection against double setting of bad channels.
authorkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 31 Mar 2010 22:18:54 +0000 (22:18 +0000)
committerkharlov <kharlov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 31 Mar 2010 22:18:54 +0000 (22:18 +0000)
PHOS/AliPHOSEmcBadChannelsMap.cxx
PHOS/AliPHOSEmcBadChannelsMap.h

index bec694a..5c5cded 100644 (file)
@@ -81,6 +81,17 @@ AliPHOSEmcBadChannelsMap& AliPHOSEmcBadChannelsMap::operator= (const AliPHOSEmcB
 
 //_________________________________________________________________
 
+void AliPHOSEmcBadChannelsMap::SetBadChannel(Int_t module, Int_t col, Int_t row)
+{
+  // Declare a channel (module,col,row) as a bad, if it was not set before
+
+  if (!fBadChannelEmc[module-1][col-1][row-1]) {
+    fBadChannelEmc[module-1][col-1][row-1] = kTRUE;
+    ++fBads; 
+  }
+}
+//_________________________________________________________________
+
 void AliPHOSEmcBadChannelsMap::BadChannelIds(Int_t *badIds)
 {
   //Fill array badIds by the Ids of bad channels.
@@ -110,6 +121,8 @@ void AliPHOSEmcBadChannelsMap::BadChannelIds(Int_t *badIds)
          geom->RelToAbsNumbering(relId,absId);
          badIds[iBad]=absId;
          iBad++;
+         printf("mod=%d, col=%d, row=%d, absId=%d, N=%d\n",
+                mod,col,row,absId,iBad);
        }
       }
     }
index 0e82cd6..88d4182 100644 (file)
@@ -19,7 +19,7 @@ public:
   AliPHOSEmcBadChannelsMap& operator= (const AliPHOSEmcBadChannelsMap &map);
   ~AliPHOSEmcBadChannelsMap() {}
 
-  void SetBadChannel(Int_t module, Int_t col, Int_t row) { fBadChannelEmc[module-1][col-1][row-1] = kTRUE; ++fBads; }
+  void  SetBadChannel(Int_t module, Int_t col, Int_t row);
   Bool_t IsBadChannel(Int_t module, Int_t col, Int_t row) const { return fBadChannelEmc[module-1][col-1][row-1]; }
   Int_t GetNumOfBadChannels() const {  return fBads; }
   void BadChannelIds(Int_t *badIds=0);