]>
Commit | Line | Data |
---|---|---|
db486a6e | 1 | #ifndef ALIITSV11GEOMETRYSDD_H |
2 | #define ALIITSV11GEOMETRYSDD_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | // Ludovic Gaudichet (Ludovic.Gaudichet@to.infn.it) | |
8 | ||
9 | class TGeoVolume; | |
10 | class TGeoCombiTrans; | |
11 | class TGeoArb8; | |
12 | ||
13 | ||
14 | ||
15 | class AliITSv11GeometrySDD : public AliITSv11Geometry { | |
16 | ||
17 | public: | |
18 | AliITSv11GeometrySDD(); | |
19 | AliITSv11GeometrySDD(Int_t debug); | |
20 | virtual ~AliITSv11GeometrySDD(){}; | |
21 | ||
22 | ||
23 | virtual void SetGeomParameters(); | |
24 | virtual void Layer3(TGeoVolume *Moth); | |
25 | virtual void Layer4(TGeoVolume *Moth); | |
26 | ||
27 | // Insert only the specified element | |
28 | void AddOnlyLadder3(Int_t i) { fAddOnlyLadder3=i; }; | |
29 | void AddOnlyLadder4(Int_t i) { fAddOnlyLadder4=i; }; | |
30 | void AddOnlySegment(Int_t i) { fAddOnlySegment=i; }; | |
31 | ||
32 | private: | |
33 | ||
34 | // Create virtual volumes of a ladder and its detectors (inside layers 3 and 4) | |
35 | virtual TGeoVolume* CreateLay3Ladder(); | |
36 | virtual TGeoVolume* CreateLay3Detectors(); | |
37 | virtual TGeoVolume* CreateLay4Ladder(); | |
38 | virtual TGeoVolume* CreateLay4Detectors(); | |
39 | ||
40 | // Create virtual volumes inside a ladder volume | |
41 | virtual TGeoVolume* CreateLadderSegment(); | |
42 | virtual TGeoVolume* CreateEndLadder(Double_t length); | |
43 | virtual TGeoVolume* CreateHybrid(); | |
44 | ||
45 | ||
46 | // Create a TGeoCombiTrans, allows a general rotation in dPhi and dy,dz translations | |
47 | TGeoCombiTrans* CreateCombiTrans(const char *name, Double_t dy, Double_t dz, Double_t dphi); | |
48 | ||
49 | // add (dx,dy,dz) translation to a initial TGeoCombiTrans | |
50 | void AddTranslationTotCombiTrans(TGeoCombiTrans* ct, Double_t dx=0, Double_t dy=0, Double_t dz=0); | |
51 | ||
52 | // Create one side of the CF corner of the CF structure | |
53 | TGeoArb8* CreateLadderSide(Double_t dz, Double_t angle, Double_t xSign, | |
54 | Double_t L, Double_t H, Double_t l); | |
55 | ||
56 | // Create de CF structure in the ladder segment | |
57 | void AddLadderCFstruct(Double_t dy, TGeoVolume* vol); | |
58 | ||
59 | // Create a pin support object | |
60 | virtual TGeoVolume* CreatePinSupport(Double_t rotY); | |
61 | ||
62 | // Create a SDD detector object | |
63 | virtual TGeoVolume* CreateSDDsensor(); | |
64 | ||
65 | ||
66 | //************************************************** | |
67 | ||
68 | Int_t fAddOnlyLadder3; | |
69 | Int_t fAddOnlyLadder4; | |
70 | Int_t fAddOnlySegment; | |
71 | ||
72 | ||
73 | Double_t fLay3Rmin; | |
74 | Double_t fLay3Rmax; | |
75 | Double_t fLay3Length; | |
76 | Double_t fLay3LadderLength; | |
77 | Double_t fLay3LaddShortRadius; | |
78 | Double_t fLay3LaddLongRadius; | |
79 | Double_t fLay3DetShortRadius; | |
80 | Double_t fLay3DetLongRadius; | |
81 | Double_t fLay3LaddTopCornerEnd; | |
82 | Int_t fLay3Nladd; | |
83 | Int_t fLay3Ndet; | |
84 | Double_t fLay3ZPlusEndLength; | |
85 | Double_t fLay3sensorZPos[6]; | |
86 | ||
87 | ||
88 | Double_t fLay4Rmin; | |
89 | Double_t fLay4Rmax; | |
90 | Double_t fLay4Length; | |
91 | Double_t fLay4LaddShortRadius; | |
92 | Double_t fLay4LaddLongRadius; | |
93 | Double_t fLay4DetShortRadius; | |
94 | Double_t fLay4DetLongRadius; | |
95 | Double_t fLay4LadderLength; | |
96 | Double_t fLay4LaddTopCornerEnd; | |
97 | Int_t fLay4Nladd; | |
98 | Int_t fLay4Ndet; | |
99 | Double_t fLay4ZPlusEndLength; | |
100 | Double_t fLay4sensorZPos[8]; | |
101 | ||
102 | Double_t fSegmentLength; | |
103 | Double_t fLadderWidth; | |
104 | Double_t fLadderHeight; | |
105 | Double_t fLadderBeamRadius; | |
106 | Double_t fLadderLa; | |
107 | Double_t fLadderHa; | |
108 | Double_t fLadderLb; | |
109 | Double_t fLadderHb; | |
110 | Double_t fLadderl; | |
111 | ||
112 | Double_t fBottomBeamAngle; | |
113 | Double_t fBeamSidePhi; | |
114 | ||
115 | Double_t fWaferThickness; | |
116 | Double_t fWaferWidth; | |
117 | Double_t fWaferLength; | |
118 | ||
119 | Double_t fHybridLength; | |
120 | Double_t fHybridWidth; | |
121 | ||
122 | Double_t fLadWaferSep; | |
123 | Double_t fPinSuppWidth; | |
124 | Double_t fPinSuppHeight; | |
125 | Double_t fPinSuppRmax; | |
126 | Double_t fPinR; | |
127 | Double_t fPinSuppLength; | |
128 | Double_t fPinSuppThickness; | |
129 | Double_t fPinSuppConeAngle; | |
130 | ||
131 | ClassDef(AliITSv11GeometrySDD,1) // ITS v11 SDD geometry | |
132 | }; | |
133 | ||
134 | ||
135 | ||
136 | #endif |