]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFGeometryV5.h
Modify assignment operator
[u/mrichter/AliRoot.git] / TOF / AliTOFGeometryV5.h
index bfa0560708dbc6dd75630f7d534bd8e4ccdc5543..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,44 +17,54 @@ 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 NStirpC()     { return kNStripC;};
-  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()       { return fgkZlenA;};
-  Float_t ZlenB()       { return fgkZlenB;};
-  Float_t ZlenC()       { return fgkZlenC;};
-  Float_t MaxhZtof()    { return fgkMaxhZtof;};
+  Float_t ZlenA() const      { return fgkZlenA;};
+  Float_t ZlenB() const      { return fgkZlenB;};
+  Float_t ZlenC() const      { return fgkZlenC;};
+  Float_t MaxhZtof() const   { return fgkMaxhZtof;};
 
-  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 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 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 
+  //private:
 
   static const Float_t fgkZlenA;       // length (cm) of the A module
   static const Float_t fgkZlenB;       // length (cm) of the B module