- Int_t index1=0, index2=0;
- // *** ADC1 (ZN1, ZP1, ZEM1,2) o ADC3 (ZN1, ZP1, ZEM1,2 o.o.t.)
- if(digit.GetSector(0)==1 || digit.GetSector(0)==2 || digit.GetSector(0)==3){
- if(digit.GetSector(0)==1 || digit.GetSector(0)==2){
- index1 = (digit.GetSector(0)-1) + digit.GetSector(1)*4; // ZN1 or ZP1
- lADCDataChannel = (digit.GetSector(0)-1)*8 + digit.GetSector(1);
- }
- else if(digit.GetSector(0)==3){ // ZEM 1,2
- index1 = 20 + (digit.GetSector(1)-1);
- lADCDataChannel = 5 + (digit.GetSector(1)-1)*8;
+ Int_t index=0;
+ if(digit.GetSector(1)!=5){ // ZDC signal channels
+ // *** ADC1 (ZN1, ZP1, ZEM1,2) or ADC3 (ZN1, ZP1, ZEM1,2 o.o.t.)
+ if(digit.GetSector(0)==1 || digit.GetSector(0)==2 || digit.GetSector(0)==3){
+ if(digit.GetSector(0)==1 || digit.GetSector(0)==2){
+ index = (digit.GetSector(0)-1) + 4*digit.GetSector(1); // ZN1 or ZP1
+ lADCDataChannel = 8*(digit.GetSector(0)-1) + digit.GetSector(1);
+ }
+ else if(digit.GetSector(0)==3){ // ZEM 1,2
+ index = 20 + (digit.GetSector(1)-1);
+ lADCDataChannel = 5 + 8*(digit.GetSector(1)-1);
+ }
+ //
+ /*printf("\t AliZDC::Digits2Raw -> idig%d det %d quad %d index %d, ADCch %d ADCVal[%d, %d]\n",
+ iDigit,digit.GetSector(0),digit.GetSector(1),index,lADCDataChannel,
+ digit.GetADCValue(0),digit.GetADCValue(1));// Ch. debug
+ */
+ //
+ if(iDigit<knADCData1){ // *** In-time signals
+ lADCDataValue1[index] = digit.GetADCValue(0); // High gain ADC ch.
+ if(lADCDataValue1[index] > 2047) lADCDataOvFlw1[index] = 1;
+ lADCDataValue1[index+2] = digit.GetADCValue(1); // Low gain ADC ch.
+ if(lADCDataValue1[index+2] > 2047) lADCDataOvFlw1[index+2] = 1;
+
+ lADCData1[index] = lADCDataGEO << 27 | 0x1 << 24 | lADCDataChannel << 17 |
+ lADCDataOvFlw1[index] << 12 | (lADCDataValue1[index] & 0xfff);
+ lADCData1[index+2] = lADCDataGEO << 27 | 0x1 << 24 | lADCDataChannel << 17 | 0x1 << 16 |
+ lADCDataOvFlw1[index+2] << 12 | (lADCDataValue1[index+2] & 0xfff);
+ }
+ else{ // *** Out-of-time signals
+ lADCDataValue3[index] = digit.GetADCValue(0); // High gain ADC ch.
+ if(lADCDataValue3[index] > 2047) lADCDataOvFlw3[index] = 1;
+ lADCDataValue3[index+2] = digit.GetADCValue(1); // Low gain ADC ch.
+ if(lADCDataValue3[index+2] > 2047) lADCDataOvFlw3[index+2] = 1;
+
+ lADCData3[index] = lADCDataGEO << 27 | lADCDataChannel << 17 |
+ lADCDataOvFlw3[index] << 12 | (lADCDataValue3[index] & 0xfff);
+ lADCData3[index+2] = lADCDataGEO << 27 | lADCDataChannel << 17 | 0x1 << 16 |
+ lADCDataOvFlw3[index+2] << 12 | (lADCDataValue3[index+2] & 0xfff);
+ }