]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/MUONTRGda.cxx
- Adding check and flagging for HG present
[u/mrichter/AliRoot.git] / MUON / MUONTRGda.cxx
index fe290175d3fcfdf2427162a95c52dbdaf6dddfb9..acafe0f2ffa5febc56d77791ecc333785cccd820 100644 (file)
@@ -142,6 +142,14 @@ public:
       fLocalMasksDA->Add(localBoard);
     }
     
+    // Create a default pattern store
+    for (Int_t i = 1; i <= AliMpConstants::TotalNofLocalBoards(); i++) {
+      AliMUONVCalibParam *patN = new AliMUONCalibParamND(2, 64, i, 0, 0.);
+      AliMUONVCalibParam *patD = new AliMUONCalibParamND(2, 64, i, 0, 0.);
+      fPatternStoreN->Add(patN);       
+      fPatternStoreD->Add(patD);       
+    }
+
   }
 
   virtual ~AliDAConfig()
@@ -1171,21 +1179,33 @@ void MakePatternStore(AliDAConfig& cfg)
     
   }
   
-  // check if the mask has changed from previous version
+  // make and AND with the previous version of the mask and
+  // check if the mask has changed
   UShort_t maskDA, mask;
+  Int_t nMaskBits = AliMpConstants::TotalNofLocalBoards()*8*16;
+  Int_t nMaskBitsChanged = 0;
   for (localBoardId = 1; localBoardId <= AliMpConstants::TotalNofLocalBoards(); localBoardId++) {
     AliMUONVCalibParam* localMaskDA = static_cast<AliMUONVCalibParam*>(cfg.GetLocalMasksDA()->FindObject(localBoardId));
     AliMUONVCalibParam* localMask = static_cast<AliMUONVCalibParam*>(cfg.GetLocalMasks()->FindObject(localBoardId));
     for (connector = 0; connector < 8; connector++) {
       maskDA = static_cast<UShort_t>(localMaskDA->ValueAsInt(connector,0)); 
-      mask = static_cast<UShort_t>(localMask->ValueAsInt(connector,0)); 
+      mask = static_cast<UShort_t>(localMask->ValueAsInt(connector,0));
+      maskDA &= mask; 
+      localMaskDA->SetValueAsInt(connector, 0, maskDA);  
       if (maskDA != mask) {
        updated = kTRUE;
-       break;
+       // calculated percentage of mask bits changed
+       for (Int_t iBit = 0; iBit < 16; iBit++) {
+         if (((maskDA >> iBit) & 0x1) != ((mask >> iBit) &0x1)) {
+           nMaskBitsChanged++;
+         }
+       }
       }
     }
   }
 
+  printf("LOCAL mask bits changed = %5d (%7.3f %%) \n",nMaskBitsChanged,100*(Float_t)nMaskBitsChanged/(Float_t)nMaskBits);
+
   Int_t status = 0;
   if (updated) {
 
@@ -1194,7 +1214,7 @@ void MakePatternStore(AliDAConfig& cfg)
     
     // don't change the file version ("-x.dat")
     
-    cfg.GetTriggerIO()->WriteLocalMasks(cfg.GetLocalMaskFileName(),*cfg.GetLocalMasksDA(),cfg.GetRegionalMasks());
+    cfg.GetTriggerIO()->WriteLocalMasks(cfg.GetLocalMaskFileName(),*cfg.GetLocalMasksDA());
 
     // write last current file
     WriteLastCurrentFile(cfg,cfg.GetCurrentFileName());
@@ -1278,8 +1298,10 @@ int main(Int_t argc, Char_t **argv)
 #ifdef OFFLINE
     // the run number extracted from the file name
     TString tmp(inputFile);
-    Int_t pos = tmp.First("daq");
-    tmp = tmp(pos+3,5);
+    Int_t pos1 = tmp.First('d');
+    Int_t pos2 = tmp.Last('.');
+    Int_t len  = pos2 - (pos1+3);
+    tmp = tmp(pos1+3,len);
     gSystem->Setenv("DATE_RUN_NUMBER",tmp.Data());
     gSystem->Exec("echo \"DATE_RUN_NUMBER = \" $DATE_RUN_NUMBER");
 #endif