Add new global configuration for prod shuttle.
[u/mrichter/AliRoot.git] / MFT / AliMFTSegmentation.h
CommitLineData
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
25class AliMFTSegmentation : public TObject {
26
27public:
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
56protected:
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
63private:
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