]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtracker.cxx
running local for SP and LYZEP and new histograms for QC
[u/mrichter/AliRoot.git] / TRD / AliTRDtracker.cxx
index 6894c2615682e15b19538346f2443de205d79f59..eb00d3241d02511285a3ca9baea7859be75bf1b8 100644 (file)
@@ -22,7 +22,6 @@
 //                                                                           //
 //  Authors:                                                                 //
 //     M. Ivanov  (Marian.Ivanov@cern.ch)                                    //
-//     Y. Belikov (Jouri.Belikov@cern.ch)                                    //
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -51,6 +50,7 @@
 #include "AliTRDCommonParam.h"
 #include "AliTRDtracker.h"
 #include "AliTRDReconstructor.h"
+#include "AliTRDrecoParam.h"
 #include "AliTRDCalibraFillHisto.h"
 
 ClassImp(AliTRDtracker)
@@ -62,8 +62,9 @@ const  Double_t AliTRDtracker::fgkMaxSnp             =  0.95; // Maximum local s
 const  Double_t AliTRDtracker::fgkMaxStep            =  2.0;  // Maximal step size in propagation 
 
 //_____________________________________________________________________________
-AliTRDtracker::AliTRDtracker()
+AliTRDtracker::AliTRDtracker(AliTRDReconstructor *rec)
   :AliTracker()
+  ,fReconstructor(rec)
   ,fGeom(0)
   ,fNclusters(0)
   ,fClusters(0)
@@ -103,6 +104,7 @@ AliTRDtracker::AliTRDtracker()
 //_____________________________________________________________________________
 AliTRDtracker::AliTRDtracker(const AliTRDtracker &t)
   :AliTracker(t)
+  ,fReconstructor(t.fReconstructor)
   ,fGeom(0)
   ,fNclusters(0)
   ,fClusters(0)
@@ -134,8 +136,9 @@ AliTRDtracker::AliTRDtracker(const AliTRDtracker &t)
 }
 
 //_____________________________________________________________________________
-AliTRDtracker::AliTRDtracker(const TFile */*geomfile*/)
+AliTRDtracker::AliTRDtracker(const TFile */*geomfile*/, AliTRDReconstructor *rec)
   :AliTracker()
+  ,fReconstructor(rec)
   ,fGeom(0)
   ,fNclusters(0)
   ,fClusters(new TObjArray(2000))
@@ -235,12 +238,12 @@ Int_t  AliTRDtracker::LocalToGlobalID(Int_t lid)
   // Transform internal TRD ID to global detector ID
   //
 
-  Int_t  isector  = fGeom->GetSector(lid);
-  Int_t  ichamber = fGeom->GetChamber(lid);
-  Int_t  iplan    = fGeom->GetPlane(lid);
+  Int_t  isector = fGeom->GetSector(lid);
+  Int_t  istack  = fGeom->GetStack(lid);
+  Int_t  ilayer  = fGeom->GetLayer(lid);
 
   AliGeomManager::ELayerID iLayer = AliGeomManager::kTRD1;
-  switch (iplan) {
+  switch (ilayer) {
   case 0:
     iLayer = AliGeomManager::kTRD1;
     break;
@@ -261,7 +264,7 @@ Int_t  AliTRDtracker::LocalToGlobalID(Int_t lid)
     break;
   };
 
-  Int_t    modId = isector * fGeom->Ncham() + ichamber;
+  Int_t    modId = isector * fGeom->Nstack() + istack;
   UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,modId);
 
   return volid;
@@ -278,9 +281,9 @@ Int_t  AliTRDtracker::GlobalToLocalID(Int_t gid)
   Int_t modId    = 0;
   AliGeomManager::ELayerID layerId = AliGeomManager::VolUIDToLayer(gid,modId);
 
-  Int_t isector  = modId / fGeom->Ncham();
-  Int_t ichamber = modId % fGeom->Ncham();
-  Int_t iLayer   = -1;
+  Int_t isector = modId / fGeom->Nstack();
+  Int_t istack  = modId % fGeom->Nstack();
+  Int_t iLayer  = -1;
 
   switch (layerId) {
   case AliGeomManager::kTRD1:
@@ -309,7 +312,7 @@ Int_t  AliTRDtracker::GlobalToLocalID(Int_t gid)
     return -1;
   }
 
-  Int_t lid = fGeom->GetDetector(iLayer,ichamber,isector);
+  Int_t lid = fGeom->GetDetector(iLayer,istack,isector);
 
   return lid;
 
@@ -363,8 +366,8 @@ AliTRDcluster *AliTRDtracker::GetCluster(AliTRDtrack *track, Int_t plane
     if (cli->GetLocalTimeBin() != timebin) {
       continue;
     }
-    Int_t iplane = fGeom->GetPlane(cli->GetDetector());
-    if (iplane == plane) {
+    Int_t ilayer = fGeom->GetLayer(cli->GetDetector());
+    if (ilayer == plane) {
       cl    = cli;
       index = indexes[i];
       break;
@@ -390,9 +393,9 @@ Int_t  AliTRDtracker::GetLastPlane(AliTRDtrack *track)
     if (!cli) {
       break;
     }
-    Int_t iplane = fGeom->GetPlane(cli->GetDetector());
-    if (iplane > lastplane) {
-      lastplane = iplane;
+    Int_t ilayer = fGeom->GetLayer(cli->GetDetector());
+    if (ilayer > lastplane) {
+      lastplane = ilayer;
     }
   }
 
@@ -418,7 +421,7 @@ Int_t AliTRDtracker::PropagateBack(AliESDEvent *event)
        Int_t    nSeed   = event->GetNumberOfTracks();
        if(!nSeed){
                // run stand alone tracking
-               if (AliTRDReconstructor::SeedingOn()) Clusters2Tracks(event);
+               if (fReconstructor->IsSeeding()) Clusters2Tracks(event);
                return 0;
        }
        
@@ -526,7 +529,7 @@ Int_t AliTRDtracker::PropagateBack(AliESDEvent *event)
                // Debug part of tracking
                TTreeSRedirector &cstream = *fDebugStreamer;
                Int_t eventNrInFile = event->GetEventNumberInFile(); // This is most likely NOT the event number you'd like to use. It has nothing to do with the 'real' event number.
-               if (AliTRDReconstructor::StreamLevel() > 0) {
+               if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0) {
                        if (track->GetBackupTrack()) {
                                cstream << "Tracks"
                                << "EventNrInFile="  << eventNrInFile
@@ -598,9 +601,10 @@ Int_t AliTRDtracker::PropagateBack(AliESDEvent *event)
                                seed->UpdateTrackParams(track,AliESDtrack::kTRDout);
                                fHBackfit->Fill(10);
        
-                               for (Int_t i = 0; i < AliESDtrack::kNPlane; i++) {
-                                       for (Int_t j = 0; j < AliESDtrack::kNSlice; j++) {
-                                               seed->SetTRDsignals(track->GetPIDsignals(i,j),i,j);
+        seed->SetNumberOfTRDslices(AliTRDtrack::kNslice);
+                               for (Int_t i = 0; i < AliTRDtrack::kNplane; i++) {
+                                       for (Int_t j = 0; j < AliTRDtrack::kNslice; j++) {
+                                               seed->SetTRDslice(track->GetPIDsignals(i,j),i,j);
                                        }
                                        seed->SetTRDTimBin(track->GetPIDTimBin(i),i);
                                }
@@ -620,9 +624,11 @@ Int_t AliTRDtracker::PropagateBack(AliESDEvent *event)
                                fHBackfit->Fill(13);
        
                                //seed->SetStatus(AliESDtrack::kTRDStop);
-                               for (Int_t i = 0; i < AliESDtrack::kNPlane; i++) {
-                                       for (Int_t j = 0; j <AliESDtrack::kNSlice; j++) {
-                                               seed->SetTRDsignals(track->GetPIDsignals(i,j),i,j);
+
+        seed->SetNumberOfTRDslices(AliTRDtrack::kNslice);
+                               for (Int_t i = 0; i < AliTRDtrack::kNplane; i++) {
+                                       for (Int_t j = 0; j <AliTRDtrack::kNslice; j++) {
+                                               seed->SetTRDslice(track->GetPIDsignals(i,j),i,j);
                                        }
                                        seed->SetTRDTimBin(track->GetPIDTimBin(i),i);
                                }
@@ -707,71 +713,71 @@ Int_t AliTRDtracker::RefitInward(AliESDEvent *event)
 
     AliTRDtrack *pt = new AliTRDtrack(seed2,seed2.GetAlpha());
     Int_t *indexes2 = seed2.GetIndexes();
-    for (Int_t i = 0; i < AliESDtrack::kNPlane;i++) {
-      for (Int_t j = 0; j < AliESDtrack::kNSlice;j++) {
-        pt->SetPIDsignals(seed2.GetPIDsignals(i,j),i,j);
+    for (Int_t l = 0; l < AliTRDtrack::kNplane;++l) {
+      for (Int_t j = 0; j < AliTRDtrack::kNslice;j++) {
+        pt->SetPIDsignals(seed2.GetPIDsignals(l,j),l,j);
       }
-      pt->SetPIDTimBin(seed2.GetPIDTimBin(i),i);
+      pt->SetPIDTimBin(seed2.GetPIDTimBin(l),l);
     }
 
     Int_t *indexes3 = pt->GetBackupIndexes();
-    for (Int_t i = 0; i < 200;i++) {
-      if (indexes2[i] == 0) {
+    for (Int_t l = 0; l < 200;++l) {
+      if (indexes2[l] == 0) {
         break;
       }
-      indexes3[i] = indexes2[i];
+      indexes3[l] = indexes2[l];
     }  
         
     FollowProlongation(*pt); 
     pt->CookdEdx();
     pt->CookdEdxTimBin(seed->GetID());
-    pt->SetPIDMethod(AliTRDtrack::kLQ);  //switch between TRD PID methods
+
+    //calculate PID methods    
+    pt->SetPIDMethod(AliTRDtrack::kLQ);
     pt->CookPID(pidQ);
+    seed->SetTRDpid(pt->GetPID());
+    seed->SetTRDpidQuality(pidQ);
+
+    // update calibration
     if(calibra->GetHisto2d()) calibra->UpdateHistograms(pt);
     found++;
 
     Double_t xTPC = 250.0;
     if (PropagateToX(*pt,xTPC,fgkMaxStep)) {
-
       seed->UpdateTrackParams(pt,AliESDtrack::kTRDrefit);
       fHRefit->Fill(5);
 
-      for (Int_t i = 0; i < AliESDtrack::kNPlane; i++) {
-        for (Int_t j = 0; j < AliESDtrack::kNSlice; j++) {
-          seed->SetTRDsignals(pt->GetPIDsignals(i,j),i,j);
-       }
-        seed->SetTRDTimBin(pt->GetPIDTimBin(i),i);
+      for (Int_t l = 0; l < AliTRDtrack::kNplane; ++l) {
+        for (Int_t j = 0; j < AliTRDtrack::kNslice; j++) {
+          seed->SetTRDslice(pt->GetPIDsignals(l,j),l,j);
+        }
+        seed->SetTRDTimBin(pt->GetPIDTimBin(l),l);
       }
-
-    }
-    else {
-
+    } else {
       // If not prolongation to TPC - propagate without update
       fHRefit->Fill(5);
-      AliTRDtrack *seed2 = new AliTRDtrack(*seed);
-      seed2->ResetCovariance(5.0); 
-      AliTRDtrack *pt2   = new AliTRDtrack(*seed2,seed2->GetAlpha());
-      delete seed2;
+      AliTRDtrack *seed2t = new AliTRDtrack(*seed);
+      seed2t->ResetCovariance(5.0); 
+      AliTRDtrack *pt2   = new AliTRDtrack(*seed2t,seed2t->GetAlpha());
+      delete seed2t;
 
       if (PropagateToX(*pt2,xTPC,fgkMaxStep)) { 
-
         pt2->CookdEdx(); 
         pt2->CookdEdxTimBin(seed->GetID()); 
-       seed->UpdateTrackParams(pt2,AliESDtrack::kTRDrefit);
-       fHRefit->Fill(6);
+        seed->UpdateTrackParams(pt2,AliESDtrack::kTRDrefit);
+        fHRefit->Fill(6);
 
-        for (Int_t i = 0; i < AliESDtrack::kNPlane; i++) {
-          for (Int_t j = 0; j < AliESDtrack::kNSlice; j++) {
-            seed->SetTRDsignals(pt2->GetPIDsignals(i,j),i,j);
-         }
-          seed->SetTRDTimBin(pt2->GetPIDTimBin(i),i);
+        for (Int_t l = 0; l < AliTRDtrack::kNplane; ++l) {
+          for (Int_t j = 0; j < AliTRDtrack::kNslice; j++) {
+            seed->SetTRDslice(pt2->GetPIDsignals(l,j),l,j);
+          }
+          seed->SetTRDTimBin(pt2->GetPIDTimBin(l),l);
         }
-
       }
 
       // Add TRD track to ESDfriendTrack - maybe this tracks are
       // not useful for post-processing - TODO make decision
-      if (AliTRDReconstructor::StreamLevel() > 0)  {
+      if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0)  {
         seed->AddCalibObject(new AliTRDtrack(*pt2/*, kTRUE*/));
       }
       delete pt2;
@@ -779,7 +785,7 @@ Int_t AliTRDtracker::RefitInward(AliESDEvent *event)
     }
 
     // Add TRD track to ESDfriendTrack
-    if (AliTRDReconstructor::StreamLevel() > 0)  {
+    if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0)  {
       seed->AddCalibObject(new AliTRDtrack(*pt/*, kTRUE*/));
     }
     delete pt;
@@ -889,13 +895,13 @@ Int_t AliTRDtracker::FollowProlongation(AliTRDtrack &t)
          continue;
        }
 
-        Int_t plane = fGeom->GetPlane(cl0->GetDetector());
-       if (plane > lastplane) {
+        Int_t layer = fGeom->GetLayer(cl0->GetDetector());
+       if (layer > lastplane) {
          continue;
        }
 
        Int_t timebin = cl0->GetLocalTimeBin();
-       AliTRDcluster *cl2 = GetCluster(&t,plane,timebin,index);
+       AliTRDcluster *cl2 = GetCluster(&t,layer,timebin,index);
 
        if (cl2) {
          cl = cl2;
@@ -910,7 +916,7 @@ Int_t AliTRDtracker::FollowProlongation(AliTRDtrack &t)
          t.SetSampledEdx(TMath::Abs(cl->GetQ()/dxsample));
          Double_t h01      = GetTiltFactor(cl);
          Int_t    det      = cl->GetDetector();
-         Int_t    plane    = fGeom->GetPlane(det);
+         Int_t    llayer   = fGeom->GetLayer(det);
 
          if (t.GetX() > 345.0) {
            t.SetNLast(t.GetNLast() + 1);
@@ -925,7 +931,7 @@ Int_t AliTRDtracker::FollowProlongation(AliTRDtrack &t)
 
          maxChi2 = t.GetPredictedChi2(cl,h01);                                 
          if (maxChi2 < 1e+10) {
-           if (!t.UpdateMI(cl,maxChi2,index,h01,plane)) {
+           if (!t.UpdateMI(cl,maxChi2,index,h01,llayer)) {
              // ????
            } 
             else {
@@ -986,7 +992,7 @@ Int_t AliTRDtracker::FollowBackProlongation(AliTRDtrack &t)
 //   }
 
   // Loop through the TRD planes
-  for (Int_t iplane = 0; iplane < AliESDtrack::kNPlane; iplane++) {
+  for (Int_t iplane = 0; iplane < AliTRDtrack::kNplane; iplane++) {
 
     Int_t hb = iplane * 10;
     fHClSearch->Fill(hb);
@@ -1091,7 +1097,7 @@ Int_t AliTRDtracker::FollowBackProlongation(AliTRDtrack &t)
                                        t.SetSampledEdx(TMath::Abs(cl->GetQ()/dxsample));
                                                                Double_t h01      = GetTiltFactor(cl);
                                        Int_t    det      = cl->GetDetector();
-                                       Int_t    plane    = fGeom->GetPlane(det);
+                                       Int_t    layer    = fGeom->GetLayer(det);
                                        if (t.GetX() > 345.0) {
                                                t.SetNLast(t.GetNLast() + 1);
                                                t.SetChi2Last(t.GetChi2Last() + maxChi2);
@@ -1101,7 +1107,7 @@ Int_t AliTRDtracker::FollowBackProlongation(AliTRDtrack &t)
                                        maxChi2 = t.GetPredictedChi2(cl,h01);
 
                                        if (maxChi2<1e+10)
-                                               if (!t.UpdateMI(cl,maxChi2,index,h01,plane)) {
+                                               if (!t.UpdateMI(cl,maxChi2,index,h01,layer)) {
                                                        if (!t.Update(cl,maxChi2,index,h01)) {
                                        // ????
                                                        }
@@ -1113,8 +1119,8 @@ Int_t AliTRDtracker::FollowBackProlongation(AliTRDtrack &t)
 //           }
 
                                        // Reset material budget if 2 consecutive gold
-                                       if (plane > 0) {
-                                               if ((t.GetTracklets(plane).GetN() + t.GetTracklets(plane-1).GetN()) > 20) {
+                                       if (layer > 0) {
+                                               if ((t.GetTracklets(layer).GetN() + t.GetTracklets(layer-1).GetN()) > 20) {
                                                        t.SetBudget(2,0.0);
                                                }
                                        }
@@ -1235,25 +1241,25 @@ Int_t AliTRDtracker::LoadClusters(TTree *cTree)
     Int_t detector       = c->GetDetector();
     Int_t localTimeBin   = c->GetLocalTimeBin();
     Int_t sector         = fGeom->GetSector(detector);
-    Int_t plane          = fGeom->GetPlane(detector);
+    Int_t layer          = fGeom->GetLayer(detector);
     Int_t trackingSector = sector;
 
     //if (c->GetQ() > 10) {
-    //  Int_t chamber = fGeom->GetChamber(detector);
+    //  Int_t stack = fGeom->GetStack(detector);
     //}
 
-    Int_t gtb   = fTrSec[trackingSector]->CookTimeBinIndex(plane,localTimeBin);
+    Int_t gtb   = fTrSec[trackingSector]->CookTimeBinIndex(layer,localTimeBin);
     if (gtb < 0) {
       continue; 
     }
-    Int_t layer = fTrSec[trackingSector]->GetLayerNumber(gtb);
+    Int_t trLayer = fTrSec[trackingSector]->GetLayerNumber(gtb);
 
     index = ncl;
 
     fHXCl->Fill(c->GetX());
 
-    fTrSec[trackingSector]->GetLayer(layer)->SetX(c->GetX());
-    fTrSec[trackingSector]->GetLayer(layer)->InsertCluster(c,index);
+    fTrSec[trackingSector]->GetLayer(trLayer)->SetX(c->GetX());
+    fTrSec[trackingSector]->GetLayer(trLayer)->InsertCluster(c,index);
 
   }
 
@@ -1287,7 +1293,7 @@ void AliTRDtracker::UnloadClusters()
     delete fTracks->RemoveAt(i);
   }
 
-  Int_t nsec = AliTRDgeometry::kNsect;
+  Int_t nsec = AliTRDgeometry::kNsector;
   for (i = 0; i < nsec; i++) {    
     for(Int_t pl = 0; pl < fTrSec[i]->GetNumberOfLayers(); pl++) {
       fTrSec[i]->GetLayer(pl)->Clear();
@@ -1316,7 +1322,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
   const Double_t kRoad2z   = 20.0; // Road in z for extrapolated cluster
   const Int_t    kMaxSeed  = 3000;
 
-  Int_t maxSec = AliTRDgeometry::kNsect;  
+  Int_t maxSec = AliTRDgeometry::kNsector;  
 
   // Linear fitters in planes
   TLinearFitter fitterTC(2,"hyp2");  // Fitting with tilting pads - kz fixed - kz= Z/x, + vertex const
@@ -1335,17 +1341,17 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
   }
   for (Int_t ns = 0; ns < maxSec; ns++) {
     for (Int_t ilayer = 0; ilayer < fTrSec[ns]->GetNumberOfLayers(); ilayer++) {
-      AliTRDpropagationLayer &layer = *(fTrSec[ns]->GetLayer(ilayer));
-      if (layer == 0) {
+      AliTRDpropagationLayer &propLayer = *(fTrSec[ns]->GetLayer(ilayer));
+      if (propLayer == 0) {
         continue;
       }
-      Int_t det   = layer[0]->GetDetector();    
-      Int_t plane = fGeom->GetPlane(det);
-      if (ilayer < layers[plane][0]) {
-        layers[plane][0] = ilayer;
+      Int_t det   = propLayer[0]->GetDetector();    
+      Int_t layer = fGeom->GetLayer(det);
+      if (ilayer < layers[layer][0]) {
+        layers[layer][0] = ilayer;
       }
-      if (ilayer > layers[plane][1]) {
-        layers[plane][1] = ilayer;
+      if (ilayer > layers[layer][1]) {
+        layers[layer][1] = ilayer;
       }
     }
   }
@@ -1557,7 +1563,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
               isFake = kTRUE;
            }
 
-           if (AliTRDReconstructor::StreamLevel() > 0) {
+           if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0) {
              if ((!isFake) || ((icl3%10) == 0)) {  // Debugging print
                TTreeSRedirector &cstream = *fDebugStreamer;
                cstream << "Seeds0"
@@ -1603,7 +1609,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
              cseed[sLayer+jLayer].SetPadLength(padlength[sLayer+jLayer]);
              cseed[sLayer+jLayer].SetX0(xcl[sLayer+jLayer]);
 
-             for (Int_t iter = 0; iter < 2; iter++) {
+             for (Int_t jter = 0; jter < 2; jter++) {
 
                //
                // In iteration 0 we try only one pad-row
@@ -1611,7 +1617,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                //
                AliTRDseed tseed = cseed[sLayer+jLayer];
                Float_t    roadz = padlength[sLayer+jLayer] * 0.5;
-               if (iter > 0) {
+               if (jter > 0) {
                   roadz = padlength[sLayer+jLayer];
                }
 
@@ -1623,7 +1629,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                  Double_t dxlayer = layer.GetX() - xcl[sLayer+jLayer];          
                  Double_t zexp    = cl[sLayer+jLayer]->GetZ();
 
-                 if (iter > 0) {
+                 if (jter > 0) {
                    // Try 2 pad-rows in second iteration
                    zexp = tseed.GetZref(0) + tseed.GetZref(1) * dxlayer;
                    if (zexp > cl[sLayer+jLayer]->GetZ()) {
@@ -1639,13 +1645,13 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                  if (index <= 0) {
                     continue; 
                  }
-                 AliTRDcluster *cl = (AliTRDcluster *) GetCluster(index);            
+                 AliTRDcluster *clu = (AliTRDcluster *) GetCluster(index);           
 
                  tseed.SetIndexes(iTime,index);
-                 tseed.SetClusters(iTime,cl);  // Register cluster
-                 tseed.SetX(iTime,dxlayer);    // Register cluster
-                 tseed.SetY(iTime,cl->GetY()); // Register cluster
-                 tseed.SetZ(iTime,cl->GetZ()); // Register cluster
+                 tseed.SetClusters(iTime,clu);  // Register cluster
+                 tseed.SetX(iTime,dxlayer);     // Register cluster
+                 tseed.SetY(iTime,clu->GetY()); // Register cluster
+                 tseed.SetZ(iTime,clu->GetZ()); // Register cluster
 
                }
 
@@ -1656,7 +1662,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                Float_t tquality = (18.0 - tseed.GetN2()) / 2.0 + TMath::Abs(dangle) / 0.1
                                  + TMath::Abs(tseed.GetYfit(0) - tseed.GetYref(0))   / 0.2
                                  + 2.0 * TMath::Abs(tseed.GetMeanz() - tseed.GetZref(0)) / padlength[jLayer];
-               if ((iter == 0) && tseed.IsOK()) {
+               if ((jter == 0) && tseed.IsOK()) {
                  cseed[sLayer+jLayer] = tseed;
                  quality              = tquality;
                  if (tquality < 5) {
@@ -1667,7 +1673,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                  cseed[sLayer+jLayer] = tseed;
                }
        
-             } // Loop: iter
+             } // Loop: jter
 
              if (!cseed[sLayer+jLayer].IsOK()) {
                isOK = kFALSE;
@@ -1808,7 +1814,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
              Float_t  zexp   = cseed[jLayer].GetZref(0);
              Double_t zroad  = padlength[jLayer] * 0.5 + 1.0;
 
-             for (Int_t iter = 0; iter < 2; iter++) {
+             for (Int_t jter = 0; jter < 2; jter++) {
 
                AliTRDseed tseed = cseed[jLayer];
                Float_t quality = 10000.0;
@@ -1822,12 +1828,12 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                  if (index <= 0) {
                     continue; 
                  }
-                 AliTRDcluster *cl = (AliTRDcluster *) GetCluster(index);            
+                 AliTRDcluster *clu = (AliTRDcluster *) GetCluster(index);           
                  tseed.SetIndexes(iTime,index);
-                 tseed.SetClusters(iTime,cl);  // Register cluster
-                 tseed.SetX(iTime,dxlayer);    // Register cluster
-                 tseed.SetY(iTime,cl->GetY()); // Register cluster
-                 tseed.SetZ(iTime,cl->GetZ()); // Register cluster
+                 tseed.SetClusters(iTime,clu);  // Register cluster
+                 tseed.SetX(iTime,dxlayer);     // Register cluster
+                 tseed.SetY(iTime,clu->GetY()); // Register cluster
+                 tseed.SetZ(iTime,clu->GetZ()); // Register cluster
                }
 
                tseed.Update();
@@ -1844,7 +1850,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
 
                zroad *= 2.0;
 
-             } // Loop: iter
+             } // Loop: jter
 
              if ( cseed[jLayer].IsOK()) {
                cseed[jLayer].CookLabels();
@@ -1864,7 +1870,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
            Float_t lastchi2    = 10000.0;
            Float_t chi2        =  1000.0;
 
-           for (Int_t iter = 0; iter < 4; iter++) {
+           for (Int_t jter = 0; jter < 4; jter++) {
 
              // Sort tracklets according "quality", try to "improve" 4 worst 
              Float_t sumquality = 0.0;
@@ -1893,7 +1899,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
              }
              lastquality = sumquality;  
              lastchi2    = chi2;
-             if (iter > 0) {
+             if (jter > 0) {
                for (Int_t jLayer = 0; jLayer < 6; jLayer++) {
                  cseed[jLayer] = bseed[jLayer];
                }
@@ -1928,13 +1934,13 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
                  if (index <= 0) {
                     continue; 
                  }
-                 AliTRDcluster *cl = (AliTRDcluster *) GetCluster(index);            
+                 AliTRDcluster *clu = (AliTRDcluster *) GetCluster(index);           
 
                  tseed.SetIndexes(iTime,index);
-                 tseed.SetClusters(iTime,cl);  // Register cluster
-                 tseed.SetX(iTime,dxlayer);    // Register cluster
-                 tseed.SetY(iTime,cl->GetY()); // Register cluster
-                 tseed.SetZ(iTime,cl->GetZ()); // Register cluster
+                 tseed.SetClusters(iTime,clu);  // Register cluster
+                 tseed.SetX(iTime,dxlayer);     // Register cluster
+                 tseed.SetY(iTime,clu->GetY()); // Register cluster
+                 tseed.SetZ(iTime,clu->GetZ()); // Register cluster
 
                }
 
@@ -1955,7 +1961,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
 
              chi2 = AliTRDseed::FitRiemanTilt(bseed,kTRUE);
 
-           } // Loop: iter
+           } // Loop: jter
 
            nclusters = 0;
            nlayers   = 0;
@@ -2195,7 +2201,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
            if (1 || (!isFake)) {
              Float_t zvertex = GetZ();
              TTreeSRedirector &cstream = *fDebugStreamer;
-             if (AliTRDReconstructor::StreamLevel() > 0) {
+             if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0) {
                cstream << "Seeds1"
                        << "isFake="     << isFake
                        << "Vertex="     << zvertex
@@ -2278,7 +2284,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
       signedseed[i] = kFALSE;
     }
 
-    for (Int_t iter = 0; iter < 5; iter++) {
+    for (Int_t jter = 0; jter < 5; jter++) {
 
       for (Int_t iseed = 0; iseed < registered; iseed++) {
       
@@ -2326,7 +2332,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
           continue;
        }
 
-       if (iter == 0) {
+       if (jter == 0) {
          if (nlayers < 6) {
             continue;
          }
@@ -2335,7 +2341,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
          }
        }
 
-       if (iter == 1) {
+       if (jter == 1) {
          if (nlayers < findable) {
             continue;
          }
@@ -2344,7 +2350,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
          }
        }
 
-       if (iter == 2) {
+       if (jter == 2) {
          if ((nlayers == findable) || 
               (nlayers ==        6)) {
             continue;
@@ -2354,13 +2360,13 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
          }
        }
 
-       if (iter == 3) {
+       if (jter == 3) {
          if (TMath::Log(0.000000001+seedquality2[index]) < -5.0) {
             continue;
          }
        }
 
-       if (iter == 4) {
+       if (jter == 4) {
          if (TMath::Log(0.000000001+seedquality2[index]) - nused/(nlayers-3.0) < -15.0) {
             continue;
          }
@@ -2416,8 +2422,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
          esdtrack.UpdateTrackParams(track,AliESDtrack::kTRDout);
          esdtrack.SetLabel(label);
          esd->AddTrack(&esdtrack);     
-         TTreeSRedirector &cstream = *fDebugStreamer;
-         if (AliTRDReconstructor::StreamLevel() > 0) {
+         if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0) {
            cstream << "Tracks"
                    << "EventNrInFile="  << eventNrInFile
                    << "ESD.="     << &esdtrack
@@ -2427,9 +2432,9 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
          }
        }
 
-       if (AliTRDReconstructor::StreamLevel() > 0) {
+       if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0) {
          cstream << "Seeds2"
-                 << "Iter="      << iter
+                 << "Iter="      << jter
                  << "Track.="    << track
                  << "Like="      << seedquality[index]
                  << "LikeF="     << seedquality2[index]
@@ -2455,7 +2460,7 @@ Int_t AliTRDtracker::Clusters2Tracks(AliESDEvent *esd)
 
       } // Loop: iseed
 
-    } // Loop: iter
+    } // Loop: jter
 
   } // End of loop over sectors
 
@@ -2518,40 +2523,40 @@ Bool_t AliTRDtracker::GetTrackPoint(Int_t index, AliTrackPoint &p) const
   //
 
   AliTRDcluster *cl = (AliTRDcluster *) fClusters->UncheckedAt(index);
-  Int_t  idet     = cl->GetDetector();
-  Int_t  isector  = fGeom->GetSector(idet);
-  Int_t  ichamber = fGeom->GetChamber(idet);
-  Int_t  iplan    = fGeom->GetPlane(idet);
+  Int_t  idet    = cl->GetDetector();
+  Int_t  isector = fGeom->GetSector(idet);
+  Int_t  istack  = fGeom->GetStack(idet);
+  Int_t  ilayer  = fGeom->GetLayer(idet);
   Double_t local[3];
-  local[0] = GetX(isector,iplan,cl->GetLocalTimeBin());
+  local[0] = GetX(isector,ilayer,cl->GetLocalTimeBin());
   local[1] = cl->GetY();
   local[2] = cl->GetZ();
   Double_t global[3];
   fGeom->RotateBack(idet,local,global);
   p.SetXYZ(global[0],global[1],global[2]);
-  AliGeomManager::ELayerID iLayer = AliGeomManager::kTRD1;
-  switch (iplan) {
+  AliGeomManager::ELayerID iGeoLayer = AliGeomManager::kTRD1;
+  switch (ilayer) {
   case 0:
-    iLayer = AliGeomManager::kTRD1;
+    iGeoLayer = AliGeomManager::kTRD1;
     break;
   case 1:
-    iLayer = AliGeomManager::kTRD2;
+    iGeoLayer = AliGeomManager::kTRD2;
     break;
   case 2:
-    iLayer = AliGeomManager::kTRD3;
+    iGeoLayer = AliGeomManager::kTRD3;
     break;
   case 3:
-    iLayer = AliGeomManager::kTRD4;
+    iGeoLayer = AliGeomManager::kTRD4;
     break;
   case 4:
-    iLayer = AliGeomManager::kTRD5;
+    iGeoLayer = AliGeomManager::kTRD5;
     break;
   case 5:
-    iLayer = AliGeomManager::kTRD6;
+    iGeoLayer = AliGeomManager::kTRD6;
     break;
   };
-  Int_t    modId = isector * fGeom->Ncham() + ichamber;
-  UShort_t volid = AliGeomManager::LayerToVolUID(iLayer,modId);
+  Int_t    modId = isector * fGeom->Nstack() + istack;
+  UShort_t volid = AliGeomManager::LayerToVolUID(iGeoLayer,modId);
   p.SetVolumeID(volid);
 
   return kTRUE;
@@ -2657,11 +2662,11 @@ void AliTRDtracker::UseClusters(const AliKalmanTrack *t, Int_t from) const
   for (Int_t i = from; i < ncl; i++) {
     Int_t index  = t->GetClusterIndex(i);
     AliTRDcluster *c = (AliTRDcluster *) fClusters->UncheckedAt(index);
-    Int_t iplane = fGeom->GetPlane(c->GetDetector());
-    if (track->GetTracklets(iplane).GetChi2() > kmaxchi2) {
+    Int_t ilayer = fGeom->GetLayer(c->GetDetector());
+    if (track->GetTracklets(ilayer).GetChi2() > kmaxchi2) {
       continue; 
     }
-    if (track->GetTracklets(iplane).GetN()    <   kmincl) {
+    if (track->GetTracklets(ilayer).GetN()    <   kmincl) {
       continue; 
     }
     if (!(c->IsUsed())) {
@@ -2726,9 +2731,9 @@ AliTRDtracker::AliTRDtrackingSector
   AliTRDpropagationLayer *ppl = 0;
 
   // Get holes description from geometry
-  Bool_t holes[AliTRDgeometry::kNcham];
-  for (Int_t icham = 0; icham < AliTRDgeometry::kNcham; icham++) {
-    holes[icham] = fGeom->IsHole(0,icham,gs);
+  Bool_t holes[AliTRDgeometry::kNstack];
+  for (Int_t istack = 0; istack < AliTRDgeometry::kNstack; istack++) {
+    holes[istack] = fGeom->IsHole(0,istack,gs);
   } 
   
   for (UInt_t i = 0; i < kMaxTimeBinIndex; i++) {
@@ -2744,27 +2749,27 @@ AliTRDtracker::AliTRDtrackingSector
   Double_t dxAmp   = (Double_t) fGeom->CamHght(); // Amplification region
   //Double_t dxDrift = (Double_t) fGeom->CdrHght(); // Drift region  
 
-  const Int_t kNchambers  = AliTRDgeometry::Ncham();
+  const Int_t kNstacks  = AliTRDgeometry::Nstack();
   Int_t    tbIndex;
   Double_t ymax           = 0;
   Double_t ymaxsensitive  = 0;
-  Double_t *zc            = new Double_t[kNchambers];
-  Double_t *zmax          = new Double_t[kNchambers];
-  Double_t *zmaxsensitive = new Double_t[kNchambers];  
+  Double_t *zc            = new Double_t[kNstacks];
+  Double_t *zmax          = new Double_t[kNstacks];
+  Double_t *zmaxsensitive = new Double_t[kNstacks];  
     
-  for (Int_t plane = 0; plane < AliTRDgeometry::Nplan(); plane++) {
+  for (Int_t layer = 0; layer < AliTRDgeometry::Nlayer(); layer++) {
 
-    ymax          = fGeom->GetChamberWidth(plane) / 2.0;
-    padPlane      = fGeom->GetPadPlane(plane,0);
+    ymax          = fGeom->GetChamberWidth(layer) / 2.0;
+    padPlane      = fGeom->GetPadPlane(layer,0);
     ymaxsensitive = (padPlane->GetColSize(1) * padPlane->GetNcols() - 4.0) / 2.0;    
 
-    for (Int_t ch = 0; ch < kNchambers; ch++) {
-      zmax[ch]          = fGeom->GetChamberLength(plane,ch) / 2.0;
+    for (Int_t st = 0; st < kNstacks; st++) {
+      zmax[st]          = fGeom->GetChamberLength(layer,st) / 2.0;
       Float_t pad       = padPlane->GetRowSize(1);
-      Float_t row0      = fGeom->GetRow0(plane,ch,0);
-      Int_t   nPads     = fGeom->GetRowMax(plane,ch,0);
-      zmaxsensitive[ch] = Float_t(nPads) * pad / 2.0;      
-      zc[ch]            = -(pad * nPads) / 2.0 + row0;
+      Float_t row0      = fGeom->GetRow0(layer,st,0);
+      Int_t   nPads     = fGeom->GetRowMax(layer,st,0);
+      zmaxsensitive[st] = Float_t(nPads) * pad / 2.0;      
+      zc[st]            = -(pad * nPads) / 2.0 + row0;
     }
 
                AliTRDcalibDB *fCalibration = AliTRDcalibDB::Instance();
@@ -2773,12 +2778,12 @@ AliTRDtracker::AliTRDtrackingSector
     rho       = 0.00295 * 0.85; //????
     radLength = 11.0;  
 
-    Double_t x0 = (Double_t) AliTRDgeometry::GetTime0(plane);
+    Double_t x0 = (Double_t) AliTRDgeometry::GetTime0(layer);
     //Double_t xbottom = x0 - dxDrift;
     //Double_t xtop    = x0 + dxAmp;
                
                //temporary !! (A.Bercuci)
-       Int_t T0 = (Int_t)fCalibration->GetT0Average(AliTRDgeometry::GetDetector(plane, 2, gs));
+    Int_t T0 = (Int_t)fCalibration->GetT0Average(AliTRDgeometry::GetDetector(layer, 2, gs));
 
     Int_t nTimeBins =  AliTRDcalibDB::Instance()->GetNumberOfTimeBins();    
     for (Int_t iTime = 0; iTime < nTimeBins; iTime++) {
@@ -2787,8 +2792,8 @@ AliTRDtracker::AliTRDtrackingSector
       //if (xlayer<0) xlayer = dxAmp / 2.0;
       x = x0 - xlayer;
 
-      tbIndex = CookTimeBinIndex(plane,iTime);
-      ppl     = new AliTRDpropagationLayer(x,dx,rho,radLength,tbIndex,plane);
+      tbIndex = CookTimeBinIndex(layer,iTime);
+      ppl     = new AliTRDpropagationLayer(x,dx,rho,radLength,tbIndex,layer);
       ppl->SetYmax(ymax,ymaxsensitive);
       ppl->SetZ(zc,zmax,zmaxsensitive);
       ppl->SetHoles(holes);
@@ -3040,8 +3045,8 @@ Double_t AliTRDtracker::GetTiltFactor(const AliTRDcluster *c)
   //
 
   Int_t    det   = c->GetDetector();    
-  Int_t    plane = fGeom->GetPlane(det);
-  AliTRDpadPlane *padPlane = fGeom->GetPadPlane(plane,0);
+  Int_t    layer = fGeom->GetLayer(det);
+  AliTRDpadPlane *padPlane = fGeom->GetPadPlane(layer,0);
   Double_t h01   = TMath::Tan(-TMath::Pi() / 180.0 * padPlane->GetTiltingAngle());
 
   if (fNoTilt) {
@@ -3108,7 +3113,7 @@ Int_t AliTRDtracker::FindClusters(Int_t sector, Int_t t0, Int_t t1
   Int_t    nall      = 0;
   Int_t    nfound    = 0;
   Double_t h01       = 0.0;
-  Int_t    plane     = -1;
+  Int_t    layer     = -1;
   Int_t    detector  = -1;
   Float_t  padlength = 0.0;
 
@@ -3156,9 +3161,9 @@ Int_t AliTRDtracker::FindClusters(Int_t sector, Int_t t0, Int_t t1
 
       AliTRDcluster *c = (AliTRDcluster *) (timeBin[i]);
       h01 = GetTiltFactor(c);
-      if (plane < 0) {
+      if (layer < 0) {
        Int_t det = c->GetDetector();
-       plane     = fGeom->GetPlane(det);
+       layer     = fGeom->GetLayer(det);
        padlength = TMath::Sqrt(c->GetSigmaZ2() * 12.0);
       }
 
@@ -3500,7 +3505,7 @@ Int_t AliTRDtracker::FindClusters(Int_t sector, Int_t t0, Int_t t1
     //
     // Update best hypothesy if better chi2 according tracklet position and angle
     //
-    Double_t sy2 = smean[iter]  + track->GetSigmaY2();
+             sy2 = smean[iter]  + track->GetSigmaY2();
     Double_t sa2 = sangle[iter] + track->GetSigmaSnp2(); // track->fCee;
     Double_t say = track->GetSigmaSnpY();                // track->fCey;
 
@@ -3619,11 +3624,11 @@ Int_t AliTRDtracker::FindClusters(Int_t sector, Int_t t0, Int_t t1
   tracklet.SetP1(angle[bestiter]);
   tracklet.SetN(nfound);
   tracklet.SetNCross(changes[bestiter]);
-  tracklet.SetPlane(plane);
+  tracklet.SetPlane(layer);
   tracklet.SetSigma2(expectederr);
   tracklet.SetChi2(tchi2s[bestiter]);
   tracklet.SetMaxPos(maxpos,maxpos4,maxpos5);
-  track->SetTracklets(plane,tracklet);
+  track->SetTracklets(layer,tracklet);
   track->SetNWrong(track->GetNWrong() + nbad[0]);
 
   //
@@ -3660,7 +3665,7 @@ Int_t AliTRDtracker::FindClusters(Int_t sector, Int_t t0, Int_t t1
   TGraph graphy(t1-t0,x,yt);
   TGraph graphz(t1-t0,x,zt);
 
-  if (AliTRDReconstructor::StreamLevel() > 0) {
+  if (fReconstructor->GetStreamLevel(AliTRDReconstructor::kTracker) > 0) {
     cstream << "tracklet"
            << "track.="      << track              // Track parameters
            << "tany="        << tany               // Tangent of the local track angle 
@@ -3670,7 +3675,7 @@ Int_t AliTRDtracker::FindClusters(Int_t sector, Int_t t0, Int_t t1
            << "nfound="      << nfound             // Number of found clusters
            << "clfound="     << clfound            // Total number of found clusters in road 
            << "mpads="       << mpads              // Mean number of pads per cluster
-           << "plane="       << plane              // Plane number 
+           << "layer="       << layer              // Layer number 
            << "detector="    << detector           // Detector number
            << "road="        << road               // The width of the used road
            << "graph0.="     << &graph0            // x - y = dy for closest cluster