172b0d90 |
1 | #ifndef ALIITSV11GEOMETRYSUPPORT_H |
2 | #define ALIITSV11GEOMETRYSUPPORT_H |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ |
5 | |
a275e8ba |
6 | |
7 | // This class Defines the Geometry for the ITS services and support cones |
8 | // outside of the ceneteral volume (except for the Ceneteral support |
9 | // cylinders. Other classes define the rest of the ITS. Specificaly the ITS |
10 | // The SSD support cone,SSD Support centeral cylinder, SDD support cone, |
11 | // The SDD cupport centeral cylinder, the SPD Thermal Sheald, The supports |
12 | // and cable trays on both the RB26 (muon dump) and RB24 sides, and all of |
13 | // the cabling from the ladders/stave ends out past the TPC. |
14 | |
15 | |
172b0d90 |
16 | /* |
17 | $Id$ |
18 | */ |
a275e8ba |
19 | #include "AliITSv11Geometry.h" |
20 | #include <TGeoManager.h> |
798b4e0c |
21 | #include <TGeoCompositeShape.h> |
22 | #include <TGeoXtru.h> |
a275e8ba |
23 | |
172b0d90 |
24 | class TGeoVolume; |
25 | |
26 | class AliITSv11GeometrySupport : public AliITSv11Geometry { |
27 | public: |
28 | AliITSv11GeometrySupport(){}; |
543b7370 |
29 | AliITSv11GeometrySupport(Int_t debug):AliITSv11Geometry(debug){}; |
172b0d90 |
30 | virtual ~AliITSv11GeometrySupport(){}; |
31 | // |
43aefea7 |
32 | virtual void SPDCone(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
33 | virtual void SDDCone(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
34 | virtual void SSDCone(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
543b7370 |
35 | virtual void ServicesCableSupport(TGeoVolume *moth, |
36 | TGeoManager *mgr=gGeoManager); |
798b4e0c |
37 | virtual void ServicesCableSupportSPD(TGeoVolume *moth, |
38 | TGeoManager *mgr=gGeoManager); |
39 | virtual void ServicesCableSupportSDD(TGeoVolume *moth, |
40 | TGeoManager *mgr=gGeoManager); |
41 | virtual void ServicesCableSupportSSD(TGeoVolume *moth, |
42 | TGeoManager *mgr=gGeoManager); |
f0a991bf |
43 | virtual void ITSTPCSupports(TGeoVolume *moth, |
43aefea7 |
44 | const TGeoManager *mgr=gGeoManager); |
798b4e0c |
45 | |
172b0d90 |
46 | |
47 | private: |
a275e8ba |
48 | void CreateSPDThermalShape(Double_t ina, Double_t inb, Double_t inr, |
49 | Double_t oua, Double_t oub, Double_t our, |
43aefea7 |
50 | Double_t t, Double_t *x , Double_t *y ) const; |
21ea473f |
51 | void CreateSPDOmegaShape(const Double_t *xin, const Double_t *yin, Double_t d, |
3d2705b6 |
52 | Double_t *x, Double_t *y); |
a275e8ba |
53 | void FillSPDXtruShape(Double_t a, Double_t b, Double_t r, |
21ea473f |
54 | Double_t t, Double_t *x, Double_t *y) const; |
3d2705b6 |
55 | void PointFromParallelLines(Double_t x1, Double_t y1, |
56 | Double_t x2, Double_t y2, Double_t d, |
21ea473f |
57 | Double_t &x, Double_t &y) const; |
3d2705b6 |
58 | |
59 | void ReflectPoint(Double_t x1, Double_t y1, Double_t x2, Double_t y2, |
21ea473f |
60 | Double_t x3, Double_t y3, Double_t &x, Double_t &y) const; |
a275e8ba |
61 | |
43aefea7 |
62 | void TraySupportsSideA(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
63 | void SPDCableTraysSideA(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
64 | void SPDCableTraysSideC(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
f510fd70 |
65 | void SDDCableTraysSideA(TGeoVolume *moth, const TGeoManager *mgr=gGeoManager); |
43aefea7 |
66 | void SDDCableTraysSideC(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
67 | void SSDCableTraysSideA(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
68 | void SSDCableTraysSideC(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager); |
798b4e0c |
69 | |
43aefea7 |
70 | void CreateSDDForwardTraySideA(TGeoVolumeAssembly *tray, |
71 | const TGeoManager *mgr); |
798b4e0c |
72 | |
73 | TGeoCompositeShape* CreateTrayAForwardCover(const Double_t coverLen); |
74 | TGeoCompositeShape* CreateTrayAExternalCover(const Double_t coverLen); |
75 | void CreateTrayACoverHolesShape(const Double_t wide, const Double_t length, |
76 | const Double_t r10, |
77 | Double_t *x, Double_t *y); |
78 | |
79 | TGeoXtru* CreateSDDSSDTraysSideA(const Double_t trayLen, |
80 | const Double_t trayHi); |
81 | |
aa177c73 |
82 | TGeoVolumeAssembly* CreateSDDSSDTraysSideC(const char *trayName, |
43aefea7 |
83 | const TGeoManager *mgr=gGeoManager); |
aa177c73 |
84 | |
172b0d90 |
85 | ClassDef(AliITSv11GeometrySupport,1) // ITS v11 Support geometry |
86 | }; |
87 | |
88 | #endif |