From 3ca472356fca352a9acd4ae35c5b953828d39e3d Mon Sep 17 00:00:00 2001 From: richterm Date: Tue, 11 Oct 2011 07:15:11 +0000 Subject: [PATCH] speedup of track model compression by another factor 2 --- .../comp/AliHLTTPCDataCompressionComponent.cxx | 16 +++++++++------- .../comp/AliHLTTPCDataCompressionComponent.h | 1 + 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx b/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx index 6d3a7f8ad33..7a254083aef 100644 --- a/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx +++ b/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.cxx @@ -336,7 +336,7 @@ int AliHLTTPCDataCompressionComponent::DoEvent( const AliHLTComponentEventData& assignedInThisPartition=iResult; associatedClusters+=iResult; } - iResult=ProcessRemainingClusters(&inputTrackArray[0], inputTrackArray.size(), fTrackGrid, fSpacePointGrid, fRawInputClusters, slice, patch); + iResult=ProcessRemainingClusters(&inputTrackArray[0], inputTrackArray.size(), fTrackGrid, trackindexmap, fSpacePointGrid, fRawInputClusters, slice, patch); if (iResult>=0) { if (fSpacePointGrid->GetNumberOfSpacePoints()>0) { if (fVerbosity>0) HLTInfo("associated %d (%d) of %d clusters in slice %d partition %d", iResult+assignedInThisPartition, assignedInThisPartition, fSpacePointGrid->GetNumberOfSpacePoints(), slice, patch); @@ -545,6 +545,7 @@ int AliHLTTPCDataCompressionComponent::ProcessTrackClusters(AliHLTGlobalBarrelTr int AliHLTTPCDataCompressionComponent::ProcessRemainingClusters(AliHLTGlobalBarrelTrack* pTracks, unsigned nofTracks, AliHLTTrackGeometry::AliHLTTrackGrid* pTrackIndex, + const vector& trackIndexMap, AliHLTSpacePointContainer::AliHLTSpacePointPropertyGrid* pClusterIndex, AliHLTSpacePointContainer* pClusters, int slice, int partition) const @@ -557,15 +558,16 @@ int AliHLTTPCDataCompressionComponent::ProcessRemainingClusters(AliHLTGlobalBarr for (int padrow=0; padrowbegin(slice, partition, padrow); trackId!=pTrackIndex->end(); trackId++) { - unsigned i=0; - for (; i=trackIndexMap.size()) { + HLTError("can not find track id %d in index map of size %d", trackId.Data(), trackIndexMap.size()); + continue; } - if (i>=nofTracks) { - HLTError("can not find track of id %d", trackId.Data()); + int trackindex=trackIndexMap[trackId.Data()]; + if (trackindex<0 || trackindex>=(int)nofTracks) { + HLTError("invalid index %d found for track id %d", trackindex, trackId.Data()); continue; } - AliHLTGlobalBarrelTrack& track=pTracks[i]; + AliHLTGlobalBarrelTrack& track=pTracks[trackindex]; if (!track.GetTrackGeometry()) { HLTError("can not find track geometry for track %d", trackId.Data()); continue; diff --git a/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.h b/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.h index 7803d0e45b1..837ce0297d5 100644 --- a/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.h +++ b/HLT/TPCLib/comp/AliHLTTPCDataCompressionComponent.h @@ -128,6 +128,7 @@ protected: int ProcessRemainingClusters(AliHLTGlobalBarrelTrack* pTracks, unsigned nofTracks, AliHLTTrackGeometry::AliHLTTrackGrid* pTrackIndex, + const vector& trackIndexMap, AliHLTSpacePointContainer::AliHLTSpacePointPropertyGrid* pClusterIndex, AliHLTSpacePointContainer* pClusters, int slice, int partition) const; -- 2.43.0