]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFGeometryV5.h
Modify assignment operator
[u/mrichter/AliRoot.git] / TOF / AliTOFGeometryV5.h
index 917cbdfa668408258979fbb845319ebcb6a12a9b..565bc9a7d7ee147c1295a31d8360c9c28e3510b3 100644 (file)
@@ -1,16 +1,15 @@
 #ifndef ALITOFGEOMETRYV5_H
 #define ALITOFGEOMETRYV5_H
+
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-
 ///////////////////////////////////////////////////////////////////////////////
 //                                                                           //
 //  TOF geometry class (new version)                                         //
 //                                                                           //
 ///////////////////////////////////////////////////////////////////////////////
 
-
 #include "AliTOFGeometry.h"
 
 class AliTOFGeometryV5: public AliTOFGeometry {
@@ -18,68 +17,65 @@ class AliTOFGeometryV5: public AliTOFGeometry {
  public:
   AliTOFGeometryV5();
   virtual ~AliTOFGeometryV5();
-  
+   
+  void    ImportGeometry();
   void    Init();
-  Bool_t  IsInsideThePad(Int_t *det, Float_t *pos); 
-  Float_t DistanceToPad(Int_t *det, Float_t *pos, Float_t *dist3d=0);
-  Int_t   GetPlate(Float_t *pos);
-  Int_t   GetStrip(Float_t *pos);
-  Int_t   GetSector(Float_t *pos);
-  Int_t   GetPadX(Float_t *pos);
-  Int_t   GetPadZ(Float_t *pos);
-  Float_t GetX(Int_t *det);
-  Float_t GetY(Int_t *det);
-  Float_t GetZ(Int_t *det);
+  Bool_t  IsInsideThePad(TGeoHMatrix mat, Float_t *pos, Float_t *dist3d=0) const;
+  Bool_t  IsInsideThePadPar(Int_t *det, Float_t *pos) const; 
+  Float_t DistanceToPadPar(Int_t *det, Float_t *pos, Float_t *dist3d=0) const;
+  void    GetVolumePath(Int_t *ind, Char_t *path );
+  void    GetVolumePath(Int_t sector, Char_t *path );
+  void    GetVolumePath(Int_t sector, Int_t plate, Int_t strip, Char_t *path );
+  Int_t   GetPlate(Float_t *pos) const;
+  Int_t   GetStrip(Float_t *pos) const;
+  Int_t   GetSector(Float_t *pos) const;
+  Int_t   GetPadX(Float_t *pos) const;
+  Int_t   GetPadZ(Float_t *pos) const;
+  void    GetPos(Int_t *det,Float_t *pos);
+  Float_t GetX(Int_t *det) const;
+  Float_t GetY(Int_t *det) const;
+  Float_t GetZ(Int_t *det) const;
   Float_t GetPadDx(Float_t *pos);
   Float_t GetPadDy(Float_t *pos);
   Float_t GetPadDz(Float_t *pos);
-  //Float_t GetAngles(Int_t iplate, Int_t istrip)  const {return fAngles[iplate][istrip];};
-  //Float_t GetHeights(Int_t iplate, Int_t istrip) const {return fHeights[iplate][istrip];};
-  //Float_t GetDistances(Int_t iplate, Int_t istrip) const {return fDistances[iplate][istrip];};
 
-  Float_t NStirpC()     { return kNStripC;};
-  Int_t   NMaxNstrip()  { return kMaxNstrip;};
-  Int_t   NPadXSector() { return (AliTOFGeometry::kNStripA + 2*AliTOFGeometry::kNStripB +
+  Int_t   NStripC()  const   { return kNStripC;};
+  Int_t   NPadXSector() const { return (AliTOFGeometry::kNStripA + 2*AliTOFGeometry::kNStripB +
                                  2*kNStripC)*AliTOFGeometry::kNpadX*AliTOFGeometry::kNpadZ;};
 
-  Float_t RinTOF()      { return fgkxTOF;};
-  Float_t Rmin()        { return fgkRmin;};
-  Float_t Rmax()        { return fgkRmax;};
+  Float_t RinTOF()  const    { return fgkxTOF;};
+  Float_t Rmin()   const     { return fgkRmin;};
+  Float_t Rmax()   const     { return fgkRmax;};
+
+  Float_t ZlenA() const      { return fgkZlenA;};
+  Float_t ZlenB() const      { return fgkZlenB;};
+  Float_t ZlenC() const      { return fgkZlenC;};
+  Float_t MaxhZtof() const   { return fgkMaxhZtof;};
 
-  Float_t ZlenA()       { return fgkZlenA;};
-  Float_t ZlenB()       { return fgkZlenB;};
-  Float_t ZlenC()       { return fgkZlenC;};
-  Float_t MaxhZtof()    { return fgkMaxhZtof;};
-  Float_t StripLength() { return fgkStripLength;};
+  void Translation(Float_t *xyz, Float_t translationVector[3]) const;
+  void Rotation(Float_t *xyz, Double_t rotationAngles[6]) const;
+  void InverseRotation(Float_t *xyz, Double_t rotationAngles[6]) const;
 
-  void Translation(Float_t *xyz, Float_t translationVector[3]);
-  void Rotation(Float_t *xyz, Double_t rotationAngles[6]);
-  void InverseRotation(Float_t *xyz, Double_t rotationAngles[6]);
+  void DetToSectorRF(Int_t vol[5], Double_t **coord);
 
   protected:
 
-  //private:
+  enum {
+    kNStripC    = 19 // number of strips in C type module 
+  };
 
-  static const Int_t kNStripC;         // number of strips in C type module 
-  static const Int_t kMaxNstrip;       // Max. number of strips
+  //private:
 
   static const Float_t fgkZlenA;       // length (cm) of the A module
   static const Float_t fgkZlenB;       // length (cm) of the B module
   static const Float_t fgkZlenC;       // length (cm) of the C module
   static const Float_t fgkMaxhZtof;    // Max half z-size of TOF (cm)
-  static const Float_t fgkStripLength; // Strip Length (rho X phi direction) (cm)
 
   static const Float_t fgkRmin;        // Inner radius of the TOF (cm)
   static const Float_t fgkRmax;        // Outer radius of the TOF (cm)
   static const Float_t fgkxTOF;        // Inner TOF Radius used in Reconstruction (cm)
 
-  Bool_t fHoles; //logical for geometry version (w/wo holes) 
-
-  //Float_t *fAngles[kNPlates];//Strip tilt angles
-  //Float_t *fHeights[kNPlates];//Strip heights
-  //Float_t *fDistances[kNPlates];//Strip distances
-
-  ClassDef(AliTOFGeometryV5,0) // TOF Geometry class
+  ClassDef(AliTOFGeometryV5,1) // TOF Geometry class
 };
 
 #endif