fIsADCEOB(kFALSE),
fSODReading(kFALSE),
fIsMapRead(kFALSE),
+ fReadCDH(kFALSE),
fDeadfaceOffset(-1),
fDeadbeefOffset(-1),
fDataOffset(0),
fCurrentCh(-1),
fCabledSignal(-1),
fCurrScCh(-1),
+ fCurrTDCCh(-1),
fIsADCEventGood(kTRUE),
fIsL0BitSet(kTRUE),
fIsPileUpEvent(kFALSE),
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;
+ }
}
}
fIsADCEOB(stream.fIsADCEOB),
fSODReading(stream.fSODReading),
fIsMapRead(stream.fIsMapRead),
+ fReadCDH(stream.fReadCDH),
fDeadfaceOffset(stream.GetDeadfaceOffset()),
fDeadbeefOffset(stream.GetDeadbeefOffset()),
fDataOffset(stream.GetDataOffset()),
fCurrentCh(stream.fCurrentCh),
fCabledSignal(stream.GetCabledSignal()),
fCurrScCh(stream.fCurrScCh),
+ fCurrTDCCh(stream.fCurrTDCCh),
fIsADCEventGood(stream.fIsADCEventGood),
fIsL0BitSet(stream.fIsL0BitSet),
fIsPileUpEvent(stream.fIsPileUpEvent),
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);
}
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);
// 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");
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);
}
// ---------------------------------------------
else if(fPosition>=fDataOffset){
- //printf("AliZDCRawStream: fSODReading = %d\n", fSODReading);
if(!fSODReading && !fIsMapRead) ReadChMap();
// !!!!!!!!!!!!!!! DARC readout card only !!!!!!!!!!!
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
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);
//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);