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()
}
- // 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) {
// 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());
#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