]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/AliFMDRing.h
New member function to calculate fDz
[u/mrichter/AliRoot.git] / FMD / AliFMDRing.h
CommitLineData
0d0e6995 1#ifndef ALIFMDRING_H
2#define ALIFMDRING_H
4347b38f 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
4 * reserved.
5 *
6 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
7 *
8 * See cxx source for full Copyright notice
9 */
4347b38f 10#ifndef ALIFMDPOLYGON_H
11# include <AliFMDPolygon.h>
12#endif
13#ifndef ROOT_TArrayI
14# include <TArrayI.h>
15#endif
16
17class TBrowser;
18class TNode;
19class TObjArray;
20class TShape;
21class TList;
22
23
24//__________________________________________________________________
42403906 25class AliFMDRing : public TObject
4347b38f 26{
4347b38f 27public:
4347b38f 28 AliFMDRing(Char_t id='\0', Bool_t detailed=kTRUE);
29 virtual ~AliFMDRing();
30 void Init();
31 bool IsWithin(size_t moduleNo, double x, double y) const;
32 void SetupCoordinates();
33 void SetupGeometry(Int_t vacuumId, Int_t siId, Int_t pcbId,
34 Int_t pbRotId, Int_t idRotId);
35 void Geometry(const char* mother, Int_t baseId, Double_t z, Int_t pbRotId,
36 Int_t idRotId);
37 void SimpleGeometry(TList* nodes,
38 TNode* mother,
39 Int_t colour,
40 Double_t z,
41 Int_t n);
42 void Gsatt();
43 void Draw(Option_t* opt="HOL") const; //*MENU*
44 void Browse(TBrowser* b);
45 Bool_t IsFolder() const { return kTRUE; }
46
47 Char_t GetId() const { return fId; }
48 Int_t GetActiveId() const { return fActiveId; }
49 Int_t GetPrintboardBottomId() const { return fPrintboardBottomId; }
50 Int_t GetPrintboardTopId() const { return fPrintboardTopId; }
51 Int_t GetRingId() const { return fRingId; }
52 Int_t GetSectionId() const { return fSectionId; }
53 Int_t GetStripId() const { return fStripId; }
54 Int_t GetVirtualBackId() const { return fVirtualBackId; }
55 Int_t GetVirtualFrontId() const { return fVirtualFrontId; }
56 Double_t GetBondingWidth() const { return fBondingWidth; }
57 Double_t GetWaferRadius() const { return fWaferRadius; }
58 Double_t GetSiThickness() const { return fSiThickness; }
59 Double_t GetLowR() const { return fLowR; }
60 Double_t GetHighR() const { return fHighR; }
61 Double_t GetTheta() const { return fTheta; }
62 Int_t GetNStrips() const { return fNStrips; }
63 Int_t GetNSectors() const { return Int_t(360 / fTheta); }
64 Double_t GetLegRadius() const { return fLegRadius; }
65 Double_t GetLegLength() const { return fLegLength; }
66 Double_t GetModuleSpacing() const { return fModuleSpacing; }
67 Double_t GetPrintboardThickness() const { return fPrintboardThickness; }
68 Double_t GetRingDepth() const { return fRingDepth; }
69
70 void SetBondingWidth(Double_t width) { fBondingWidth = width; }
71 void SetWaferRadius(Double_t radius) { fWaferRadius = radius; }
72 void SetSiThickness(Double_t thickness) { fSiThickness = thickness; }
73 void SetLowR(Double_t lowR) { fLowR = lowR; }
74 void SetHighR(Double_t highR) { fHighR = highR; }
75 void SetTheta(Double_t theta) { fTheta = theta; }
76 void SetNStrips(Int_t nStrips) { fNStrips = nStrips; }
77 void SetLegRadius(Double_t radius) { fLegRadius = radius; }
78 void SetLegLength(Double_t length) { fLegLength = length; }
79 void SetLegOffset(Double_t offset) { fLegOffset = offset; }
80
81 void SetModuleSpacing(Double_t spacing) { fModuleSpacing = spacing; }
82 void SetPrintboardThickness(Double_t thickness) { fPrintboardThickness = thickness; }
83
42403906 84protected:
85 Char_t fId; // ID
86 Bool_t fDetailed;
87 Int_t fActiveId; // Active volume
88 Int_t fPrintboardBottomId; // Print board bottom volume
89 Int_t fPrintboardTopId; // Print board top volume
90 Int_t fRingId; // Ring volume
91 Int_t fSectionId; // Section volumes
92 Int_t fStripId; // Strip volumes
93 Int_t fVirtualBackId; // Virtual Back volume
94 Int_t fVirtualFrontId; // Virtual Front volume
95
96 Double_t fBondingWidth; // With of bonding pad on sensor
97 Double_t fWaferRadius; // Size of wafer the sensor was made from
98 Double_t fSiThickness; // Thickness of sensor
99 Double_t fLowR; // Lower radius of ring
100 Double_t fHighR; // Upper radius of ring
101 Double_t fTheta; // Opening angle of the silicon wafers
102 Int_t fNStrips; // Number of strips
103 Double_t fRingDepth; // How far the ring extends beyond
104 // the z value given.
105 Double_t fLegRadius; // Radius of support legs
106 Double_t fLegLength; // Radius of support legs
107 Double_t fLegOffset; // Radius of support legs
108
109 Double_t fModuleSpacing; // Staggering offset
110 Double_t fPrintboardThickness; // Thickness of print board
111
112 TArrayI fRotations; // Array of rotations
113 TShape* fShape; // Shape used for event display
114 TObjArray* fRotMatricies; // Matricies used for event display
115
116 AliFMDPolygon fPolygon; // Polygon shape
117
0d0e6995 118 ClassDef(AliFMDRing, 1) // FMD Ring volume parameters
4347b38f 119};
120#endif
0d0e6995 121//____________________________________________________________________
122//
123// Local Variables:
124// mode: C++
125// End:
4347b38f 126//
127// EOF
128//