Hopefully sorting out the local board id versus index problems once for all...
authorlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Aug 2008 14:15:54 +0000 (14:15 +0000)
committerlaphecet <laphecet@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Aug 2008 14:15:54 +0000 (14:15 +0000)
MUON/AliMUONTriggerIO.cxx
MUON/AliMUONTriggerSubprocessor.cxx
MUON/mapping/AliMpRegionalTrigger.cxx

index 840189c..ab85f16 100644 (file)
@@ -209,11 +209,11 @@ AliMUONTriggerIO::ReadLocalMasks(const char* localFile, AliMUONVStore& localMask
   
   UShort_t maskBuffer[8];
   
-  Int_t nLocalBoards(1);
+  Int_t localBoardIndex(0);
     
   while ( fread ( maskBuffer, 2, 8, fp ) )
   {
-    Int_t localBoardId = fRegionalTrigger.LocalBoardId(nLocalBoards);
+    Int_t localBoardId = fRegionalTrigger.LocalBoardId(localBoardIndex);
     AliDebug(1,Form("LB %03d X1 %4x X2 %4x X3 %4x X4 %4x "
                     "Y1 %4x Y2 %4x Y3 %4x Y4 %4x",
                     localBoardId,
@@ -226,28 +226,32 @@ AliMUONTriggerIO::ReadLocalMasks(const char* localFile, AliMUONVStore& localMask
                     maskBuffer[6],
                     maskBuffer[7]));
     
-    if ( localBoardId ) 
+    if ( localBoardId > 0 ) 
     {
       AliMUONVCalibParam* localBoard = new AliMUONCalibParamNI(1,8,localBoardId,0,0);
       for ( Int_t index = 0; index < 8; ++index )
       {
-       localBoard->SetValueAsInt(index,0,maskBuffer[index]);
+        localBoard->SetValueAsInt(index,0,maskBuffer[index]);
       }
       localMasks.Add(localBoard);
     }
+    else
+    {
+      AliError(Form("Oups. Got localBoardId=%d for index=%d",localBoardId,localBoardIndex));
+    }
     
-    ++nLocalBoards;
+    ++localBoardIndex;
   }
   
-  if ( nLocalBoards != NofLocalBoards() ) 
+  if ( localBoardIndex != NofLocalBoards() ) 
   {
     AliError(Form("Read %d out of %d local boards",
-                  nLocalBoards, NofLocalBoards()));
+                  localBoardIndex, NofLocalBoards()));
   }
   
   fclose(fp);
   
-  return nLocalBoards;
+  return localBoardIndex+1;
 }
 
 //_____________________________________________________________________________
@@ -394,9 +398,15 @@ AliMUONTriggerIO::ReadConfig(const char* localFile,
     return kFALSE;
   }
   
+  AliDebug(1,Form("regionalConfig=%p",regionalConfig));
+  
   Int_t nCrates = ReadRegionalConfig(regionalFile, regionalConfig);
 
-  if (!nCrates) return kFALSE;
+  if (!nCrates) 
+  {
+    AliError("nCrates=0 !");
+    return kFALSE;
+  }
   
   if (localMasks && localFile)
   {
@@ -405,7 +415,7 @@ AliMUONTriggerIO::ReadConfig(const char* localFile,
   }
   
   Int_t nDarc = ReadGlobalConfig(globalFile, globalConfig);
-  AliDebug(1,Form("Read disable for %d DARC boards",nDarc));
+  AliDebug(1,Form("Read config for %d DARC boards",nDarc));
   
   if (!nDarc) return kFALSE;
   
@@ -433,6 +443,9 @@ Int_t
 AliMUONTriggerIO::ReadRegionalConfig(const char* regionalFile, AliMUONRegionalTriggerConfig* regionalConfig)
 {
   /// Read regional file to fill  
+  
+  AliDebug(1,Form("regionalConfig=%p",regionalConfig));
+  
   Int_t nCrates = 0;
   if ( !(nCrates = regionalConfig->ReadData(regionalFile)) ) return 0;
 
index 4207e82..bb118ff 100644 (file)
@@ -156,13 +156,13 @@ AliMUONTriggerSubprocessor::Initialize(Int_t run, UInt_t startTime, UInt_t endTi
   AliMUONTriggerIO tio;
   
   Bool_t ok = tio.ReadConfig(GetFileName("LOCAL").Data(),
-                            GetFileName("REGIONAL").Data(),
-                            GetFileName("GLOBAL").Data(),
-                            fLocalMasks,fRegionalConfig,fGlobalConfig);
+                             GetFileName("REGIONAL").Data(),
+                             GetFileName("GLOBAL").Data(),
+                             fLocalMasks,fRegionalConfig,fGlobalConfig);
   
   if (!ok)
   {
-    Master()->Log("ERROR : ReadMasks failed");
+    Master()->Log("ERROR : ReadConfig failed");
     delete fLocalMasks;
     delete fRegionalConfig;
     delete fGlobalConfig;
index 3f0dbfa..2084609 100644 (file)
@@ -119,6 +119,7 @@ Bool_t AliMpRegionalTrigger::ReadData(istream& in)
   TArrayI listInt;
   UShort_t crateId;
   Int_t nofBoards;
+  Int_t localBoardIndex(0);
   char line[80];
  
   // decode file and store in objects
@@ -188,8 +189,10 @@ Bool_t AliMpRegionalTrigger::ReadData(istream& in)
         board->SetTC(listInt[4]);
         
         // add local board into array
-        fLocalBoardArray.AddAt(board,board->GetId());
+        fLocalBoardArray.AddAt(board,localBoardIndex);
         fLocalBoardMap.Add(board->GetId(),board);
+      
+      ++localBoardIndex;
     }
   }
   return kTRUE;
@@ -281,7 +284,7 @@ Int_t AliMpRegionalTrigger::GetNofLocalBoards() const
 { 
     /// Return number of local boards
     
-    return fLocalBoardArray.GetSize(); 
+    return fLocalBoardArray.GetLast()+1; 
 }
 
 //______________________________________________________________________________