X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TOF%2FAliTOFGeometryV5.h;h=565bc9a7d7ee147c1295a31d8360c9c28e3510b3;hb=1b9fef1cf8bbce0100e127914802c39b5afdd970;hp=917cbdfa668408258979fbb845319ebcb6a12a9b;hpb=d3c7bfac64db5d2f00beb9368e1977df1114c94e;p=u%2Fmrichter%2FAliRoot.git diff --git a/TOF/AliTOFGeometryV5.h b/TOF/AliTOFGeometryV5.h index 917cbdfa668..565bc9a7d7e 100644 --- a/TOF/AliTOFGeometryV5.h +++ b/TOF/AliTOFGeometryV5.h @@ -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