+// // ITS clusterer and vertexer
+// fBenchmark->Start("ITS Clusterer");
+// AliHLTITSclusterer clusterer(0);
+// AliRawReader *itsrawreader=new AliRawReaderDate(ptr);
+// TTree* treeClusters = new TTree("TreeL3ITSclusters"," "); //make a tree
+// clusterer.Digits2Clusters(itsrawreader,treeClusters);
+// fBenchmark->Stop("ITS Clusterer");
+
+// AliHLTITSVertexerZ vertexer;
+// AliESDVertex *vertex = vertexer.FindVertexForCurrentEvent(geom,treeClusters);
+// Double_t vtxPos[3];
+// Double_t vtxErr[3]={0.005,0.005,0.010};
+// vertex->GetXYZ(vtxPos);
+// // vertex->GetSigmaXYZ(vtxErr);
+// esd->SetVertex(vertex);
+
+// // TPC Hough reconstruction
+// Float_t ptmin = 0.1*AliHLTTransform::GetSolenoidField();
+// Float_t zvertex = vtxPos[2];
+
+// // Run the Hough Transformer
+// fBenchmark->Start("Init");
+// AliHLTHough *hough1 = new AliHLTHough();
+
+// hough1->SetThreshold(4);
+// hough1->CalcTransformerParams(ptmin);
+// hough1->SetPeakThreshold(70,-1);
+// // printf("Pointer is %x\n",ptr);
+// hough1->Init("./", kFALSE, 100, kFALSE,4,0,(Char_t*)ptr,zvertex);
+// hough1->SetAddHistograms();
+// fBenchmark->Stop("Init");
+
+// fBenchmark->Start("Init");
+// AliHLTHough *hough2 = new AliHLTHough();
+
+// hough2->SetThreshold(4);
+// hough2->CalcTransformerParams(ptmin);
+// hough2->SetPeakThreshold(70,-1);
+// // printf("Pointer is %x\n",ptr);
+// hough2->Init("./", kFALSE, 100, kFALSE,4,0,(Char_t*)ptr,zvertex);
+// hough2->SetAddHistograms();
+// fBenchmark->Stop("Init");
+
+// Int_t nglobaltracks = 0;
+// /*
+// hough1->StartProcessInThread(0,17);
+// hough2->StartProcessInThread(18,35);
+
+// // gSystem->Sleep(20000);
+// if(hough1->WaitForThreadFinish())
+// ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
+// if(hough2->WaitForThreadFinish())
+// ::Fatal("AliHLTHough::WaitForThreadFinish"," Can not join the required thread! ");
+
+// gSystem->MakeDirectory("hough1");
+// hough1->WriteTracks("./hough1");
+// gSystem->MakeDirectory("hough2");
+// hough2->WriteTracks("./hough2");
+// */
+
+// for(int slice=0; slice<=17; slice++)
+// {
+// // cout<<"Processing slice "<<slice<<endl;
+// fBenchmark->Start("ReadData");
+// hough1->ReadData(slice,0);
+// fBenchmark->Stop("ReadData");
+// fBenchmark->Start("Transform");
+// hough1->Transform();
+// fBenchmark->Stop("Transform");
+// hough1->AddAllHistogramsRows();
+// hough1->FindTrackCandidatesRow();
+// fBenchmark->Start("AddTracks");
+// hough1->AddTracks();
+// fBenchmark->Stop("AddTracks");
+
+// // AliHLTTrackArray* tracks = (AliHLTTrackArray*)hough1->GetTracks(0);
+// // nglobaltracks += tracks->GetNTracks();
+// }
+// for(int slice=18; slice<=35; slice++)
+// {
+// // cout<<"Processing slice "<<slice<<endl;
+// fBenchmark->Start("ReadData");
+// hough2->ReadData(slice,0);
+// fBenchmark->Stop("ReadData");
+// fBenchmark->Start("Transform");
+// hough2->Transform();
+// fBenchmark->Stop("Transform");
+// hough2->AddAllHistogramsRows();
+// hough2->FindTrackCandidatesRow();
+// fBenchmark->Start("AddTracks");
+// hough2->AddTracks();
+// fBenchmark->Stop("AddTracks");
+
+// // AliHLTTrackArray* tracks = (AliHLTTrackArray*)hough2->GetTracks(0);
+// // nglobaltracks += tracks->GetNTracks();
+// }
+
+// nglobaltracks += hough1->FillESD(esd);
+// nglobaltracks += hough2->FillESD(esd);
+
+// // ITS tracker
+// AliHLTITStracker itsTracker(0);
+// itsTracker.SetVertex(vtxPos,vtxErr);
+
+// itsTracker.LoadClusters(treeClusters);
+// itsTracker.Clusters2Tracks(esd);
+// itsTracker.UnloadClusters();
+
+// fBenchmark->Stop("Overall timing");
+// time.Set();
+// if (file) fprintf(file, "%s\n", time.AsString());
+// if (file) fprintf(file, "run: %d event: %d %d\n",
+// rawReader.GetRunNumber(),
+// rawReader.GetEventId()[0],
+// rawReader.GetEventId()[1]);
+// if (errorCode) fprintf(file, "ERROR: %d\n", errorCode);
+
+// if (file) fprintf(file, "Hough Transformer found %d tracks\n",nglobaltracks);
+
+// hough1->DoBench("hough1");
+// hough2->DoBench("hough2");
+// fBenchmark->Analyze("overall");
+// if (file) {
+// FILE* bench = fopen("hough1.dat", "r");
+// while (bench && !feof(bench)) {
+// char buffer[256];
+// if (!fgets(buffer, 256, bench)) break;
+// fprintf(file, "%s", buffer);
+// }
+// fclose(bench);
+// }
+// if (file) {
+// FILE* bench = fopen("hough2.dat", "r");
+// while (bench && !feof(bench)) {
+// char buffer[256];
+// if (!fgets(buffer, 256, bench)) break;
+// fprintf(file, "%s", buffer);
+// }
+// fclose(bench);
+// }
+// if (file) {
+// FILE* bench = fopen("overall.dat", "r");
+// while (bench && !feof(bench)) {
+// char buffer[256];
+// if (!fgets(buffer, 256, bench)) break;
+// fprintf(file, "%s", buffer);
+// }
+// fclose(bench);
+// fprintf(file, "\n\n");
+// }
+
+// delete hough1;
+// delete hough2;
+
+// esd->Reset();
+ }
+ // }
+
+ /*