// unpack cluster information
AliHLTTPCCAClusterInfo &clu = fClusterInfos[nClustersCurrent + nCluNew];
- int id, row;
+ UInt_t id, row;
float x,y,z;
- sliceTr->Cluster( iTrClu ).Get(id,row,x,y,z);
+ sliceTr->Cluster( iTrClu ).Get(iSlice,id,row,x,y,z);
clu.SetISlice( iSlice );
clu.SetIRow( row );
std::vector<int> clusterIDs;
for ( int i = 0; i < tCA->NClusters(); i++ ) {
- int id, row;
+ UInt_t id, row;
float x,y,z;
- tCA->Cluster(i).Get(id,row,x,y,z);
+ tCA->Cluster(i).Get(iSlice,id,row,x,y,z);
clusterIDs.push_back( id );
}
tCA = tCA->GetNextTrack();
{
public:
- GPUh() void Set( int Id, int row, float x, float y, float z ){
- fId = Id; fRow = (UChar_t) row;
+ GPUh() void Set( UInt_t Id, UInt_t row, float x, float y, float z ){
+ fId = (Id&0xffffff)+(row<<25);
fXYZp = AliHLTTPCCADataCompressor::PackXYZ( row, x, y, z );
}
- GPUh() void Get( int &Id, int &row, float &x, float &y, float &z ) const{
- Id = fId; row = fRow;
- AliHLTTPCCADataCompressor::UnpackXYZ( fRow, fXYZp, x, y, z );
+ GPUh() void Get( int iSlice, UInt_t &Id, UInt_t &row, float &x, float &y, float &z ) const{
+ Id = (fId&0xffffff) + iSlice<<25;
+ row = fId>>25;
+ AliHLTTPCCADataCompressor::UnpackXYZ( row, fXYZp, x, y, z );
}
-
+
private:
- Int_t fId; // Id ( slice, patch, cluster )
- UChar_t fRow; // row number
+ UInt_t fId; // Id ( row, patch, cluster )
AliHLTTPCCACompressedCluster fXYZp;// packed coordinates
};
currOutTrack->fFlags = 0;
currOutTrack->fNPoints = nClu;
for( int i = 0; i< nClu; i++ ) {
- int id, row;
+ UInt_t id, row;
float x,y,z;
- sliceTr->Cluster( i ).Get(id,row,x,y,z);
+ sliceTr->Cluster( i ).Get(slice,id,row,x,y,z);
currOutTrack->fPointIDs[i] = id;
if( i == nClu-1 ){
currOutTrack->fLastX = x;
AliHLTTPCCATrackParam t0 = par;
for ( int ih = 0; ih < nhits; ih++ ) {
int index = hltOut.ClusterId( tCA.FirstClusterRef() + firstHit + ih );
+ index = index&0xffffff;
tTPC.SetClusterIndex( ih, index );
AliTPCclusterMI *c = &( fClusters[index] );
int iSlice = fClusterSliceRow[index] >> 8;