]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/src/AliL3Transform.h
Added getter GetNRows()
[u/mrichter/AliRoot.git] / HLT / src / AliL3Transform.h
index c0fd48a70591a1e77c18b74241aeb5e94a4efc8f..ba7985f4fd9fb239df58db248c24f0fe58131181 100644 (file)
 #define ALIL3TRANSFORM_H
 
 #include "AliL3RootTypes.h"
-class TFile;
 
 class AliL3Transform {
- private:
-  Int_t fNTimeBins;
-  Int_t fNRowLow;
-  Int_t fNRowUp;
-  Int_t fNSectorLow;
-  Int_t fNSectorUp;
-  Double_t fPadPitchWidthLow;
-  Double_t fPadPitchWidthUp;
-  Double_t fZWidth;
-  Double_t fZSigma;
-  Int_t fNSector;
-  Int_t fNSlice;
-  Int_t fNRow;
-  Double_t fPi;
-  Double_t fNRotShift;
-  Double_t fCos[36]; //fill this following Init
-  Double_t fSin[36]; //fill this following Init
-  Double_t fX[176];  //fill this following Init
-  Int_t fNPads[176]; //fill this following Init
- public:
-  AliL3Transform();
-  AliL3Transform(const char *pathname);
-  virtual ~AliL3Transform();
-  void Init(); //old init used by Anders for AliRoot <= 3.06
-  void Init(const char* path); //new init for all AliRoot versions
 
-  Double_t GetPadPitchWidthLow() {return fPadPitchWidthLow;}
-  Double_t GetPadPitchWidthUp() {return fPadPitchWidthUp;}
-  Double_t GetPadPitchWidth(Int_t patch) {if(patch<=2) return fPadPitchWidthLow; else return fPadPitchWidthUp;}
-  Double_t GetZWidth() {return fZWidth;}
+ private:
   
-  Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t &sector, Int_t &row) const;
+  static Double_t fBField;
+  static Int_t fBFieldFactor;
+  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
+  static Int_t fRows[6][2];
+  static Int_t fNRows[6];
+  static Int_t fNPatches;
+  
+  static Double_t fDiffT; //Transversal diffusion constant
+  static Double_t fDiffL; //Longitudinal diffusion constant
+  static Double_t fAnodeWireSpacing; 
+  static Double_t fInnerPadLength;
+  static Double_t fOuterPadLength;
+  static Double_t fInnerPRFSigma;
+  static Double_t fOuterPRFSigma;
+  static Double_t fTimeSigma; //Minimal longitudinal width
 
-  Bool_t Sector2Slice(Int_t &slice, Int_t sector) const;
-  Bool_t Sector2Slice(Int_t &slice, Int_t &slicerow, Int_t sector, Int_t row) const;
+ public:
+  
+  static void Init(const Char_t* path); //new init for all AliRoot versions
   
-  Double_t Row2X(Int_t slicerow);
-  Int_t GetNPads(Int_t row){return (row<fNRow)?fNPads[row]:0;}
-  Int_t GetNTimeBins(){return fNTimeBins;}
+  static void SetBField(Double_t f) {fBField = f;}
+  static Int_t GetFirstRow(Int_t patch) {return fRows[patch][0];}
+  static Int_t GetLastRow(Int_t patch) {return fRows[patch][1];}
+  static Int_t GetNRows(Int_t patch) {return fNRows[patch];}
+  static Int_t GetNRows() {return fNRow;}
+  static Int_t GetNPatches() {return fNPatches;}
+  static Double_t GetBField() {return fBField;}
+  static Double_t Pi() {return fPi;}
+  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) {return patch < 2 ? fPadPitchWidthLow : fPadPitchWidthUp;}  
+  static Double_t GetZWidth() {return fZWidth;}
+  static Double_t GetZLength() {return fZLength;}
+  static Double_t GetZOffset() {return fZOffset;}
+  static Double_t GetDiffT() {return fDiffT;}
+  static Double_t GetDiffL() {return fDiffL;}
+  static Double_t GetAnodeWireSpacing() {return fAnodeWireSpacing;}
+  static Double_t GetPadLength(Int_t patch) {return patch < 2 ? fInnerPadLength : fOuterPadLength;}
+  static Double_t GetPRFSigma(Int_t patch) {return patch < 2 ? fInnerPRFSigma : fOuterPRFSigma;}
+  static Double_t GetTimeSigma() {return fTimeSigma;}
+  static Int_t GetNSectorLow() {return fNSectorLow;}
+  static Int_t GetNSectorUp() {return fNSectorUp;}
+  
+  static Bool_t Slice2Sector(Int_t slice, Int_t slicerow, Int_t &sector, 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<fNRow)?fNPads[row]:0;}
+  static Int_t GetNTimeBins(){return fNTimeBins;}
+  static Double_t Row2X(Int_t slicerow);
+  static Double_t GetMaxY(Int_t slicerow);
+  static Double_t GetEta(Float_t *xyz);
+  static Double_t GetEta(Int_t row, Int_t pad, Int_t time);
+  static Double_t GetPhi(Float_t *xyz);
 
-  Double_t GetEta(Float_t *xyz);
-  Double_t GetEta(Int_t row, Int_t pad, Int_t time);
-  Double_t GetPhi(Float_t *xyz);
-  Double_t GetMaxY(Int_t slicerow);
-  void Local2Global(Float_t *xyz, Int_t slice);
-  void Local2GlobalAngle(Float_t *angle, Int_t slice);
-  void Global2LocalAngle(Float_t *angle, Int_t slice);
+  static void XYZtoRPhiEta(Float_t *rpe, Float_t *xyz);
+  static void Local2Global(Float_t *xyz, Int_t slice);
+  static void Local2GlobalAngle(Float_t *angle, Int_t slice);
+  static void Global2LocalAngle(Float_t *angle, Int_t slice);
 
-  void Raw2Local(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
-  void Local2Global(Float_t *xyz, Int_t sector, Int_t row);
-  void Global2Local(Float_t *xyz, Int_t sector, Bool_t isSlice=kFALSE);
-  void Raw2Global(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
-  void Local2Raw(Float_t *xyz, Int_t sector, Int_t row);
-  void Global2Raw(Float_t *xyz, Int_t sector, Int_t row);
+  static void Raw2Local(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
+  static void Local2Global(Float_t *xyz, Int_t sector, Int_t row);
+  static void Global2Local(Float_t *xyz, Int_t sector, Bool_t isSlice=kFALSE);
+  static void Raw2Global(Float_t *xyz, Int_t sector, Int_t row, Float_t pad, Float_t time);
+  static void Local2Raw(Float_t *xyz, Int_t sector, Int_t row);
+  static void Global2Raw(Float_t *xyz, Int_t sector, Int_t row);
   
   ClassDef(AliL3Transform,1) //Transformation class for ALICE TPC
 };
+#endif
+
+
 
 
-#endif