4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //====================================================================================================================================================
9 // Class for the description of the structure for the planes of the ALICE Muon Forward Tracker
11 // Contact author: antonio.uras@cern.ch
13 //====================================================================================================================================================
16 #include "THnSparse.h"
17 #include "TClonesArray.h"
26 //====================================================================================================================================================
28 class AliMFTPlane : public TNamed {
33 AliMFTPlane(const Char_t *name, const Char_t *title);
34 AliMFTPlane(const AliMFTPlane& pt);
35 AliMFTPlane& operator=(const AliMFTPlane &source);
37 virtual ~AliMFTPlane(); // destructor
38 virtual void Clear(const Option_t* /*opt*/);
40 Bool_t Init(Int_t planeNumber,
46 Double_t thicknessActive,
47 Double_t thicknessSupport,
48 Double_t thicknessReadout,
49 Bool_t hasPixelRectangularPatternAlongY);
51 Bool_t CreateStructure();
53 Int_t GetNActiveElements() const { return fActiveElements->GetEntries(); }
54 Int_t GetNReadoutElements() const { return fReadoutElements->GetEntries(); }
55 Int_t GetNSupportElements() const { return fSupportElements->GetEntries(); }
57 TClonesArray* GetActiveElements() { return fActiveElements; }
58 TClonesArray* GetReadoutElements() { return fReadoutElements; }
59 TClonesArray* GetSupportElements() { return fSupportElements; }
61 THnSparseC* GetActiveElement(Int_t id);
62 THnSparseC* GetReadoutElement(Int_t id);
63 THnSparseC* GetSupportElement(Int_t id);
65 Bool_t IsFront(THnSparseC *element) const { return (element->GetAxis(2)->GetXmin() < fZCenter); }
67 void DrawPlane(Option_t *opt="");
69 Double_t GetRMinSupport() const { return fRMinSupport; }
70 Double_t GetRMaxSupport() const { return fRMaxSupport; }
71 Double_t GetThicknessSupport() { return GetSupportElement(0)->GetAxis(2)->GetXmax() - GetSupportElement(0)->GetAxis(2)->GetXmin(); }
73 Double_t GetZCenter() const { return fZCenter; }
74 Double_t GetZCenterActiveFront() const { return fZCenterActiveFront; }
75 Double_t GetZCenterActiveBack() const { return fZCenterActiveBack; }
77 void SetEquivalentSilicon(Double_t equivalentSilicon) { fEquivalentSilicon = equivalentSilicon; }
78 void SetEquivalentSiliconBeforeFront(Double_t equivalentSiliconBeforeFront) { fEquivalentSiliconBeforeFront = equivalentSiliconBeforeFront; }
79 void SetEquivalentSiliconBeforeBack(Double_t equivalentSiliconBeforeBack) { fEquivalentSiliconBeforeBack = equivalentSiliconBeforeBack; }
80 Double_t GetEquivalentSilicon() const { return fEquivalentSilicon; }
81 Double_t GetEquivalentSiliconBeforeFront() const { return fEquivalentSiliconBeforeFront; }
82 Double_t GetEquivalentSiliconBeforeBack() const { return fEquivalentSiliconBeforeBack; }
84 Int_t GetNumberOfChips(Option_t *opt);
85 Bool_t HasPixelRectangularPatternAlongY() { return fHasPixelRectangularPatternAlongY; }
91 static const Double_t fActiveSuperposition; // superposition between the active elements tasselling the MFT planes, for having a
92 // full acceptance coverage even in case of 10 degrees inclined tracks
93 static const Double_t fHeightActive; // height of the active elements
94 static const Double_t fHeightReadout; // height of the readout elements attached to the active ones
96 static const Double_t fSupportExtMargin; // minimum border size between the end of the support plane and the sensors: fHeightReadout + 0.3
100 Double_t fZCenter, fRMinSupport, fRMax, fRMaxSupport, fPixelSizeX, fPixelSizeY, fThicknessActive, fThicknessSupport, fThicknessReadout;
101 Double_t fZCenterActiveFront, fZCenterActiveBack, fEquivalentSilicon, fEquivalentSiliconBeforeFront, fEquivalentSiliconBeforeBack;
103 TClonesArray *fActiveElements, *fReadoutElements, *fSupportElements;
105 Bool_t fHasPixelRectangularPatternAlongY, fPlaneIsOdd;
107 ClassDef(AliMFTPlane, 1)
111 //====================================================================================================================================================