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