/*
$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
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)
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();
}
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
}
//_____________________________________________________________________________
-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)
}
//_____________________________________________________________________________
+
+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;
+
+
+}
+//_____________________________________________________________________________