for new chain mapping
authorbnandi <bnandi@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 3 Mar 2007 10:30:42 +0000 (10:30 +0000)
committerbnandi <bnandi@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 3 Mar 2007 10:30:42 +0000 (10:30 +0000)
PMD/AliPMDDDLRawData.cxx
PMD/AliPMDRawStream.cxx

index 83fe314..43db62e 100644 (file)
@@ -360,7 +360,7 @@ void AliPMDDDLRawData::GetUMDigitsData(TTree *treeD, Int_t imodule,
   UInt_t adc;
   Int_t  det, smn, irow, icol;
   Int_t  parity;
-
+  
   const Int_t kMaxBus = 50;
   Int_t totPatchBus, bPatchBus, ePatchBus;
   Int_t ibus, totmcm, rows, cols, rowe, cole;
@@ -561,8 +561,8 @@ void AliPMDDDLRawData::GetMCMCh(Int_t ddlno, Int_t row, Int_t col,
   Int_t icolnew = col%4;
   
   chno  = kCh[irownew][icolnew];
-
-
+  
+  
   for (Int_t ibus = beginPatchBus; ibus <= endPatchBus; ibus++)
     {
       Int_t srow = startRowBus[ibus];
@@ -573,109 +573,71 @@ void AliPMDDDLRawData::GetMCMCh(Int_t ddlno, Int_t row, Int_t col,
       if ((row >= srow && row <= erow) && (col >= scol && col <= ecol))
        {
          busno = ibus;
-
+         
          // Find out the MCM Number
          //
-
+         
          if (ddlno == 0 || ddlno == 1)
            {
              // PRE plane, SU Mod = 0, 1
-             Int_t rowdiff = endRowBus[ibus] - startRowBus[ibus];
-             if(rowdiff > 16)
-               {
-                 Int_t midrow = srow + 16;
-                 if(row >= srow && row < midrow)
-                   {
-                     mcmno = 12 + (col-scol)/4;
-                   }
-                 else if(row >= midrow && row < erow)
-                   {
-                     mcmno = (col-scol)/4;
-                   }
-               }
-             else
-               {
-                 mcmno = (col-scol)/4;
-               }
+             mcmno = (col-scol)/4;
+             
            } // end of ddl 0 and 1
-         else if (ddlno == 2)
+         else if (ddlno == 2 || ddlno == 3)
            {
-             // PRE plane,  SU Mod = 2
-             
+             // PRE plane,  SU Mod = 2, 3
              Int_t icolnew = (col - scol)/4;
              mcmno = tmcm - 1 - icolnew;
-           }
-         else if (ddlno == 3)
-           {
-             // PRE plane,  SU Mod = 3
-             
-             Int_t icolnew = (col - scol)/4;
-             mcmno = tmcm - 1 - icolnew;
-           }
-         else if (ddlno == 4)
+           }// end of ddl 2 and 3
+
+
+         else if (ddlno == 4 ||ddlno == 5 )
            {
              // CPV plane,  SU Mod = 0, 3 : ddl = 4
              
-             if(ibus <= 20)
+             if(ibus <= 17)
                {
-                 Int_t rowdiff = endRowBus[ibus] - startRowBus[ibus];
-                 if(rowdiff > 16)
+                 Int_t midrow = srow + 16;
+                 if(row >= srow && row < midrow)
                    {
-                     Int_t midrow = srow + 16;
-                     if(row >= srow && row < midrow)
-                       {
-                         mcmno = 12 + (col-scol)/4;
-                       }
-                     else if(row >= midrow && row < erow)
-                       {
-                         mcmno = (col-scol)/4;
-                       }
+                     mcmno = 12 + (col-scol)/4;
                    }
-                 else
+                 else if(row >= midrow && row < erow)
                    {
                      mcmno = (col-scol)/4;
                    }
                }
-             else if (ibus > 20)
-               {
-                 Int_t icolnew = (col - scol)/4;
-                 mcmno = tmcm - 1 - icolnew;
-               }
-           }
-         else if (ddlno == 5)
-           {
-             // CPV plane,  SU Mod = 2, 1 : ddl = 5
              
-             if(ibus <= 20)
+             else if (ibus > 17)
                {
                  Int_t rowdiff = endRowBus[ibus] - startRowBus[ibus];
                  if(rowdiff > 16)
                    {
                      Int_t midrow = srow + 16;
-                     if(row >= srow && row < midrow)
+                     if (row >= midrow && row < erow)
                        {
-                         mcmno = 12 + (col-scol)/4;
+                         Int_t icolnew = (col - scol)/4;
+                         mcmno = 24 - 1 - icolnew;
+                         
                        }
-                     else if(row >= midrow && row < erow)
+                     else if (row >= srow && row < midrow)
                        {
-                         mcmno = (col-scol)/4;
+                         Int_t icolnew = (col - scol)/4;
+                         mcmno = 12 - 1 - icolnew; 
                        }
                    }
-                 else
+                 else 
                    {
-                     mcmno = (col-scol)/4;
-                   }
-               }
-             else if (ibus > 20)
-               {
-                 Int_t icolnew = (col - scol)/4;
-                 mcmno = tmcm - 1 - icolnew;
+                     Int_t icolnew = (col - scol)/4;
+                     mcmno = 12 - 1 - icolnew;
+                   } 
                }
            }
-       }  
+
+       }  
     }
-  
-}
+} 
+
 //____________________________________________________________________________
 
 Int_t AliPMDDDLRawData::ComputeParity(UInt_t baseword)
@@ -693,4 +655,3 @@ Int_t AliPMDDDLRawData::ComputeParity(UInt_t baseword)
 }
 
 //____________________________________________________________________________
-
index e53298b..ba3cca9 100644 (file)
@@ -275,7 +275,6 @@ Bool_t AliPMDRawStream::DdlData(Int_t indexDDL, TObjArray *pmdddlcont)
                  Int_t ich  = (data >> 12) & 0x003F;
                  Int_t imcm = (data >> 18) & 0x07FF;
                  Int_t ibit = (data >> 31) & 0x0001;
-
                  parity = ComputeParity(data);
                  if (ibit != parity)
                    {
@@ -347,66 +346,32 @@ void AliPMDRawStream::GetRowCol(Int_t ddlno, Int_t pbusid,
   Int_t irownew = rowcol/4;
   Int_t icolnew = rowcol%4;
 
-  if (ddlno == 0)
+  if (ddlno == 0 )
     {
-      if (pbusid  <= 2)
-       {
-         if (mcmno >= 12)
-           {
-             row = startRowBus[pbusid] + irownew;
-             col = startColBus[pbusid] + (mcmno-12)*4 + icolnew;
-           }
-         else
-           {
-             // Add 16 to skip the 1st 15 rows
-             row = startRowBus[pbusid] + irownew + 16;
-             col = startColBus[pbusid] + mcmno*4 + icolnew;
-           }
-       }
-      else if (pbusid > 2)
-       {
-         row = startRowBus[pbusid] + irownew;
-         col = startColBus[pbusid] + mcmno*4 + icolnew;
-         
-       }
+      row = startRowBus[pbusid] + irownew;
+      col = startColBus[pbusid] + mcmno*4 + icolnew;
     }
   else if (ddlno == 1)
     {
-      if (pbusid  <= 2)
-       {
-         if (mcmno >= 12)
-           {
-             row = endRowBus[pbusid] - (15 - irownew);
-             col = startColBus[pbusid] + (mcmno-12)*4 + icolnew;
-           }
-         else
-           {
-             // Subtract 16 to skip the 1st 15 rows
-             row = endRowBus[pbusid] - 16 - (15 - irownew) ;
-             col = startColBus[pbusid] + mcmno*4 + icolnew;
-           }
-       }
-      else if (pbusid > 2)
-       {
-         row = endRowBus[pbusid] - (15 - irownew);
-         col = startColBus[pbusid] + mcmno*4 + icolnew;
-       }
+    row = endRowBus[pbusid] - (15 - irownew);
+    col = startColBus[pbusid] + mcmno*4 + icolnew;
+    
     }
-  else if (ddlno == 2)
+  else if (ddlno == 2 )
     {
       row = startRowBus[pbusid] + irownew;
       col = endColBus[pbusid] - mcmno*4 - (3 - icolnew);
     }
   else if (ddlno == 3)
     {
-      row = endRowBus[pbusid] - (15 - irownew);
-      col = endColBus[pbusid] - mcmno*4 - (3 - icolnew);
+    row = endRowBus[pbusid] - (15 - irownew);
+    col = endColBus[pbusid] - mcmno*4 - (3 - icolnew);
     }
-  else if (ddlno == 4)
+  else if (ddlno == 4 )
     {
-      if (pbusid  <= 16)
+      if (pbusid  < 18)
        {
-         if (mcmno >= 12)
+         if(mcmno > 11)
            {
              row = startRowBus[pbusid] + irownew;
              col = startColBus[pbusid] + (mcmno-12)*4 + icolnew;
@@ -415,48 +380,60 @@ void AliPMDRawStream::GetRowCol(Int_t ddlno, Int_t pbusid,
            {
              // Add 16 to skip the 1st 15 rows
              row = startRowBus[pbusid] + irownew + 16;
-             col = startColBus[pbusid] + mcmno*4 + icolnew;
+             col = startColBus[pbusid] + (mcmno)*4 + icolnew;
            }
        }
-      else if (pbusid > 16 && pbusid <= 20)
+      else if(pbusid > 17)
        {
-         row = startRowBus[pbusid] + irownew;
-         col = startColBus[pbusid] + mcmno*4 + icolnew;
-         
-       }
-      else if(pbusid > 20)
-       {
-         row = endRowBus[pbusid] - (15 - irownew);
-         col = endColBus[pbusid] - mcmno*4 - (3 - icolnew);
+         if(mcmno > 11)
+           {
+             row = endRowBus[pbusid] - (15 - irownew)  ;
+             col = endColBus[pbusid] - (mcmno - 12)*4 - (3 - icolnew);
+           }
+         else 
+           {
+             if(endRowBus[pbusid] - startRowBus[pbusid] > 16)
+               row = endRowBus[pbusid] - (15 - irownew) - 16 ;
+             else
+               row = endRowBus[pbusid] - (15 - irownew) ;
+             col = endColBus[pbusid] - mcmno*4 - (3 - icolnew); 
+           }
        }
     }
+  
   else if (ddlno == 5)
     {
-      if (pbusid  <= 16)
+      if (pbusid  <= 17)
        {
-         if (mcmno >= 12)
+         if (mcmno > 11)
            {
-             row = endRowBus[pbusid] - (15 - irownew);
+             // Subtract 16 to skip the 1st 15 rows
+             row = endRowBus[pbusid] - 16 -(15 - irownew);
              col = startColBus[pbusid] + (mcmno-12)*4 + icolnew;
            }
          else
            {
-             // Subtract 16 to skip the 1st 15 rows
-             row = endRowBus[pbusid] - 16 - (15 - irownew) ;
+             row = endRowBus[pbusid]  - (15 - irownew) ;
              col = startColBus[pbusid] + mcmno*4 + icolnew;
            }
        }
-      else if (pbusid > 16 && pbusid <= 20)
-       {
-         row = endRowBus[pbusid] - (15 - irownew);
-         col = startColBus[pbusid] + mcmno*4 + icolnew;
-       }
-      else if (pbusid > 20)
+      
+      else if (pbusid > 17)
        {
-         row = startRowBus[pbusid] + irownew;
-         col = endColBus[pbusid] - mcmno*4 - (3 - icolnew);
+         if(mcmno > 11)
+           {
+             // Add 16 to skip the 1st 15 rows
+             row = startRowBus[pbusid] + irownew + 16;
+             col = endColBus[pbusid] - (mcmno - 12)*4 - (3 - icolnew);
+           }
+         else 
+           {
+             row = startRowBus[pbusid] + irownew ;
+             col = endColBus[pbusid] - mcmno*4 - (3 - icolnew); 
+           }
        }
     }
+  
 }
 //_____________________________________________________________________________
 void AliPMDRawStream::ConvertDDL2SMN(Int_t iddl, Int_t imodule,
@@ -502,10 +479,8 @@ void AliPMDRawStream::TransformH2S(Int_t smn, Int_t &row, Int_t &col) const
   row = irownew;
   col = icolnew;
 }
-
 //_____________________________________________________________________________
-
-int AliPMDRawStream::ComputeParity(Int_t data)
+Int_t AliPMDRawStream::ComputeParity(Int_t data)
 {
 // Calculate the parity bit