Updated ITS version 11 geometry. Requires ROOT version 4 with a special patch
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySDD.h
CommitLineData
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
9class TGeoVolume;
10class TGeoCombiTrans;
11class TGeoArb8;
12
13
14
15class 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