+
+ if(!GetFirstInputBlock(AliHLTTRDDefinitions::fgkHiLvlClusterDataType))
+ return AliHLTTRDTrackerV1Component::DoEvent(evtData, blocks, trigData, outputPtr, size, outputBlocks );
+
+ for(const TObject *iter = GetFirstInputObject(AliHLTTRDDefinitions::fgkHiLvlClusterDataType); iter; iter = GetNextInputObject())
+ {
+ TClonesArray* clusterArray = dynamic_cast<TClonesArray*>(const_cast<TObject*>(iter));
+ if(!clusterArray)continue;
+ TObjString* strg = dynamic_cast<TObjString*>(const_cast<TObject*>(GetNextInputObject()));
+ if(!strg)continue;
+
+ fNtimeBins = strg->String().Atoi();
+ fESD->Reset();
+ AliTRDtrackerV1::SetNTimeBins(fNtimeBins);
+ HLTDebug("TClonesArray of clusters: nbEntries = %i", clusterArray->GetEntriesFast());
+ fTracker->LoadClusters(clusterArray);
+ fTracker->Clusters2Tracks(fESD);
+ Int_t nTracks = fESD->GetNumberOfTracks();
+ HLTInfo("Number of tracks == %d ==", nTracks);
+ TClonesArray* trdTracks = fTracker->GetListOfTracks();
+
+ if(fEmulateHLTTracks && trdTracks){
+ trdTracks = new TClonesArray(*trdTracks);
+ AliHLTTRDUtils::EmulateHLTTracks(trdTracks);
+ }
+
+ PushBack(trdTracks, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, 0);
+ PushBack(strg, AliHLTTRDDefinitions::fgkHiLvlTracksDataType, 0);
+ fTracker->UnloadClusters();
+ AliTRDReconstructor::SetClusters(0x0);
+
+ if(fEmulateHLTTracks && trdTracks){
+ trdTracks->Delete();
+ delete trdTracks;
+ }
+ }
+ return 0;