:
AliHLTFileWriter(),
fRawreaderMode(DefaultRawreaderMode),
- fDigitReaderType(kDigitReaderRaw)
+ fDigitReaderType(kDigitReaderRaw),
+ fRcuTrailerSize(2),
+ fUnsorted(false)
{
// see header file for class documentation
// or
break;
}
+ // -rcutrailersize
+ if (argument.CompareTo("-rcutrailersize")==0) {
+ if ((bMissingParam=(++i>=argc))) break;
+ char *endptr=NULL;
+ fRcuTrailerSize=strtoul(argv[i], &endptr, 0);
+ if (/*endptr ||*/ fRcuTrailerSize<1) {
+ HLTError("invalid parameter '%s', %s", argv[i], endptr==NULL?"number >= 1 expected":"can not convert string to number");
+ iResult=-EINVAL;
+ }
+ break;
+ }
+
+ // -unsorted
+ if (argument.CompareTo("-unsorted")==0) {
+ fUnsorted=true;
+ break;
+ }
+
+ // -sorted
+ if (argument.CompareTo("-sorted")==0) {
+ fUnsorted=false;
+ break;
+ }
} while (0); // just use the do/while here to have the option of breaking
if (bMissingParam) iResult=-EPROTO;
case kDigitReaderPacked:
HLTInfo("create DigitReaderPacked");
pReader=new AliHLTTPCDigitReaderPacked;
+ if (pReader && fRcuTrailerSize==1) {
+ pReader->SetOldRCUFormat(true);
+ }
break;
case kDigitReaderRaw:
HLTInfo("create DigitReaderRaw");
iResult=-EFAULT;
break;
}
+ pReader->SetUnsorted(fUnsorted);
iResult=pReader->InitBlock(pDesc->fPtr,pDesc->fSize,firstRow,lastRow,part,slice);
int iPrintedRow=-1;
}
if (iPrintedPad!=pReader->GetPad()) {
iPrintedPad=pReader->GetPad();
- dump << "Row: " << iPrintedRow << " Pad: " << iPrintedPad << endl;
+ dump << "Row: " << iPrintedRow << " Pad: " << iPrintedPad << " HW address: " << pReader->GetAltroBlockHWaddr() << endl;
iLastTime=-1;
}
if (iLastTime!=pReader->GetTime()+1 && iLastTime!=pReader->GetTime()-1 ) {
* data mode of the <b>AliHLTTPCDigitReaderRaw</b>
* \li -digitreader <i> reader </i> <br>
* type of the digit reader: <i>unpacked, packed, raw</i>
+ * \li -rcutrailersize <i> size </i> <br>
+ * size of the RCU trailer in 32bit words (default 2)
+ * \li -unsorted <br>
+ * unsorted mode of digit readers (default sorted)
+ * \li -sorted <br>
+ * sorted mode of digit readers (default)
*
*/
class AliHLTTPCDigitDumpComponent : public AliHLTFileWriter {
/** the digit reader to use */
short fDigitReaderType; //!transient
+ /** size of the RCU trailer in 32bit words */
+ short fRcuTrailerSize; //! transient
+
+ /** unsorted/sorted mode of digit readers */
+ bool fUnsorted; //!transient
+
ClassDef(AliHLTTPCDigitDumpComponent, 0);
};
return 0;
}
+AliHLTUInt32_t AliHLTTPCDigitReader::GetAltroBlockHWaddr() const
+{
+ return 0;
+}
+
void AliHLTTPCDigitReader::PrintMissingFastAccessWarning()
{
// see header file for class documentation
*/
virtual int NextBunch();
+ /**
+ * Get current hardware address.
+ */
+ virtual AliHLTUInt32_t GetAltroBlockHWaddr() const;
+
/**
* Get the row number of the current value.
*/
fRawMemoryReader->SetEquipmentID(DDLid);
//fRawMemoryReader->SetEquipmentID(1);
- if(fOldRCUFormat)
+ if(fOldRCUFormat) {
fTPCRawStream->SetOldRCUFormat(kTRUE);
+ HLTInfo("set old RCU format (1 trailer word: 40bit payload)");
+ }
+ fRawMemoryReader->RewindEvents();
+ fRawMemoryReader->NextEvent();
if(!fUnsorted){
//#if ENABLE_PAD_SORTING
}
}
+AliHLTUInt32_t AliHLTTPCDigitReaderPacked::GetAltroBlockHWaddr() const
+{
+ return fTPCRawStream->GetHWAddress();
+}
+
Int_t AliHLTTPCDigitReaderPacked::GetSignal(){
/*
#if ENABLE_PAD_SORTING
Int_t GetPad();
Int_t GetSignal();
Int_t GetTime();
+ AliHLTUInt32_t GetAltroBlockHWaddr() const;
protected:
UInt_t fRemainingClustersModelDataSize;
private:
+ /** copy constructor prohibited */
+ AliHLTTPCCompModelDeconverter(const AliHLTTPCCompModelDeconverter&);
+ /** assignment operator prohibited */
+ AliHLTTPCCompModelDeconverter& operator=(const AliHLTTPCCompModelDeconverter&);
ClassDef(AliHLTTPCCompModelDeconverter, 1)