]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDtrackingSector.cxx
New version of TOF tracker which uses TOF clusters as an input (A. De Caro)
[u/mrichter/AliRoot.git] / TRD / AliTRDtrackingSector.cxx
index aecfbc53bb13eb0ffbeced0a1990cfd9c65e2086..5852d6ff5ca3beaa22d8188cc11d969de4838e89 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-Revision 1.6  2001/05/28 17:07:58  hristov
-Last minute changes; ExB correction in AliTRDclusterizerV1; taking into account of material in G10 TEC frames and material between TEC planes (C.Blume,S.Sedykh)
+/* $Id$ */
 
-Revision 1.5  2000/12/08 16:07:02  cblume
-Update of the tracking by Sergei
-
-Revision 1.4  2000/10/16 01:16:53  cblume
-Changed timebin 0 to be the one closest to the readout
-
-Revision 1.3  2000/10/15 23:40:01  cblume
-Remove AliTRDconst
-
-Revision 1.2  2000/10/06 16:49:46  cblume
-Made Getters const
-
-Revision 1.1.2.2  2000/10/04 16:34:58  cblume
-Replace include files by forward declarations
-
-Revision 1.1.2.1  2000/09/22 14:47:52  cblume
-Add the tracking code
-
-*/                        
+/////////////////////////////////////////////////////////////////////////
+//                                                                     //
+//  Tracking sector                                                    //
+//                                                                     //
+/////////////////////////////////////////////////////////////////////////                       
                                 
 #include <TObject.h>
 
@@ -47,11 +30,11 @@ Add the tracking code
 #include "AliTRDcluster.h" 
 #include "AliTRDtimeBin.h" 
 #include "AliTRDtrackingSector.h" 
+#include "AliTRDparameter.h"
 
 ClassImp(AliTRDtrackingSector) 
 
 //_______________________________________________________
-
 AliTRDtrackingSector::~AliTRDtrackingSector()
 {
   //
@@ -74,11 +57,14 @@ AliTRDtimeBin &AliTRDtrackingSector::operator[](Int_t i)
 }
 
 //_______________________________________________________
-
 void AliTRDtrackingSector::SetUp()
 { 
-  AliTRD *TRD = (AliTRD*) gAlice->GetDetector("TRD");
-  fGeom = TRD->GetGeometry();
+  //
+  // Initialization
+  //
+
+  AliTRD *trd = (AliTRD*) gAlice->GetDetector("TRD");
+  fGeom = trd->GetGeometry();
 
   fTimeBinSize = fGeom->GetTimeBinSize();
 
@@ -87,71 +73,89 @@ void AliTRDtrackingSector::SetUp()
 
   fTimeBin = new AliTRDtimeBin[fN]; 
 
+  if (!fPar) {
+    fPar = new AliTRDparameter("TRDparameter","Standard TRD parameter");
+  }
+
+  fTimeBinSize = fPar->GetTimeBinSize();
+
 }
 
 //______________________________________________________
-
 Double_t AliTRDtrackingSector::GetX(Int_t tb) const
 {
+  //
+  // Get global x coordinate
+  //
+
   if( (tb<0) || (tb>fN-1)) {
     fprintf(stderr,"AliTRDtrackingSector::GetX: TimeBin index is out of range !\n");
     return -99999.;
   }
   else { 
     
-    Int_t tb_per_plane = fN/AliTRDgeometry::Nplan();
-    Int_t local_tb = tb_per_plane - tb%tb_per_plane - 1;
+    Int_t tbPerPlane = fN/AliTRDgeometry::Nplan();
+    Int_t localTb = tbPerPlane - tb%tbPerPlane - 1;
 
-    Int_t plane = tb/tb_per_plane;
-    Float_t t0 = fGeom->GetTime0(plane);
-    Double_t x = t0 - (local_tb + 0.5) * fTimeBinSize;
+    Int_t plane = tb/tbPerPlane;
+    Float_t t0 = fPar->GetTime0(plane);
+    Double_t x = t0 - (localTb + 0.5) * fTimeBinSize;
 
     return x;
+
   }
+
 }
 
 //______________________________________________________
-
 Int_t AliTRDtrackingSector::GetTimeBinNumber(Double_t x) const
 {
-  Float_t r_out = fGeom->GetTime0(AliTRDgeometry::Nplan()-1); 
-  Float_t r_in = fGeom->GetTime0(0) - AliTRDgeometry::DrThick();
+  //
+  // Returns the time bin number
+  //
 
+  Float_t rOut = fPar->GetTime0(AliTRDgeometry::Nplan()-1); 
+  Float_t rIn  = fPar->GetTime0(0) - AliTRDgeometry::DrThick();
 
-  if(x >= r_out) return fN-1;
-  if(x <= r_in) return 0;
+
+  if(x >= rOut) return fN-1;
+  if(x <= rIn)  return 0;
 
   Int_t plane;
   for (plane = AliTRDgeometry::Nplan()-1; plane >= 0; plane--) {
-    if(x > (fGeom->GetTime0(plane) - AliTRDgeometry::DrThick())) break;
+    if(x > (fPar->GetTime0(plane) - AliTRDgeometry::DrThick())) break;
   }  
  
-  Int_t tb_per_plane = fN/AliTRDgeometry::Nplan();
-  Int_t local_tb = Int_t((fGeom->GetTime0(plane)-x)/fTimeBinSize);
+  Int_t tbPerPlane = fN/AliTRDgeometry::Nplan();
+  Int_t localTb = Int_t((fPar->GetTime0(plane)-x)/fTimeBinSize);
 
-  if((local_tb < 0) || (local_tb >= tb_per_plane)) {
+  if((localTb < 0) || (localTb >= tbPerPlane)) {
     printf("AliTRDtrackingSector::GetTimeBinNumber: \n");
     printf("local time bin %d is out of bounds [0..%d]: x = %f \n",
-          local_tb,tb_per_plane-1,x);
+          localTb,tbPerPlane-1,x);
     return -1;
   }
       
-  Int_t time_bin = (plane + 1) * tb_per_plane - 1 - local_tb;
+  Int_t timeBin = (plane + 1) * tbPerPlane - 1 - localTb;
 
-  return time_bin;
+  return timeBin;
 }
 
 //______________________________________________________
-
-Int_t AliTRDtrackingSector::GetTimeBin(Int_t det, Int_t local_tb) const 
+Int_t AliTRDtrackingSector::GetTimeBin(Int_t det, Int_t localTb) const 
 {
+  //
+  // Time bin
+  //
+
   Int_t plane = fGeom->GetPlane(det);
 
-  Int_t tb_per_plane = fN/AliTRDgeometry::Nplan();
+  Int_t tbPerPlane = fN/AliTRDgeometry::Nplan();
+
+  Int_t timeBin = (plane + 1) * tbPerPlane - 1 - localTb;
 
-  Int_t time_bin = (plane + 1) * tb_per_plane - 1 - local_tb;
+  return timeBin;
 
-  return time_bin;
 }
 
 
@@ -159,15 +163,15 @@ Int_t AliTRDtrackingSector::GetTimeBin(Int_t det, Int_t local_tb) const
 
 Bool_t AliTRDtrackingSector::TECframe(Int_t tb, Double_t y, Double_t z) const
 {
-// 
-// Returns <true> if point defined by <x(tb),y,z> is within 
-// the TEC G10 frame, otherwise returns <false>  
-//  
+  //  
+  // Returns <true> if point defined by <x(tb),y,z> is within 
+  // the TEC G10 frame, otherwise returns <false>  
+  //  
 
   if((tb > (fN-1)) || (tb < 0)) return kFALSE; 
 
-  Int_t tb_per_plane = fN/AliTRDgeometry::Nplan();
-  Int_t plane = tb/tb_per_plane;
+  Int_t tbPerPlane = fN/AliTRDgeometry::Nplan();
+  Int_t plane = tb/tbPerPlane;
   
   Double_t x = GetX(tb);
   y = TMath::Abs(y);
@@ -181,17 +185,18 @@ Bool_t AliTRDtrackingSector::TECframe(Int_t tb, Double_t y, Double_t z) const
 
   for(Int_t iCha = 1; iCha < AliTRDgeometry::Ncham(); iCha++) {
 
-    fRow0 = fGeom->GetRow0(plane,iCha-1,0);
-    fRowPadSize = fGeom->GetRowPadSize(plane,iCha-1,0);
-    nPadRows = fGeom->GetRowMax(plane,iCha-1,0);
+    fRow0 = fPar->GetRow0(plane,iCha-1,0);
+    fRowPadSize = fPar->GetRowPadSize(plane,iCha-1,0);
+    nPadRows = fPar->GetRowMax(plane,iCha-1,0);
     zmin = fRow0 - fRowPadSize/2 + fRowPadSize * nPadRows;
 
-    fRow0 = fGeom->GetRow0(plane,iCha,0);
-    fRowPadSize = fGeom->GetRowPadSize(plane,iCha,0);
+    fRow0 = fPar->GetRow0(plane,iCha,0);
+    fRowPadSize = fPar->GetRowPadSize(plane,iCha,0);
     zmax = fRow0 - fRowPadSize/2;
 
     if((z > zmin) && (z < zmax)) return kTRUE;     
   }
 
   return kFALSE;
+
 }