]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFGeometry.cxx
Moving AliDSCValue, AliDCSSensor And AliDCSSensorArray from CDB to STEER to avoud...
[u/mrichter/AliRoot.git] / TOF / AliTOFGeometry.cxx
index e198aac2d1ec7afce5fa34d3f2e5e04c22e7c7e1..f176104bb82aaab75f1d5dcab1fcc02a267918ff 100644 (file)
 
 /*
 $Log$
+Revision 1.17.1  2006/12/15 
+         Added method DetToStripRF(...) to get
+         a pad corner coordinates in its strip reference frame
+         (A.De Caro, M.Di Stefano)
+Revision 1.17  2006/08/22 13:30:02  arcelli
+removal of effective c++ warnings (C.Zampolli)
+
+Revision 1.16  2006/04/20 22:30:50  hristov
+Coding conventions (Annalisa)
+
+Revision 1.15  2006/04/16 22:29:05  hristov
+Coding conventions (Annalisa)
+
+Revision 1.14  2006/04/05 08:35:38  hristov
+Coding conventions (S.Arcelli, C.Zampolli)
+
+Revision 1.13  2006/03/12 14:37:54  arcelli
+ Changes for TOF Reconstruction using TGeo
+
+Revision 1.12  2006/02/28 10:38:00  decaro
+AliTOFGeometry::fAngles, AliTOFGeometry::fHeights, AliTOFGeometry::fDistances arrays: dimension definition in the right location
+
+Revision 1.11  2005/12/15 14:17:29  decaro
+Correction of some parameter values
+
 Revision 1.10  2005/12/15 08:55:32  decaro
 New TOF geometry description (V5) -G. Cara Romeo and A. De Caro
 
@@ -65,16 +90,12 @@ Revision 0.02  2003/12/10 S.Arcelli:
 Revision 0.01  2003/12/04 S.Arcelli
 */
 
-#include <stdlib.h>
-#include <Riostream.h>
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 //  TOF Geometry class                                                       //
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
-#include "AliLog.h"
-#include "AliConst.h"
 #include "AliTOFGeometry.h"
 
 ClassImp(AliTOFGeometry)
@@ -84,30 +105,30 @@ const Int_t AliTOFGeometry::fgkTimeDiff   = 25000;  // Min signal separation (ps
 const Float_t AliTOFGeometry::fgkXPad     = 2.5;    // Pad size in the x direction (cm)
 const Float_t AliTOFGeometry::fgkZPad     = 3.5;    // Pad size in the z direction (cm)
 
+const Float_t AliTOFGeometry::fgkStripLength = 122.;// Strip Length (rho X phi direction) (cm)
+
 const Float_t AliTOFGeometry::fgkSigmaForTail1= 2.; //Sig1 for simulation of TDC tails 
 const Float_t AliTOFGeometry::fgkSigmaForTail2= 0.5;//Sig2 for simulation of TDC tails
 
-const Float_t AliTOFGeometry::fgkTdcBin = 24.4;     // time-window for the TDC bins [ps]
+const Float_t AliTOFGeometry::fgkTdcBin = 24.4;     // time-of-flight bin width [ps]
+const Float_t AliTOFGeometry::fgkToTBin = 48.8;     // time-over-threshold  bin width [ps]
 
 //_____________________________________________________________________________
-AliTOFGeometry::AliTOFGeometry()
+AliTOFGeometry::AliTOFGeometry():
+  fNStripC(19),  // number of strips in C type module 
+  fZlenA(106.0),  // length (cm) of the A module
+  fZlenB(141.0),  // length (cm) of the B module
+  fZlenC(177.5),  // length (cm) of the C module
+  fMaxhZtof(371.5),  // Max half z-size of TOF (cm)
+  fRmin(370.), // Inner radius of the TOF (cm)
+  fRmax(399.), // Outer radius of the TOF (cm)
+  fxTOF(371.), // Inner radius of the TOF for Reconstruction (cm)
+  fHoles(0),   // Flag for Holes
+  fPhiSec(20.) // sector Phi width (deg)
 {
   //
   // AliTOFGeometry default constructor
   //
-
-  kNStripC     = 20;  // number of strips in C type module 
-  kMaxNstrip   = 20;  // Max. number of strips 
-  kZlenA    = 106.0;  // length (cm) of the A module
-  kZlenB    = 141.0;  // length (cm) of the B module
-  kZlenC    = 177.5;  // length (cm) of the C module
-  kMaxhZtof = 371.5;  // Max half z-size of TOF (cm)
-  kStripLength = 122.;// Strip Length (rho X phi direction) (cm)
-
-  fgkxTOF     = 371.; // Inner radius of the TOF for Reconstruction (cm)
-  fgkRmin     = 370.; // Inner radius of the TOF (cm)
-  fgkRmax     = 399.; // Outer radius of the TOF (cm)
-
   Init();
 
 }
@@ -129,10 +150,59 @@ void AliTOFGeometry::Init()
  
   fPhiSec   = 360./kNSectors;
 
+  Float_t const kangles[kNPlates][kMaxNstrip] ={
+
+ {44.494, 43.725, 42.946, 42.156, 41.357, 40.548, 39.729, 38.899, 
+  38.060, 37.211, 36.353, 35.484, 34.606, 33.719, 32.822, 31.916, 
+  31.001, 30.077, 29.144, 28.202 },
+
+ {26.884, 25.922, 24.952, 23.975, 22.989, 22.320, 21.016, 20.309,
+  19.015, 18.270, 16.989, 16.205, 14.941, 14.117, 12.871, 12.008,
+  10.784, 9.8807, 8.681, 0.0 },
+
+ { 7.5835, 6.4124, 5.4058, 4.2809, 3.2448,  2.1424, 1.078, -0., -1.078, 
+  -2.1424, -3.2448, -4.2809, -5.4058, -6.4124, -7.5835, 0.0, 0.0, 0.0,
+  0.0, 0.0 },
+  
+ {-8.681, -9.8807, -10.784, -12.008, -12.871, -14.117, -14.941, -16.205,
+  -16.989, -18.27, -19.015, -20.309, -21.016, -22.32, -22.989,
+   -23.975, -24.952, -25.922, -26.884, 0. },
+  
+ {-28.202, -29.144, -30.077, -31.001, -31.916, -32.822, -33.719, -34.606,
+  -35.484, -36.353, -37.211, -38.06, -38.899, -39.729, -40.548,
+   -41.357, -42.156, -42.946, -43.725, -44.494 }};
+
+
+  //Strips Heights
+
+   Float_t const kheights[kNPlates][kMaxNstrip]= {
+
+  {-5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5,
+   -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5 },
+  
+  {-6.3, -7.1, -7.9, -8.7, -9.5, -3, -9.5,   -3, -9.5,   -3, 
+   -9.5, -3.0, -9.5, -3.0, -9.5, -3, -9.5,   -3,   -9 , 0.},
+  
+  {  -3,   -9, -4.5,   -9, -4.5,     -9, -4.5,   -9, -4.5,   -9, 
+     -4.5,   -9, -4.5,   -9,   -3,   0.0, 0.0, 0.0, 0.0, 0.0 },
+  
+  {  -9,   -3, -9.5,   -3, -9.5, -3, -9.5,   -3, -9.5,   -3, -9.5,
+     -3, -9.5,   -3, -9.5,  -8.7, -7.9, -7.1, -6.3, 0. },
+  
+  {-5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5,
+   -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5, -5.5 }};
+
+   for (Int_t iplate = 0; iplate < kNPlates; iplate++) {
+     for (Int_t istrip = 0; istrip < kMaxNstrip; istrip++) {
+       fAngles[iplate][istrip]   = kangles[iplate][istrip];
+       fHeights[iplate][istrip]  = kheights[iplate][istrip];
+     }
+   }
+
 }
 
 //_____________________________________________________________________________
-void AliTOFGeometry::GetPos(Int_t *det, Float_t *pos) 
+void AliTOFGeometry::GetPosPar(Int_t *det, Float_t *pos) const
 {
 //
 // Returns space point coor (x,y,z) (cm)  for Detector 
@@ -145,7 +215,7 @@ void AliTOFGeometry::GetPos(Int_t *det, Float_t *pos)
   
 }
 //_____________________________________________________________________________
-void AliTOFGeometry::GetDetID( Float_t *pos, Int_t *det) 
+void AliTOFGeometry::GetDetID( Float_t *pos, Int_t *det) const
 {
  //
  // Returns Detector Indices (iSect,iPlate,iStrip,iPadX,iPadZ) 
@@ -160,3 +230,28 @@ void AliTOFGeometry::GetDetID( Float_t *pos, Int_t *det)
   
 }
 //_____________________________________________________________________________
+
+void AliTOFGeometry::DetToStripRF(Int_t nPadX, Int_t nPadZ, Float_t &x,  Float_t &z) const
+{
+  //
+  // Returns the local coordinates (x, z) in strip reference frame
+  // for the bottom corner of the pad number (nPadX, nPadZ)
+  //
+  /*
+  const Float_t xCenterStrip = kNpadX * fgkXPad / 2.;
+  const Float_t zCenterStrip = kNpadZ * fgkZPad / 2.;
+
+  const Float_t xCenterPad = nPadX*fgkXPad + fgkXPad / 2.;
+  const Float_t zCenterPad = nPadZ*fgkZPad + fgkZPad / 2.;
+
+  x = xCenterPad - xCenterStrip;
+  z = zCenterPad - zCenterStrip;
+  */
+
+
+  x = (nPadX - kNpadX*0.5) * fgkXPad;
+  z = (nPadZ - kNpadZ*0.5) * fgkZPad;
+
+
+}
+//_____________________________________________________________________________