1 #ifndef AliMFTSegmentation_H
2 #define AliMFTSegmentation_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //====================================================================================================================================================
9 // Segmentation class for the planes of the ALICE Muon Forward Tracker
11 // Contact author: antonio.uras@cern.ch
13 //====================================================================================================================================================
17 #include "TClonesArray.h"
19 #include "AliMFTPlane.h"
21 #include "AliMFTConstants.h"
23 //====================================================================================================================================================
25 class AliMFTSegmentation : public TObject {
30 AliMFTSegmentation(const Char_t *nameGeomFile);
32 virtual ~AliMFTSegmentation();
33 virtual void Clear(const Option_t* /*opt*/);
35 THnSparseC* GetDetElem(Int_t detElemID) const;
37 Int_t GetDetElemID(Int_t plane, Int_t detElem) const { return fNMaxDetElemPerPlane*plane + detElem; }
39 Bool_t Hit2PixelID(Double_t xHit, Double_t yHit, Int_t detElemID, Int_t &xPixel, Int_t &yPixel);
41 Double_t GetPixelSizeX(Int_t detElemID) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(0)->GetBinWidth(1); }
42 Double_t GetPixelSizeY(Int_t detElemID) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(1)->GetBinWidth(1); }
43 Double_t GetPixelSizeZ(Int_t detElemID) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(2)->GetBinWidth(1); }
45 Double_t GetPixelCenterX(Int_t detElemID, Int_t iPixel) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(0)->GetBinCenter(iPixel+1); }
46 Double_t GetPixelCenterY(Int_t detElemID, Int_t iPixel) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(1)->GetBinCenter(iPixel+1); }
47 Double_t GetPixelCenterZ(Int_t detElemID, Int_t iPixel) const { THnSparseC *detElem = GetDetElem(detElemID); return -1.*(detElem->GetAxis(2)->GetBinCenter(iPixel+1)); }
49 Int_t GetNPlanes() const { return fMFTPlanes->GetEntries(); }
51 AliMFTPlane* GetPlane(Int_t iPlane) const { if (iPlane>=0 && iPlane<fMFTPlanes->GetEntries()) return (AliMFTPlane*) fMFTPlanes->At(iPlane); else return NULL; }
53 Bool_t DoesPixelExist(Int_t detElemID, Int_t xPixel, Int_t yPixel);
57 static const Int_t fNMaxPlanes = AliMFTConstants::fNMaxPlanes; // max number of MFT planes
58 static const Int_t fNMaxDetElemPerPlane = AliMFTConstants::fNMaxDetElemPerPlane;
60 TClonesArray *fMFTPlanes;
64 AliMFTSegmentation(const AliMFTSegmentation &source);
65 AliMFTSegmentation& operator=(const AliMFTSegmentation &source);
67 ClassDef(AliMFTSegmentation,1)
71 //====================================================================================================================================================