#ifndef ALIL3TRANSFORM_H #define ALIL3TRANSFORM_H #include "AliL3RootTypes.h" class AliL3Transform { private: static Double_t fBField; static Int_t fNTimeBins; static Int_t fNRowLow; static Int_t fNRowUp; static Int_t fNSectorLow; static Int_t fNSectorUp; static Double_t fPadPitchWidthLow; static Double_t fPadPitchWidthUp; static Double_t fZWidth; static Double_t fZSigma; static Int_t fNSector; static Int_t fNSlice; static Int_t fNRow; static Double_t fPi; static Double_t fNRotShift; static Double_t fZLength; static Double_t fZOffset; static Int_t fNPads[176]; //fill this following Init static Double_t fX[176]; //fill this following Init static Int_t fVersion; //flags which version one is using public: static void Init(const Char_t* path); //new init for all AliRoot versions static void SetBField(Double_t f) {fBField = f;} static Double_t GetBField() {return fBField;} static Int_t GetVersion(){return fVersion;} static Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;} static Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;} static Double_t GetPadPitchWidth(Int_t patch) {if(patch<=2) return fPadPitchWidthLow; else return fPadPitchWidthUp;} static Double_t GetZWidth() {return fZWidth;} static Double_t GetZLength() {return fZLength;} static Double_t GetZOffset() {return fZOffset;} static Int_t GetNSectorLow() {return fNSectorLow;} static Int_t GetNSectorUp() {return fNSectorUp;} static Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t §or, Int_t &row); static Bool_t Sector2Slice(Int_t &slice, Int_t sector); static Bool_t Sector2Slice(Int_t &slice, Int_t &slicerow, Int_t sector, Int_t row); static Int_t GetNPads(Int_t row){return (row