]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrackingChamber.cxx
- revert accidental part of previous commit,
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackingChamber.cxx
index 29b603787161daf9969ca500373e8b4249686512..a432ae79ac3178ba2b14ba22c1a1ccfeec665983 100644 (file)
@@ -37,6 +37,7 @@
 #include "AliTRDgeometry.h"
 #include "AliTRDpadPlane.h"
 #include "AliTRDcalibDB.h"
+#include "AliTRDCommonParam.h"
 #include "Cal/AliTRDCalDet.h"
 #include "Cal/AliTRDCalROC.h"
 
@@ -47,6 +48,12 @@ AliTRDtrackingChamber::AliTRDtrackingChamber()
   :TObject()
   ,fDetector(-1)
   ,fX0(0.)
+  // ,fExB(0.)
+  // ,fVD(0.)
+  // ,fT0(0.)
+  // ,fS2PRF(0.)
+  // ,fDiffL(0.)
+  // ,fDiffT(0.)
 {}  
 
 //_______________________________________________________
@@ -56,13 +63,7 @@ void AliTRDtrackingChamber::Clear(const Option_t *opt)
 }
 
 //_______________________________________________________
-void AliTRDtrackingChamber::InsertCluster(AliTRDcluster *c, Int_t index)
-{
-  fTB[c->GetPadTime()].InsertCluster(c, index);
-}
-
-//_______________________________________________________
-Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, const AliTRDCalDet *cal, Bool_t hlt)
+Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, Bool_t hlt)
 {
 // Init chamber and all time bins (AliTRDchamberTimeBin)
 // Calculates radial position of the chamber based on 
@@ -73,8 +74,8 @@ Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, const AliTRDCalDe
     return kFALSE;
   }
 
-  Int_t stack = geo->GetStack(fDetector);
-  Int_t layer = geo->GetLayer(fDetector);
+  Int_t stack = AliTRDgeometry::GetStack(fDetector);
+  Int_t layer = AliTRDgeometry::GetLayer(fDetector);
   AliTRDpadPlane *pp = geo->GetPadPlane(layer, stack);
   Double_t zl = pp->GetRow0ROC() - pp->GetRowEndROC();
   Double_t z0 = geo->GetRow0(layer, stack, 0) - zl;
@@ -85,30 +86,35 @@ Bool_t AliTRDtrackingChamber::Build(AliTRDgeometry *const geo, const AliTRDCalDe
     if(!fTB[itb]) continue;
     fTB[itb].SetRange(z0, zl);
     fTB[itb].SetNRows(nrows);
+    fTB[itb].SetPlane(layer);
+    fTB[itb].SetStack(stack);
+    fTB[itb].SetSector(AliTRDgeometry::GetSector(fDetector));
     fTB[itb].BuildIndices();
     index[jtb++] = itb;
   }    
   if(jtb<2) return kFALSE;
-  
-  
+
+  AliTRDcalibDB *calib = AliTRDcalibDB::Instance();
+  Float_t t0;
+  if(!hlt){
+    t0    = calib->GetT0Average(fDetector);
+  }else{
+    t0    = calib->GetT0Det()->GetValue(fDetector);
+  }
+  // fVD    = calib->GetVdriftAverage(fDetector);
+  // fS2PRF = calib->GetPRFROC(fDetector)->GetMean(); fS2PRF *= fS2PRF;
+  // fExB   = AliTRDCommonParam::Instance()->GetOmegaTau(fVD);
+  // AliTRDCommonParam::Instance()->GetDiffCoeff(fDiffL, fDiffT, fVD);  
+
   // ESTIMATE POSITION OF PAD PLANE FOR THIS CHAMBER
+  //fTB[Int_t(t0)].SetT0();
   Double_t x0 = fTB[index[0]].GetX();
   Double_t x1 = fTB[index[1]].GetX();
   Double_t dx = (x0 - x1)/(index[1] - index[0]); 
-
-  Int_t t0 = (Int_t)cal->GetValue(fDetector);
-  if(!hlt){
-    Double_t mean = 0.0;
-    AliTRDCalROC *roc = AliTRDcalibDB::Instance()->GetT0ROC(fDetector);
-    for(Int_t k = 0; k<roc->GetNchannels(); k++) mean += roc->GetValue(k); 
-    mean /= roc->GetNchannels();
-    t0 = (Int_t)(cal->GetValue(fDetector) + mean);
-  }
-  fTB[t0].SetT0();
   fX0 = x0 + dx*(index[0] - t0);       
   return kTRUE;
 }
-  
+
 //_______________________________________________________      
 Int_t AliTRDtrackingChamber::GetNClusters() const
 {
@@ -259,8 +265,8 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer,
   Float_t *cogz[kMaxRows];
   
   // Lookup-Table storing coordinates according to the bins
-  Float_t yLengths[kMaxCols];
-  Float_t zLengths[kMaxRows];
+  Float_t yLengths[kMaxCols]; memset(yLengths, 0, kMaxCols*sizeof(Float_t));
+  Float_t zLengths[kMaxRows]; memset(zLengths, 0, kMaxRows*sizeof(Float_t));
   for(Int_t icnt = 0; icnt < nCols; icnt++){
     yLengths[icnt] = pp->GetColPos(nCols - 1 - icnt) + binlength/2;
   }
@@ -302,7 +308,7 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer,
   Int_t col, row, lower, lower1, upper, upper1;
   for(Int_t ib = 0; ib < nCont; ib++){
     if(nCandidates >= AliTRDtrackerV1::kMaxTracksStack){
-      AliWarning(Form("Number of seed candidates %d exceeded maximum allowed per stack %d", nCandidates, AliTRDtrackerV1::kMaxTracksStack));
+      AliDebug(1, Form("Number of seed candidates %d exceeded maximum allowed per stack %d", nCandidates, AliTRDtrackerV1::kMaxTracksStack));
       break;
     }
     // Positions
@@ -374,6 +380,7 @@ Bool_t AliTRDtrackingChamber::GetSeedingLayer(AliTRDchamberTimeBin *&fakeLayer,
           n++;
         }
       }
+      if(!n) continue;
       pos[0] = x/n;
       pos[1] = y/n;
       pos[2] = z/n;