fBin++;
- if ( fBin >= (Int_t)fActRowData->fNDigit ){
+ while ( fBin >= (Int_t)fActRowData->fNDigit ){
fRow++;
if ((fRow >= fFirstRow) && (fRow <= fLastRow)){
-
+
//new row
if (GetNextRowData(fActRowData)<0) {
rreadvalue = false;
rreadvalue = false;
return rreadvalue;
}
- if(!fActRowData){
- return false;
- }
+ if(!fActRowData){
+ return false;
+ }
if ((Int_t)fActRowData->fRow != fRow){
HLTWarning("Row number should match! fActRowData->fRow=%d fRow=%d", fActRowData->fRow, fRow);
}
}
-
+
fData = fActRowData->fDigitData;
if(fBin==0){
return (AliHLTUInt32_t)(fMapping->GetHwAddress((UInt_t)GetSortedRow(),(UInt_t)GetSortedPad()));//fTPCRawStream->GetHWAddress();
}
+AliHLTTPCDigitData AliHLTTPCDigitReaderUnpacked::GetSortedDigit(){
+ // see header file for class documentation
+ assert(fData);
+ if (!fData) return AliHLTTPCDigitData();
+ return fData[fBinRowPositionSorted.at(fBin)];
+}
+
Int_t AliHLTTPCDigitReaderUnpacked::GetSortedTime(){
// see header file for class documentation
assert(fData);
fPrevPad = GetSortedPad();
fPrevRow = GetSortedRow();
fDataBunch.push_back(GetSortedSignal());
- fDigitsVector.push_back(fData[fBin]);
+ fDigitsVector.push_back(GetSortedDigit());
do{
if(NextSignal()){
fPrevTime = GetSortedTime();
//fDataBunch.insert(fDataBunch.begin(), GetSortedSignal());// add the signal to the beginning of the buffer
fDataBunch.push_back(GetSortedSignal());// add the signal to the beginning of the buffer
- fDigitsVector.push_back(fData[fBin]);
+ fDigitsVector.push_back(GetSortedDigit());
}
else{//end of bunch but not of channel
break;