]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ZDC/AliZDCRawStream.cxx
Corrected UInt_t <-> Int_t conversion
[u/mrichter/AliRoot.git] / ZDC / AliZDCRawStream.cxx
index c0d2a87c36d00abb7ef68280e49238889698ca6e..87243c2348f7edaf0aeea3da927cd68aa19ed164 100644 (file)
@@ -52,6 +52,7 @@ AliZDCRawStream::AliZDCRawStream(AliRawReader* rawReader) :
   fIsADCEOB(kFALSE),
   fSODReading(kFALSE),
   fIsMapRead(kFALSE),
+  fReadCDH(kFALSE),
   fDeadfaceOffset(-1),
   fDeadbeefOffset(-1),
   fDataOffset(0),
@@ -100,6 +101,7 @@ AliZDCRawStream::AliZDCRawStream(AliRawReader* rawReader) :
   fCurrentCh(-1),
   fCabledSignal(-1),
   fCurrScCh(-1),
+  fCurrTDCCh(-1),
   fIsADCEventGood(kTRUE),
   fIsL0BitSet(kTRUE),
   fIsPileUpEvent(kFALSE),
@@ -122,7 +124,10 @@ AliZDCRawStream::AliZDCRawStream(AliRawReader* rawReader) :
   for(Int_t i=0; i<kNch; i++){
     for(Int_t j=0; j<5; j++){
       fMapADC[i][j]=-1;
-      if(i<32) fScalerMap[i][j]=-1;
+      if(i<32){
+        fScalerMap[i][j]=-1;
+        if(j<3) fTDCMap[i][j]=-1;
+      }
     }
   }
   
@@ -147,6 +152,7 @@ AliZDCRawStream::AliZDCRawStream(const AliZDCRawStream& stream) :
   fIsADCEOB(stream.fIsADCEOB), 
   fSODReading(stream.fSODReading),
   fIsMapRead(stream.fIsMapRead),
+  fReadCDH(stream.fReadCDH),
   fDeadfaceOffset(stream.GetDeadfaceOffset()),
   fDeadbeefOffset(stream.GetDeadbeefOffset()),
   fDataOffset(stream.GetDataOffset()),
@@ -195,6 +201,7 @@ AliZDCRawStream::AliZDCRawStream(const AliZDCRawStream& stream) :
   fCurrentCh(stream.fCurrentCh),
   fCabledSignal(stream.GetCabledSignal()),
   fCurrScCh(stream.fCurrScCh),
+  fCurrTDCCh(stream.fCurrTDCCh),
   fIsADCEventGood(stream.fIsADCEventGood),
   fIsL0BitSet(stream.fIsL0BitSet),
   fIsPileUpEvent(stream.fIsPileUpEvent),
@@ -249,7 +256,7 @@ void AliZDCRawStream::ReadChMap()
   for(Int_t i=0; i<kNch; i++){
     fMapADC[i][0] = chMap->GetADCModule(i);
     fMapADC[i][1] = chMap->GetADCChannel(i);
-    fMapADC[i][2] = -1;
+    fMapADC[i][2] = chMap->GetADCSignalCode(i);
     fMapADC[i][3] = chMap->GetDetector(i);
     fMapADC[i][4] = chMap->GetSector(i);
   }
@@ -382,14 +389,13 @@ Bool_t AliZDCRawStream::Next()
 
   fEvType = fRawReader->GetType();
   if(fPosition==0){
-    //if(fEvType==7 || fEvType ==8){ //Physics or calibration event
-      ReadCDHHeader();
-    //}
-    fCurrentCh=0; fCurrScCh=0; fNChannelsOn=0;
+    ReadCDHHeader();
+    // Needed to read simulated raw data (temporary solution?)
+    if(!fReadCDH) fReadOutCard=1;
+    fCurrentCh=0; fCurrScCh=0;  fCurrTDCCh=0;fNChannelsOn=0;
     // Ch. debug
     //printf("\n  AliZDCRawStream::Next() - ev. type %d",fEvType);
   }
-  
   // Ch. debug
   //printf("\n  AliZDCRawStream::Next() - fBuffer[%d] = %x\n",fPosition, fBuffer);
   
@@ -431,7 +437,7 @@ Bool_t AliZDCRawStream::Next()
         // DARC 1st datum @ fDataOffset+1 \ ZRC 1st valid datum @ fDataOffset=0
         if((fPosition==fDataOffset+1) || (fPosition==fDataOffset)){ 
           printf("\n\n ------ AliZDCRawStream -> Reading mapping from StartOfData event ------\n");
-          fCurrentCh=0; fCurrScCh=0;   
+          fCurrentCh=0; fCurrScCh=0; fCurrTDCCh=0;     
         }
        else{
          printf(" ------ AliZDCRawStream -> End of ZDC StartOfData event ------\n\n");
@@ -584,12 +590,23 @@ Bool_t AliZDCRawStream::Next()
            else if(fCabledSignal==kZEM2 || fCabledSignal==kZEM2D) fScalerMap[fCurrScCh][4]=2;
          }
          // Ch debug.
-         //printf("\t VME scaler mod. %d ch. %d, signal %d",fScalerMap[fCurrScCh][0],fADCChannel,fCabledSignal);
-         //if(fCabledSignal!=0 && fCabledSignal!=1) printf("  det. %d sec. %d\n",fScalerMap[fCurrScCh][3],fScalerMap[fCurrScCh][4]);
-         //else printf("  Signal void/not connected\n");
+         /*printf("\t VME scaler mod. %d ch. %d, signal %d",fScalerMap[fCurrScCh][0],fADCChannel,fCabledSignal);
+         if(fCabledSignal!=0 && fCabledSignal!=1) printf("  det. %d sec. %d\n",fScalerMap[fCurrScCh][3],fScalerMap[fCurrScCh][4]);
+         else printf("  Signal void/not connected\n");*/
          
           fCurrScCh++;
         }
+       else if(fModType==KV1290 && fADCModule==kZDCTDCGeo){  // ******** ZDC TDC **************************
+          fIsChMapping = kTRUE;
+         fTDCMap[fCurrTDCCh][0] = fADCModule;
+         fTDCMap[fCurrTDCCh][1] = fADCChannel;
+         fTDCMap[fCurrTDCCh][2] = fCabledSignal;
+          
+         fCurrTDCCh++;
+         
+         // Ch debug.
+         //printf("\tZDC TDC: mod. %d ch. %d, signal %d\n",fADCModule,fADCChannel,fCabledSignal);        
+        }
        /*else if(fModType == kTRG){ // **** scalers from trigger card
          //printf("\t Trigger scaler mod. %d ch. %d, signal %d\n",fADCModule,fADCChannel,fCabledSignal);         
         }
@@ -646,7 +663,6 @@ Bool_t AliZDCRawStream::Next()
   // ---------------------------------------------
   else if(fPosition>=fDataOffset){
     
-    //printf("AliZDCRawStream: fSODReading = %d\n", fSODReading);
     if(!fSODReading && !fIsMapRead) ReadChMap();
     
     //  !!!!!!!!!!!!!!! DARC readout card only !!!!!!!!!!!
@@ -658,9 +674,9 @@ Bool_t AliZDCRawStream::Next()
         if((fBuffer & 0x07000000) != 0x06000000){
           fRawReader->AddMajorErrorLog(kZDCDataError);
         }
-        else if((fBuffer & 0x07000000) == 0x06000001){ // Corrupted event!!!
-          fIsADCEventGood = kFALSE;
-        }
+        //else if((fBuffer & 0x07000000) == 0x06000001){ // Corrupted event!!!
+        //  fIsADCEventGood = kFALSE;
+        //}
       }
     
       // If the not valid datum isn't followed by the 1st ADC header
@@ -720,16 +736,13 @@ Bool_t AliZDCRawStream::Next()
             break;
           } 
        }
-       if(foundMapEntry==kFALSE){
+       if(foundMapEntry==kFALSE && fEvType==7){
          AliWarning(Form(" No valid entry in ADC mapping for raw data %d ADCmod. %d ch. %d\n",
              fPosition,fADCModule,fADCChannel));
        }
-       //
-       //printf("AliZDCRawStream -> ADCmod. %d ch. %d -> det %d sec %d\n",
-       //  fADCModule,fADCChannel,fSector[0],fSector[1]);
-       
+
        // Final checks
-       if(foundMapEntry==kTRUE){
+       if(foundMapEntry==kTRUE && fEvType==7){
          if(fSector[0]<1 || fSector[0]>5){
             AliWarning(Form(" No valid detector assignment: %d",fSector[0]));
             fRawReader->AddMajorErrorLog(kInvalidSector);
@@ -793,7 +806,7 @@ Bool_t AliZDCRawStream::Next()
         //Ch. debug
         //printf("  AliZDCRawStream -> ZDC TDC: mod.%d\n",fADCModule);
       }
-      else if (fADCModule==kADDTDCGeo){ // *** ADD TDC
+      else if(fADCModule==kADDTDCGeo){ // *** ADD TDC
         fIsADDTDCHeader = kTRUE;
         //Ch. debug
         //printf("  AliZDCRawStream -> ADD TDC: mod.%d\n",fADCModule);