Updated ITS version 11 geometry. Requires ROOT version 4 with a special patch
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySDD.h
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