]>
Commit | Line | Data |
---|---|---|
820b4d9e | 1 | #ifndef AliMFTSegmentation_H |
2 | #define AliMFTSegmentation_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | //==================================================================================================================================================== | |
8 | // | |
9 | // Segmentation class for the planes of the ALICE Muon Forward Tracker | |
10 | // | |
11 | // Contact author: antonio.uras@cern.ch | |
12 | // | |
13 | //==================================================================================================================================================== | |
14 | ||
15 | #include "TFile.h" | |
16 | #include "TNtuple.h" | |
17 | #include "TClonesArray.h" | |
18 | #include "TMath.h" | |
19 | #include "AliMFTPlane.h" | |
20 | #include "TMath.h" | |
d4643a10 | 21 | #include "AliMFTConstants.h" |
820b4d9e | 22 | |
23 | //==================================================================================================================================================== | |
24 | ||
25 | class AliMFTSegmentation : public TObject { | |
26 | ||
27 | public: | |
28 | ||
29 | AliMFTSegmentation(); | |
30 | AliMFTSegmentation(const Char_t *nameGeomFile); | |
ffc53def | 31 | |
32 | virtual ~AliMFTSegmentation(); | |
33 | virtual void Clear(const Option_t* /*opt*/); | |
820b4d9e | 34 | |
d4643a10 | 35 | THnSparseC* GetDetElem(Int_t detElemID) const; |
820b4d9e | 36 | |
026547c6 | 37 | Int_t GetDetElemGlobalID(Int_t plane, Int_t detElem) const { return fNMaxDetElemPerPlane*plane + detElem; } |
38 | Int_t GetDetElemLocalID(Int_t detElem) const { return detElem%fNMaxDetElemPerPlane; } | |
820b4d9e | 39 | |
40 | Bool_t Hit2PixelID(Double_t xHit, Double_t yHit, Int_t detElemID, Int_t &xPixel, Int_t &yPixel); | |
41 | ||
d4643a10 | 42 | Double_t GetPixelSizeX(Int_t detElemID) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(0)->GetBinWidth(1); } |
43 | Double_t GetPixelSizeY(Int_t detElemID) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(1)->GetBinWidth(1); } | |
44 | Double_t GetPixelSizeZ(Int_t detElemID) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(2)->GetBinWidth(1); } | |
820b4d9e | 45 | |
d4643a10 | 46 | Double_t GetPixelCenterX(Int_t detElemID, Int_t iPixel) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(0)->GetBinCenter(iPixel+1); } |
47 | Double_t GetPixelCenterY(Int_t detElemID, Int_t iPixel) const { THnSparseC *detElem = GetDetElem(detElemID); return detElem->GetAxis(1)->GetBinCenter(iPixel+1); } | |
48 | Double_t GetPixelCenterZ(Int_t detElemID, Int_t iPixel) const { THnSparseC *detElem = GetDetElem(detElemID); return -1.*(detElem->GetAxis(2)->GetBinCenter(iPixel+1)); } | |
820b4d9e | 49 | |
d4643a10 | 50 | Int_t GetNPlanes() const { return fMFTPlanes->GetEntries(); } |
820b4d9e | 51 | |
d4643a10 | 52 | AliMFTPlane* GetPlane(Int_t iPlane) const { if (iPlane>=0 && iPlane<fMFTPlanes->GetEntries()) return (AliMFTPlane*) fMFTPlanes->At(iPlane); else return NULL; } |
bcaf50eb | 53 | |
54 | Bool_t DoesPixelExist(Int_t detElemID, Int_t xPixel, Int_t yPixel); | |
820b4d9e | 55 | |
56 | protected: | |
57 | ||
d23466bf | 58 | static const Int_t fNMaxPlanes = AliMFTConstants::fNMaxPlanes; // max number of MFT planes |
d4643a10 | 59 | static const Int_t fNMaxDetElemPerPlane = AliMFTConstants::fNMaxDetElemPerPlane; |
820b4d9e | 60 | |
61 | TClonesArray *fMFTPlanes; | |
62 | ||
63 | private: | |
64 | ||
65 | AliMFTSegmentation(const AliMFTSegmentation &source); | |
66 | AliMFTSegmentation& operator=(const AliMFTSegmentation &source); | |
67 | ||
68 | ClassDef(AliMFTSegmentation,1) | |
69 | ||
70 | }; | |
71 | ||
72 | //==================================================================================================================================================== | |
73 | ||
74 | #endif | |
75 |