Line data Source code
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 :
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 :
16 : /*
17 : $Id$
18 : */
19 : #include "AliITSv11Geometry.h"
20 : #include <TGeoManager.h>
21 : #include <TGeoCompositeShape.h>
22 : #include <TGeoXtru.h>
23 :
24 : class TGeoVolume;
25 :
26 0 : class AliITSv11GeometrySupport : public AliITSv11Geometry {
27 : public:
28 4 : AliITSv11GeometrySupport(){};
29 0 : AliITSv11GeometrySupport(Int_t debug):AliITSv11Geometry(debug){};
30 6 : virtual ~AliITSv11GeometrySupport(){};
31 : //
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);
35 : virtual void ServicesCableSupport(TGeoVolume *moth,
36 : TGeoManager *mgr=gGeoManager);
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);
43 : virtual void ITSTPCSupports(TGeoVolume *moth,
44 : const TGeoManager *mgr=gGeoManager);
45 :
46 :
47 : private:
48 : void CreateSPDThermalShape(Double_t ina, Double_t inb, Double_t inr,
49 : Double_t oua, Double_t oub, Double_t our,
50 : Double_t t, Double_t *x , Double_t *y ) const;
51 : void CreateSPDOmegaShape(const Double_t *xin, const Double_t *yin, Double_t d,
52 : Double_t *x, Double_t *y);
53 : void FillSPDXtruShape(Double_t a, Double_t b, Double_t r,
54 : Double_t t, Double_t *x, Double_t *y) const;
55 : void PointFromParallelLines(Double_t x1, Double_t y1,
56 : Double_t x2, Double_t y2, Double_t d,
57 : Double_t &x, Double_t &y) const;
58 :
59 : void ReflectPoint(Double_t x1, Double_t y1, Double_t x2, Double_t y2,
60 : Double_t x3, Double_t y3, Double_t &x, Double_t &y) const;
61 :
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);
65 : void SDDCableTraysSideA(TGeoVolume *moth, const TGeoManager *mgr=gGeoManager);
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);
69 :
70 : void CreateSDDForwardTraySideA(TGeoVolumeAssembly *tray,
71 : const TGeoManager *mgr);
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 :
82 : TGeoVolumeAssembly* CreateSDDSSDTraysSideC(const char *trayName,
83 : const TGeoManager *mgr=gGeoManager);
84 :
85 116 : ClassDef(AliITSv11GeometrySupport,1) // ITS v11 Support geometry
86 : };
87 :
88 : #endif
|