- Bool_t ReadGeoMatrices();
-
- void SetSMstatus(Int_t sm, Char_t status) { fSMstatus[sm] = status; }
-
- static AliTRDgeometry* GetGeometry(AliRunLoader *runLoader = NULL);
-
- static Int_t GetDetectorSec(Int_t p, Int_t c);
- static Int_t GetDetector(Int_t p, Int_t c, Int_t s);
- virtual Int_t GetPlane(Int_t d) const;
- virtual Int_t GetChamber(Int_t d) const;
- virtual Int_t GetSector(Int_t d) const;
-
- // Translation from MCM to Pad and vice versa
- virtual Int_t GetPadRowFromMCM(Int_t irob, Int_t imcm) const;
- virtual Int_t GetPadColFromADC(Int_t irob, Int_t imcm, Int_t iadc) const;
- virtual Int_t GetMCMfromPad(Int_t irow, Int_t icol) const;
- virtual Int_t GetROBfromPad(Int_t irow, Int_t icol) const;
- virtual Int_t GetRobSide(Int_t irob) const;
- virtual Int_t GetColSide(Int_t icol) const;
-
- static Float_t GetTime0(Int_t p) { return fgkTime0[p]; }
-
- Char_t GetSMstatus(Int_t sm) const { return fSMstatus[sm]; }
- Float_t GetChamberWidth(Int_t p) const { return fCwidth[p]; }
- Float_t GetChamberLength(Int_t p, Int_t c) const { return fClength[p][c]; }
-
- virtual void GetGlobal(const AliRecPoint*, TVector3&, TMatrixF&) const { };
- virtual void GetGlobal(const AliRecPoint*, TVector3&) const { };
-
- static Double_t GetAlpha() { return 2.0
- * 3.14159265358979324
- / fgkNsect; }
-
- static Int_t Nsect() { return fgkNsect; }
- static Int_t Nplan() { return fgkNplan; }
- static Int_t Ncham() { return fgkNcham; }
- static Int_t Ndet() { return fgkNdet; }
-
- static Float_t Cheight() { return fgkCH; }
- static Float_t Cspace() { return fgkVspace; }
- static Float_t CraHght() { return fgkCraH; }
- static Float_t CdrHght() { return fgkCdrH; }
- static Float_t CamHght() { return fgkCamH; }
- static Float_t CroHght() { return fgkCroH; }
- static Float_t CroWid() { return fgkCroW; }
- static Float_t MyThick() { return fgkMyThick; }
- static Float_t DrThick() { return fgkDrThick; }
- static Float_t AmThick() { return fgkAmThick; }
- static Float_t DrZpos() { return fgkDrZpos; }
- static Float_t RpadW() { return fgkRpadW; }
- static Float_t CpadW() { return fgkCpadW; }
-
- static Float_t Cwidcha() { return (fgkSwidth2 - fgkSwidth1)
- / fgkSheight
- * (fgkCH + fgkVspace); }
-
- static Int_t MCMmax() { return fgkMCMmax; }
- static Int_t MCMrow() { return fgkMCMrow; }
- static Int_t ROBmaxC0() { return fgkROBmaxC0; }
- static Int_t ROBmaxC1() { return fgkROBmaxC1; }
- static Int_t ADCmax() { return fgkADCmax; }
- static Int_t TBmax() { return fgkTBmax; }
- static Int_t Padmax() { return fgkPadmax; }
- static Int_t Colmax() { return fgkColmax; }
- static Int_t RowmaxC0() { return fgkRowmaxC0; }
- static Int_t RowmaxC1() { return fgkRowmaxC1; }
-
- TGeoHMatrix *GetGeoMatrix(Int_t det) { return (TGeoHMatrix *)
- fMatrixGeo->At(det); }
- TGeoHMatrix *GetMatrix(Int_t det) { return (TGeoHMatrix *)
- fMatrixArray->At(det); }
- TGeoHMatrix *GetCorrectionMatrix(Int_t det) { return (TGeoHMatrix *)
- fMatrixCorrectionArray->At(det); }
+ static Bool_t CreateClusterMatrixArray();
+ static TGeoHMatrix *GetClusterMatrix(Int_t det);
+
+ void SetSMstatus(Int_t sm, Char_t status) { fSMstatus[sm] = status; }
+
+ static Int_t GetDetectorSec(Int_t layer, Int_t stack);
+ static Int_t GetDetector(Int_t layer, Int_t stack, Int_t sector);
+ static Int_t GetLayer(Int_t det);
+ static Int_t GetStack(Int_t det);
+ Int_t GetStack(Double_t z, Int_t layer);
+ static Int_t GetSector(Int_t det);
+
+ static void CreatePadPlaneArray();
+ static AliTRDpadPlane *CreatePadPlane(Int_t layer, Int_t stack);
+ static AliTRDpadPlane *GetPadPlane(Int_t layer, Int_t stack);
+ static AliTRDpadPlane *GetPadPlane(Int_t det) { return GetPadPlane(GetLayer(det)
+ ,GetStack(det)); }
+ static Int_t GetRowMax(Int_t layer, Int_t stack, Int_t /*sector*/);
+ static Int_t GetColMax(Int_t layer);
+ static Double_t GetRow0(Int_t layer, Int_t stack, Int_t /*sector*/);
+ static Double_t GetCol0(Int_t layer);
+
+ static Float_t GetTime0(Int_t layer) { return fgkTime0[layer]; }
+
+ static Double_t GetXtrdBeg() { return fgkXtrdBeg; }
+ static Double_t GetXtrdEnd() { return fgkXtrdEnd; }
+
+ Char_t GetSMstatus(Int_t sm) const { return fSMstatus[sm]; }
+ static Float_t GetChamberWidth(Int_t layer) { return fgkCwidth[layer] ; }
+ static Float_t GetChamberLength(Int_t layer, Int_t stack) { return fgkClength[layer][stack]; }
+
+ virtual void GetGlobal(const AliRecPoint*, TVector3&, TMatrixF& ) const { };
+ virtual void GetGlobal(const AliRecPoint*, TVector3& ) const { };
+
+ static Double_t GetAlpha() { return 2.0
+ * 3.14159265358979324
+ / fgkNsector; }
+
+ static Int_t Nsector() { return fgkNsector; }
+ static Int_t Nlayer() { return fgkNlayer; }
+ static Int_t Nstack() { return fgkNstack; }
+ static Int_t Ndet() { return fgkNdet; }
+
+ static Float_t Cheight() { return fgkCH; }
+ static Float_t CheightSV() { return fgkCHsv; }
+ static Float_t Cspace() { return fgkVspace; }
+ static Float_t CraHght() { return fgkCraH; }
+ static Float_t CdrHght() { return fgkCdrH; }
+ static Float_t CamHght() { return fgkCamH; }
+ static Float_t CroHght() { return fgkCroH; }
+ static Float_t CsvHght() { return fgkCsvH; }
+ static Float_t CroWid() { return fgkCroW; }
+
+ static Float_t AnodePos() { return fgkAnodePos; }
+
+ static Float_t MyThick() { return fgkRMyThick; }
+ static Float_t DrThick() { return fgkDrThick; }
+ static Float_t AmThick() { return fgkAmThick; }
+ static Float_t DrZpos() { return fgkDrZpos; }
+ static Float_t RpadW() { return fgkRpadW; }
+ static Float_t CpadW() { return fgkCpadW; }
+
+ static Float_t Cwidcha() { return (fgkSwidth2 - fgkSwidth1)
+ / fgkSheight
+ * (fgkCH + fgkVspace); }
+
+ static Int_t MCMmax() { return fgkMCMmax; }
+ static Int_t MCMrow() { return fgkMCMrow; }
+ static Int_t ROBmaxC0() { return fgkROBmaxC0; }
+ static Int_t ROBmaxC1() { return fgkROBmaxC1; }
+ static Int_t ADCmax() { return fgkADCmax; }
+ static Int_t TBmax() { return fgkTBmax; }
+ static Int_t Padmax() { return fgkPadmax; }
+ static Int_t Colmax() { return fgkColmax; }
+ static Int_t RowmaxC0() { return fgkRowmaxC0; }
+ static Int_t RowmaxC1() { return fgkRowmaxC1; }