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