Bug fixed on decoding flags
authorcheynis <cheynis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Jul 2008 10:38:05 +0000 (10:38 +0000)
committercheynis <cheynis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 2 Jul 2008 10:38:05 +0000 (10:38 +0000)
VZERO/AliVZERORawStream.cxx

index b535a0f..bc1342e 100644 (file)
@@ -138,10 +138,12 @@ Bool_t AliVZERORawStream::Next()
       for(Int_t iEvOfInt = 0; iEvOfInt < kNEvOfInt; iEvOfInt=iEvOfInt+2) {
         UShort_t data = GetNextShort();
         for(Int_t iChannel = iChannel_Offset; iChannel < iChannel_Offset+4; iChannel++) {          
-          fIsBB[iChannel][iEvOfInt] = (data >> 2*iChannel) & 0x1;
-          fIsBG[iChannel][iEvOfInt] = (data >> 2*iChannel+1) & 0x1;         
-          fIsBB[iChannel][iEvOfInt+1] = (data >> (8+ 2*iChannel)) & 0x1;
-          fIsBG[iChannel][iEvOfInt+1] = (data >> (8+ 2*iChannel+1)) & 0x1;
+          fIsBB[iChannel][iEvOfInt] = (data >> 2*(iChannel-iChannel_Offset)) & 0x1;
+          fIsBG[iChannel][iEvOfInt] = (data >> 2*(iChannel-iChannel_Offset)+1) & 0x1; 
+         if(iEvOfInt < (kNEvOfInt - 1)) {      
+             fIsBB[iChannel][iEvOfInt+1] = (data >> (8+ 2*(iChannel-iChannel_Offset))) & 0x1;
+             fIsBG[iChannel][iEvOfInt+1] = (data >> (8+ 2*(iChannel-iChannel_Offset)+1)) & 0x1;
+         }
         }
       }
 
@@ -160,8 +162,10 @@ Bool_t AliVZERORawStream::Next()
         for(Int_t iChannel = iChannel_Offset; iChannel < iChannel_Offset+4; iChannel++) {  
           fIsBBMB[iChannel][iBunch] = (data >> 2*iBunch) & 0x1;
           fIsBGMB[iChannel][iBunch] = (data >> 2*iBunch+1) & 0x1;
-          fIsBBMB[iChannel][iBunch+1] = (data >> (8+2*iBunch)) & 0x1;
-          fIsBGMB[iChannel][iBunch+1] = (data >> (8+2*iBunch+1)) & 0x1;          
+         if(iBunch < (kNBunches - 1)) {
+             fIsBBMB[iChannel][iBunch+1] = (data >> (8+2*iBunch)) & 0x1;
+             fIsBGMB[iChannel][iBunch+1] = (data >> (8+2*iBunch+1)) & 0x1;
+         }       
         }
       }