///////////////////////////////////////////////////////////////////////////////
#include "AliHLTTPCDefinitions.h"
-
+#include "AliHLTTPCTransform.h"
+#include <cerrno>
/** ROOT macro for the implementation of ROOT specific class methods */
ClassImp(AliHLTTPCDefinitions)
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkUnpackedRawDataType = AliHLTComponentDataTypeInitializer("RAWUNPAK", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClustersDataType = AliHLTComponentDataTypeInitializer("CLUSTERS", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRawClustersDataType = AliHLTComponentDataTypeInitializer("CLUSTRAW", kAliHLTDataOriginTPC);
+const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRawClustersDescriptorDataType = AliHLTComponentDataTypeInitializer("CLRAWDSC", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkHWClustersDataType = AliHLTComponentDataTypeInitializer("HWCLUST1", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkAlterClustersDataType = AliHLTComponentDataTypeInitializer("HWCL_ALT", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkVertexDataType = AliHLTComponentDataTypeInitializer("VERTEX ", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkTrackSegmentsDataType = AliHLTComponentDataTypeInitializer("TRAKSEGS", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkTracksDataType = AliHLTComponentDataTypeInitializer("TRACKS ", kAliHLTDataOriginTPC);
-const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClusterTracksModelDataType = AliHLTComponentDataTypeInitializer("CLSTRKMD", kAliHLTDataOriginTPC);
+const AliHLTComponentDataType AliHLTTPCDefinitions::fgkDataCompressionDescriptorDataType = AliHLTComponentDataTypeInitializer("COMPDESC", kAliHLTDataOriginTPC);
+const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClusterTracksModelDataType = AliHLTComponentDataTypeInitializer("CLSTRKMD", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRemainingClustersModelDataType = AliHLTComponentDataTypeInitializer("REMCLSMD", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkClusterTracksCompressedDataType = AliHLTComponentDataTypeInitializer("CLSTRKCM", kAliHLTDataOriginTPC);
const AliHLTComponentDataType AliHLTTPCDefinitions::fgkRemainingClustersCompressedDataType = AliHLTComponentDataTypeInitializer("REMCLSCM", kAliHLTDataOriginTPC);
static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLUSTRAW", kAliHLTDataOriginTPC);
return dt;
}
+const AliHLTComponentDataType& AliHLTTPCDefinitions::RawClustersDescriptorDataType() {
+ static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLRAWDSC", kAliHLTDataOriginTPC);
+ return dt;
+}
const AliHLTComponentDataType& AliHLTTPCDefinitions::HWClustersDataType() {
static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("HWCLUST1", kAliHLTDataOriginTPC);
return dt;
static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("TRACKS ", kAliHLTDataOriginTPC);
return dt;
}
-
+const AliHLTComponentDataType& AliHLTTPCDefinitions::DataCompressionDescriptorDataType() {
+ static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("COMPDESC", kAliHLTDataOriginTPC);
+ return dt;
+}
const AliHLTComponentDataType& AliHLTTPCDefinitions::ClusterTracksModelDataType() {
static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLSTRKMD", kAliHLTDataOriginTPC);
return dt;
static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("CLIDSTRK", kAliHLTDataOriginTPC);
return dt;
}
+const AliHLTComponentDataType& AliHLTTPCDefinitions::CompressedClusterIdDataType() {
+ static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("COMPCLID", kAliHLTDataOriginTPC);
+ return dt;
+}
const AliHLTComponentDataType& AliHLTTPCDefinitions::RemainingClustersCompressedDataType() {
static AliHLTComponentDataType dt = AliHLTComponentDataTypeInitializer("REMCLSCM", kAliHLTDataOriginTPC);
return dt;
return true;
}
+Int_t AliHLTTPCDefinitions::GetSingleSliceNr( ULong_t spec )
+{
+ // get the slice number provided that spec encodes a single slice
+ // return -EINVAL if encoded min and max slice differ
+ // return -ERANGE if slice number out of range
+ AliHLTUInt8_t min=GetMinSliceNr(spec);
+ AliHLTUInt8_t max=GetMaxSliceNr(spec);
+ if (min!=max) return -EINVAL;
+ if (max>=AliHLTTPCTransform::GetNSlice()) return -ERANGE;
+ return min;
+}
+
+Int_t AliHLTTPCDefinitions::GetSinglePatchNr( ULong_t spec )
+{
+ // get the patch number provided that spec encodes a single patch
+ // return -EINVAL if encoded min and max patch differ
+ // return -ERANGE if patch number out of range
+ AliHLTUInt8_t min=GetMinPatchNr(spec);
+ AliHLTUInt8_t max=GetMaxPatchNr(spec);
+ if (min!=max) return -EINVAL;
+ if (max>=AliHLTTPCTransform::GetNumberOfPatches()) return -ERANGE;
+ return min;
+}