]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/src/AliLevel3.cxx
Checking in for the weekend
[u/mrichter/AliRoot.git] / HLT / src / AliLevel3.cxx
index 6047670e1cc1c59dcfae1dd8106c4315ca7f235c..e99b32a1b931b9e7b862d24ef6b5d69a99356379 100644 (file)
@@ -117,7 +117,7 @@ void AliLevel3::Init(){
   fTransformer = new AliL3Transform();
   fDoRoi = kFALSE;
   fDoNonVertex = kFALSE;
-  fClusterDeconv = kFALSE;
+  fClusterDeconv = kTRUE;
   fEta[0] = 0.;
   fEta[1] = 0.9;
   fUseBinary =kFALSE;
@@ -144,7 +144,7 @@ void AliLevel3::Init(){
     fRow[1][1] = 77;
     fRow[2][0] = 78;
     fRow[2][1] = 109;
-    fRow[3][0] = 110;
+    fRow[3][0] = 110; 
     fRow[3][1] = 141;
     fRow[4][0] = 142;
     fRow[4][1] = 175;   // last row
@@ -201,12 +201,12 @@ AliLevel3::~AliLevel3(){
 }
 
 void AliLevel3::SetTrackerParam(Int_t phi_segments, Int_t eta_segments,
-                                  Int_t trackletlength, Int_t tracklength,
-                                  Int_t rowscopetracklet, Int_t rowscopetrack,
-                                  Double_t min_pt_fit, Double_t maxangle,
-                                  Double_t goodDist, Double_t hitChi2Cut,
-                                  Double_t goodHitChi2, Double_t trackChi2Cut,
-                                  Int_t maxdist,Bool_t vertexconstraint)
+                               Int_t trackletlength, Int_t tracklength,
+                               Int_t rowscopetracklet, Int_t rowscopetrack,
+                               Double_t min_pt_fit, Double_t maxangle,
+                               Double_t goodDist, Double_t hitChi2Cut,
+                               Double_t goodHitChi2, Double_t trackChi2Cut,
+                               Int_t maxdist,Double_t maxphi,Double_t maxeta,Bool_t vertexconstraint)
 {
   //Set parameters input to the tracker
   //If no arguments are given, default parameters will be used
@@ -216,7 +216,7 @@ void AliLevel3::SetTrackerParam(Int_t phi_segments, Int_t eta_segments,
   fTracker->SetTrackCuts(hitChi2Cut,goodHitChi2,trackChi2Cut,maxdist,vertexconstraint);
   fTracker->SetTrackletCuts(maxangle,goodDist,vertexconstraint);
   if(vertexconstraint)
-    fTracker->MainVertexSettings(trackletlength,tracklength,rowscopetracklet,rowscopetrack);
+    fTracker->MainVertexSettings(trackletlength,tracklength,rowscopetracklet,rowscopetrack,maxphi,maxeta);
   else
     fTracker->NonVertexSettings(trackletlength,tracklength,rowscopetracklet,rowscopetrack);
   
@@ -255,11 +255,14 @@ void AliLevel3::ProcessSlice(Int_t slice){
   Bool_t UseCF = kFALSE;
 #ifdef use_aliroot
   UseCF = fFileHandler->IsDigit();
+#else
+  if(fUseBinary)
+    UseCF = kTRUE; //In case you are not using aliroot
 #endif
   const Int_t maxpoints=100000;
   const Int_t pointsize = maxpoints * sizeof(AliL3SpacePointData);
   AliL3MemHandler *memory = new AliL3MemHandler();
-
+  
   fTrackMerger->Reset();
   fTrackMerger->SetTransformer(fTransformer);
   fTrackMerger->SetRows(fRow[0]);
@@ -273,15 +276,15 @@ void AliLevel3::ProcessSlice(Int_t slice){
     if(UseCF){
       if(fUseBinary){
         if(!fDoRoi){ 
-          if(0){     //Binary to Memory
-            fFileHandler->Free();
+          if(1){     //Binary to Memory
+           fFileHandler->Free();
             sprintf(name,"%sdigits_%d_%d.raw",fPath,slice,patch);
-            if(!fFileHandler->SetBinaryInput(name)) return;
-            digits= (AliL3DigitRowData *)fFileHandler->CompBinary2Memory(ndigits);
+           if(!fFileHandler->SetBinaryInput(name)) return;
+           digits= (AliL3DigitRowData *)fFileHandler->CompBinary2Memory(ndigits);
             fFileHandler->CloseBinaryInput(); 
           }
 
-          if(1){     //Binary to Memory with Benchmark 
+          if(0){     //Binary to Memory with Benchmark 
             fFileHandler->Free();
             sprintf(name,"%sdigits_%d_%d.raw",fPath,slice,patch);
             if(!memory->SetBinaryInput(name)) return;
@@ -365,8 +368,8 @@ void AliLevel3::ProcessSlice(Int_t slice){
       fClusterFinder->InitSlice(slice,patch,fRow[patch][0],fRow[patch][1]
                                ,maxpoints);
       fClusterFinder->SetDeconv(fClusterDeconv);
-      fClusterFinder->SetXYError(0.1);
-      fClusterFinder->SetZError(0.2);
+      fClusterFinder->SetXYError(0.2);
+      fClusterFinder->SetZError(0.3);
       fClusterFinder->SetOutputArray(points);
       fClusterFinder->Read(ndigits,digits);
       fBenchmark->Start("Cluster Finder");
@@ -431,11 +434,12 @@ void AliLevel3::ProcessSlice(Int_t slice){
     fTracker->ReadHits(npoints,points);
     fBenchmark->Stop("Tracker Read Hits");
     fBenchmark->Start("MainVertexTracking A"); 
-    fTracker->MainVertexTracking_a();
+    fTracker->MainVertexTracking();
+    //fTracker->MainVertexTracking_a();
     fBenchmark->Stop("MainVertexTracking A");
-    fBenchmark->Start("MainVertexTracking B"); 
-    fTracker->MainVertexTracking_b();
-    fBenchmark->Stop("MainVertexTracking B");
+    //fBenchmark->Start("MainVertexTracking B"); 
+    //fTracker->MainVertexTracking_b();
+    //fBenchmark->Stop("MainVertexTracking B");
     fBenchmark->Start("Tracking fit");
     if(fDoNonVertex)
       fTracker->NonVertexTracking();//Do a second pass for nonvertex tracks
@@ -455,15 +459,15 @@ void AliLevel3::ProcessSlice(Int_t slice){
     AliL3TrackSegmentData *trackdata0  = 
          (AliL3TrackSegmentData *) memory->Allocate(fTracker->GetTracks());
     memory->TrackArray2Memory(ntracks0,trackdata0,fTracker->GetTracks());
-    
+    /*
     //write tracks
     if(fWriteOut){
-      sprintf(name,"tracks_tr_%d_%d.raw",slice,patch);
+      sprintf(name,"%stracks_tr_%d_%d.raw",fWriteOutPath,slice,patch);
       memory->SetBinaryOutput(name);
       memory->Memory2Binary(ntracks0,trackdata0);
       memory->CloseBinaryOutput();
     }
-    
+    */
     fInterMerger->Reset();
     fInterMerger->SetTransformer(fTransformer);
     fInterMerger->Init(fRow[patch],patch);
@@ -474,12 +478,13 @@ void AliLevel3::ProcessSlice(Int_t slice){
 //    fInterMerger->SlowMerge();
     
     fBenchmark->Stop("Inter Merger");
-
+    /*
     //write inter merged tracks
     if(fWriteOut){
-      sprintf(name,"tracks_im_%d_%d.raw",slice,patch);
+      sprintf(name,"%stracks_im_%d_%d.raw",fWriteOutPath,slice,patch);
       WriteTracks(name,fInterMerger,'i'); //write output of intermerger
-    }
+      }
+    */
     memory->Free();
     
     UInt_t ntracks1 =0;
@@ -494,15 +499,16 @@ void AliLevel3::ProcessSlice(Int_t slice){
   }
   fBenchmark->Start("Patch Merger");
 //  fTrackMerger->SlowMerge();
-  fTrackMerger->AddAllTracks();
+  //fTrackMerger->AddAllTracks();
   fTrackMerger->Merge();
   fBenchmark->Stop("Patch Merger");
+  /*
   //write merged tracks
   if(fWriteOut){
-    sprintf(name,"tracks_tm_%d.raw",slice);
+    sprintf(name,"%stracks_tm_%d.raw",fWriteOutPath,slice);
     WriteTracks(name,fTrackMerger,'o'); //write output of trackmerger
   }
+  */
   fTrackData = (AliL3TrackSegmentData *) 
                          fFileHandler->Allocate(fTrackMerger->GetOutTracks());
 
@@ -515,7 +521,7 @@ void AliLevel3::ProcessSlice(Int_t slice){
 void AliLevel3::WriteSpacePoints(UInt_t npoints,AliL3SpacePointData *points,
                                                       Int_t slice,Int_t patch){
   char name[256];
-  sprintf(name,"points_%d_%d.raw",slice,patch);
+  sprintf(name,"%spoints_%d_%d.raw",fWriteOutPath,slice,patch);
   AliL3MemHandler * memory = new AliL3MemHandler();
   memory->SetBinaryOutput(name);
   memory->Transform(npoints,points,slice,fTransformer);
@@ -548,6 +554,11 @@ Int_t AliLevel3::WriteTracks(char *filename,AliL3Merger *merger,char opt){
 void AliLevel3::WriteResults()
 {
   //Write the resulting tracks to outputfile
-  WriteTracks("tracks.raw",fGlobalMerger,'a');
-  WriteTracks("tracks_gl.raw",fGlobalMerger,'o');
+  Char_t fname[256];
+  sprintf(fname,"%stracks.raw",fWriteOutPath);
+  WriteTracks(fname,fGlobalMerger,'a');
+  //WriteTracks("tracks.raw",fGlobalMerger,'a');
+  sprintf(fname,"%stracks_gl.raw",fWriteOutPath);
+  WriteTracks(fname,fGlobalMerger,'o');
+  //WriteTracks("tracks_gl.raw",fGlobalMerger,'o');
 }