Consistent declarations needed on Alpha
[u/mrichter/AliRoot.git] / TRD / AliTRDgeometry.cxx
index ef9cb529485a3eafc9c1c3c8dbe90a7142f7be39..0c3da12abe822b73d83f68e46da13c62c8285727 100644 (file)
 
 /*
 $Log$
+Revision 1.10  2001/05/07 08:08:05  cblume
+Update of TRD code
+
+Revision 1.9  2001/03/27 12:48:33  cblume
+Correct for volume overlaps
+
+Revision 1.8  2001/03/13 09:30:35  cblume
+Update of digitization. Moved digit branch definition to AliTRD
+
+Revision 1.7  2001/02/14 18:22:26  cblume
+Change in the geometry of the padplane
+
 Revision 1.6  2000/11/01 14:53:20  cblume
 Merge with TRD-develop
 
@@ -120,7 +132,7 @@ ClassImp(AliTRDgeometry)
   // Thickness of the the material layers
   //
   const Float_t AliTRDgeometry::fgkSeThick = 0.02;  
-  const Float_t AliTRDgeometry::fgkRaThick = 4.8;  
+  const Float_t AliTRDgeometry::fgkRaThick = 4.78;  
   const Float_t AliTRDgeometry::fgkPeThick = 0.20;    
   const Float_t AliTRDgeometry::fgkMyThick = 0.005;
   const Float_t AliTRDgeometry::fgkXeThick = 3.5;
@@ -136,14 +148,12 @@ ClassImp(AliTRDgeometry)
   //
   // Position of the material layers
   //
-  const Float_t AliTRDgeometry::fgkSeZpos  = -4.1525
-  const Float_t AliTRDgeometry::fgkRaZpos  = -1.7425;
+  const Float_t AliTRDgeometry::fgkSeZpos  = -4.14
+  const Float_t AliTRDgeometry::fgkRaZpos  = -1.74;
   const Float_t AliTRDgeometry::fgkPeZpos  =  0.0000;
-//const Float_t AliTRDgeometry::fgkMyZpos  =  0.6600;
-//const Float_t AliTRDgeometry::fgkDrZpos  =  2.1625;
-  const Float_t AliTRDgeometry::fgkMyZpos  =  0.8500;
-  const Float_t AliTRDgeometry::fgkDrZpos  =  2.3625;
-  const Float_t AliTRDgeometry::fgkAmZpos  =  4.1125;
+  const Float_t AliTRDgeometry::fgkMyZpos  =  0.6550;
+  const Float_t AliTRDgeometry::fgkDrZpos  =  2.1600;
+  const Float_t AliTRDgeometry::fgkAmZpos  =  3.9100;
   const Float_t AliTRDgeometry::fgkCuZpos  = -1.3370; 
   const Float_t AliTRDgeometry::fgkSuZpos  =  0.0000;
   const Float_t AliTRDgeometry::fgkFeZpos  =  1.3053;
@@ -206,14 +216,19 @@ void AliTRDgeometry::Init()
   //     +----------------------------+      +------>
   //                                             z
   //                                             
-  // IMPORTANT: time bin 0 is now the one closest to the readout !!!
+  // IMPORTANT: time bin 0 is now the first one in the drift region 
+  // closest to the readout !!!
   //
 
   // The pad column (rphi-direction)  
   SetNColPad(96);
 
-  // The time bucket
-  SetNTimeBin(30);
+  // The number of time bins. Default is 100 ns timbin size
+  SetNTimeBin(15);
+
+  // Additional time bins before and after the drift region.
+  // Default is to only sample the drift region
+  SetExpandTimeBin(0,0);
 
   // The rotation matrix elements
   Float_t phi = 0;
@@ -233,7 +248,7 @@ void AliTRDgeometry::Init()
 }
 
 //_____________________________________________________________________________
-void AliTRDgeometry::SetNColPad(Int_t npad)
+void AliTRDgeometry::SetNColPad(const Int_t npad)
 {
   //
   // Redefines the number of pads in column direction
@@ -248,10 +263,12 @@ void AliTRDgeometry::SetNColPad(Int_t npad)
 }
 
 //_____________________________________________________________________________
-void AliTRDgeometry::SetNTimeBin(Int_t nbin)
+void AliTRDgeometry::SetNTimeBin(const Int_t nbin)
 {
   //
-  // Redefines the number of time bins
+  // Redefines the number of time bins in the drift region.
+  // The time bin width is defined by the length of the
+  // drift region divided by <nbin>.
   //
 
   fTimeMax     = nbin;
@@ -472,9 +489,9 @@ Bool_t AliTRDgeometry::Local2Global(Int_t iplan, Int_t icham, Int_t isect
   Float_t  rot[3];
 
   // calculate (x,y,z) position in rotated chamber
-  rot[0] = time0 - timeSlice * fTimeBinSize;
-  rot[1] = col0  + padCol    * fColPadSize[iplan];
-  rot[2] = row0  + padRow    * fRowPadSize[iplan][icham][isect];
+  rot[0] = time0 - (timeSlice - fTimeBefore) * fTimeBinSize;
+  rot[1] = col0  + padCol                    * fColPadSize[iplan];
+  rot[2] = row0  + padRow                    * fRowPadSize[iplan][icham][isect];
 
   // Rotate back to original position
   return RotateBack(idet,rot,global);
@@ -520,7 +537,7 @@ Bool_t AliTRDgeometry::RotateBack(Int_t d, Float_t *rot, Float_t *pos) const
 }
 
 //_____________________________________________________________________________
-Int_t AliTRDgeometry::GetDetector(Int_t p, Int_t c, Int_t s) const
+Int_t AliTRDgeometry::GetDetector(const Int_t p, const Int_t c, const Int_t s) const
 {
   //
   // Convert plane / chamber / sector into detector number
@@ -531,7 +548,7 @@ Int_t AliTRDgeometry::GetDetector(Int_t p, Int_t c, Int_t s) const
 }
 
 //_____________________________________________________________________________
-Int_t AliTRDgeometry::GetPlane(Int_t d) const
+Int_t AliTRDgeometry::GetPlane(const Int_t d) const
 {
   //
   // Reconstruct the plane number from the detector number
@@ -542,7 +559,7 @@ Int_t AliTRDgeometry::GetPlane(Int_t d) const
 }
 
 //_____________________________________________________________________________
-Int_t AliTRDgeometry::GetChamber(Int_t d) const
+Int_t AliTRDgeometry::GetChamber(const Int_t d) const
 {
   //
   // Reconstruct the chamber number from the detector number
@@ -553,7 +570,7 @@ Int_t AliTRDgeometry::GetChamber(Int_t d) const
 }
 
 //_____________________________________________________________________________
-Int_t AliTRDgeometry::GetSector(Int_t d) const
+Int_t AliTRDgeometry::GetSector(const Int_t d) const
 {
   //
   // Reconstruct the sector number from the detector number