Error in DARC data reading corrected + message bit masking
authorcoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 25 Sep 2009 20:25:40 +0000 (20:25 +0000)
committercoppedis <coppedis@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 25 Sep 2009 20:25:40 +0000 (20:25 +0000)
ZDC/AliZDCRawStream.cxx
ZDC/ZDCEMDda.cxx
ZDC/ZDCLASERda.cxx
ZDC/ZDCPEDESTALda.cxx

index 10f7f01..f3ffb35 100644 (file)
@@ -251,28 +251,28 @@ void AliZDCRawStream::ReadCDHHeader()
     UChar_t message = header->GetAttributes();
     //printf("\t AliZDCRawStream::ReadCDHHeader -> Attributes %x\n",message);
     
-    if(message == 0x0){ // PHYSICS RUN
+    if((message & 0x0) == 0x0){ // PHYSICS RUN
        //printf("\t PHYSICS RUN raw data found\n");
     }
-    else if(message == 0x10){ // COSMIC RUN
+    else if((message & 0x10) == 0x10){ // COSMIC RUN
        //printf("\t STANDALONE_COSMIC RUN raw data found\n");
     }
-    else if(message == 0x20){ // PEDESTAL RUN
+    else if((message & 0x20) == 0x20){ // PEDESTAL RUN
        //printf("\t STANDALONE_PEDESTAL RUN raw data found\n");
     }
-    else if(message == 0x30){ // LASER RUN
+    else if((message & 0x30) == 0x30){ // LASER RUN
        //printf("\t STANDALONE_LASER RUN raw data found\n");
     }
-    else if(message == 0x40){ // CALIBRATION_CENTRAL RUN
+    else if((message & 0x40) == 0x40){ // CALIBRATION_CENTRAL RUN
        //printf("\t CALIBRATION_CENTRAL RUN raw data found\n");
     }
-    else if(message == 0x50){ // CALIBRATION_SEMICENTRAL
+    else if((message & 0x50) == 0x50){ // CALIBRATION_SEMICENTRAL
        //printf("\t CALIBRATION_SEMICENTRAL RUN raw data found\n");
     }
-    else if(message == 0x60){ // CALIBRATION_MB
+    else if((message & 0x60) == 0x60){ // CALIBRATION_MB
        //printf("\t CALIBRATION_MB RUN raw data found\n");
     }
-    else if(message == 0x70){ // CALIBRATION_EMD
+    else if((message & 0x70) == 0x70){ // CALIBRATION_EMD
        //printf("\t CALIBRATION_EMD RUN raw data found\n");
     }
     // *** Checking the bit indicating the used readout card
@@ -581,37 +581,35 @@ Bool_t AliZDCRawStream::Next()
   // -------------------------------------------
   // --- DARC data
   // -------------------------------------------
-  if(fReadOutCard == 0){
-    if(fPosition<fDeadfaceOffset){
+  if(fPosition<fDeadfaceOffset && fReadOutCard==0){
+    fPosition++;
+    return kTRUE;
+  }
+  else if(fPosition==fDeadfaceOffset && fReadOutCard==0){
+    if(fBuffer != 0xdeadface){
+      AliWarning(" NO deadface after DARC data");
+      fRawReader->AddMajorErrorLog(kDARCError); 
+    }
+    else{
       fPosition++;
       return kTRUE;
     }
-    else if(fPosition==fDeadfaceOffset){
-      if(fBuffer != 0xdeadface){
-        AliWarning(" NO deadface after DARC data");
-        fRawReader->AddMajorErrorLog(kDARCError); 
-      }
-      else{
-        fPosition++;
-        return kTRUE;
-      }
+  }
+  else if(fPosition>fDeadfaceOffset && fPosition<fDeadbeefOffset && fReadOutCard==0){
+    fPosition++;
+    return kTRUE;
+  }
+  else if(fPosition==fDeadbeefOffset && fReadOutCard==0){
+    if(fBuffer != 0xdeadbeef){
+      AliWarning(" NO deadbeef after DARC global data");
+      fRawReader->AddMajorErrorLog(kDARCError);  
+      fPosition++;
+      return kFALSE;
     }
-    else if(fPosition>fDeadfaceOffset && fPosition<fDeadbeefOffset){
+    else{
       fPosition++;
       return kTRUE;
     }
-    else if(fPosition==fDeadbeefOffset){
-      if(fBuffer != 0xdeadbeef){
-        AliWarning(" NO deadbeef after DARC global data");
-        fRawReader->AddMajorErrorLog(kDARCError);  
-        fPosition++;
-        return kFALSE;
-      }
-      else{
-        fPosition++;
-        return kTRUE;
-      }
-    }
   } // ------------------------------- DARC data
   
   // -------------------------------------------
@@ -627,7 +625,7 @@ Bool_t AliZDCRawStream::Next()
     // Not valid datum before the event 
     // there MUST be a NOT valid datum before the event!!!
     if(fReadOutCard==0){
-      if(fPosition==fDataOffset){ // and con la darc
+      if(fPosition==fDataOffset){ 
         //printf("\t **** ZDC data begin ****\n");
         if((fBuffer & 0x07000000) != 0x06000000){
           fRawReader->AddMajorErrorLog(kZDCDataError);
@@ -639,7 +637,7 @@ Bool_t AliZDCRawStream::Next()
     
       // If the not valid datum isn't followed by the 1st ADC header
       // the event is corrupted (i.e., 2 gates arrived before trigger)
-      else if(fPosition==fDataOffset+1){ // and con la darc
+      else if(fPosition==fDataOffset+1){ 
         if((fBuffer & 0x07000000) != 0x02000000){
           AliWarning("ZDC ADC -> The not valid datum is NOT followed by an ADC header!");
           fRawReader->AddMajorErrorLog(kZDCDataError);
index 18922ed..9d92b46 100644 (file)
@@ -308,7 +308,7 @@ int main(int argc, char **argv) {
       const AliRawDataHeader* header = reader->GetDataHeader();
       if(header){
          UChar_t message = header->GetAttributes();
-        if(message & 0x70){ // DEDICATED EMD RUN
+        if((message & 0x70) == 0x70){ // DEDICATED EMD RUN
            //printf("\t STANDALONE_EMD_RUN raw data found\n");
            continue;
         }
index c0579b8..8e989f8 100644 (file)
@@ -310,7 +310,7 @@ int main(int argc, char **argv) {
         const AliRawDataHeader* header = reader->GetDataHeader();
         if(header) {
          UChar_t message = header->GetAttributes();
-        if(message & 0x30){ // DEDICATED LASER RUN
+        if((message & 0x30) == 0x30){ // DEDICATED LASER RUN
            //printf("\t STANDALONE_LASER_RUN raw data found\n");
            continue;
         }
index 7ee7a3b..de7a54f 100644 (file)
@@ -294,12 +294,12 @@ int main(int argc, char **argv) {
         const AliRawDataHeader* header = reader->GetDataHeader();
         if(header){
          UChar_t message = header->GetAttributes();
-        //printf("   message from L1 %x\n", message);
-         if(message == 0x20){ // PEDESTAL RUN
+         if((message & 0x20) == 0x20){ // PEDESTAL RUN
             //printf("\t STANDALONE_PEDESTAL RUN raw data found\n");
          }
          else{
             printf("ZDCPEDESTALda.cxx -> NO STANDALONE_PEDESTAL RUN raw data found\n");
+           printf("   Attributes: %x\n", message);
             return -1;
          }
         }
@@ -335,6 +335,9 @@ int main(int argc, char **argv) {
         Int_t index=-1;
         Int_t detector = rawStreamZDC->GetSector(0);
         Int_t sector = rawStreamZDC->GetSector(1);
+        //
+        //printf(" rawData: det %d sec %d  value %d\n", 
+        //     detector, sector,rawStreamZDC->GetADCGain(),rawStreamZDC->GetADCValue() );
         
         if(rawStreamZDC->IsADCDataWord() && (detector!=-1)){
          if(sector!=5){ // Physics signals
@@ -445,7 +448,7 @@ int main(int argc, char **argv) {
   TF1 *ADCootfunchg[kNChannels];
   for(Int_t i=0; i<kNChannels; i++){
      if(hPedOutOfTimehg[i]->GetEntries() == 0){
-       printf("\n WARNING! Empty histos -> ending DA WITHOUT writing output\n\n");
+       printf("\n WARNING! Empty histos for out-of-time channels!!!\n\n");
        return -1;
      } 
      hPedOutOfTimehg[i]->Fit("gaus","Q");