Main changes:
authorvulpescu <vulpescu@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 9 Jul 2009 07:59:02 +0000 (07:59 +0000)
committervulpescu <vulpescu@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 9 Jul 2009 07:59:02 +0000 (07:59 +0000)
- update macro MUONReCalcGlobalTrigger.C for the latest status of the code
- bug fix: in the loop over the regional crates replace the "iteration" by the
correct "for" loop over "side" and "regional crate"
(Bogdan V.)

MUON/MUONReCalcGlobalTrigger.C

index 8b1a169..65642d5 100644 (file)
@@ -151,14 +151,13 @@ Bool_t ReCalcGlobalTrigger(TIter *nextCrates) {
   if (!globalConfig)
     printf("No valid trigger crate configuration in CDB\n");
 
-  UShort_t gmask = 0;
+  UInt_t gmask = 0;
+
+  for (Int_t i = 0; i < 4; i++) {
+    gmask = globalConfig->GetGlobalMask(i);
+    fGlobalTriggerBoard->Mask(i,gmask);
+  }
 
-  gmask = globalConfig->GetFirstDarcDisable();
-  fGlobalTriggerBoard->Mask(0,gmask);
-  
-  gmask = globalConfig->GetSecondDarcDisable();
-  fGlobalTriggerBoard->Mask(1,gmask);
-  
   nextCrates->Reset();
   
   UShort_t regional[16];
@@ -169,11 +168,17 @@ Bool_t ReCalcGlobalTrigger(TIter *nextCrates) {
     return kFALSE;
   }
   
-  while ( ( cr = static_cast<AliMUONTriggerCrate*>(nextCrates->Next()) ) ) {
-    AliMUONTriggerBoard* rb =
-      static_cast<AliMUONTriggerBoard*>(cr->Boards()->At(0));
-    regional[irb] = rb->GetResponse();
-    ++irb;
+  for (Int_t iSide = 0; iSide < 2; iSide++) // right & left side
+  {
+    for (Int_t iReg = 0; iReg < 8; iReg++) // 8 crates/regional boards for each side.
+    {
+      cr = fCrates->Crate(iSide, iReg);
+
+      AliMUONTriggerBoard* rb =
+        static_cast<AliMUONTriggerBoard*>(cr->Boards()->At(0));
+      regional[irb] = rb->GetResponse();
+      ++irb;
+    }
   }
   
   fGlobalTriggerBoard->SetRegionalResponse(regional);