]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSv11GeometrySupport.h
Updates for pile-up vertex (F. Prino)
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySupport.h
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 class AliITSv11GeometrySupport : public AliITSv11Geometry {
27   public:
28     AliITSv11GeometrySupport(){};
29     AliITSv11GeometrySupport(Int_t debug):AliITSv11Geometry(debug){};
30     virtual ~AliITSv11GeometrySupport(){};
31     //
32     virtual void SPDCone(TGeoVolume *moth,TGeoManager *mgr=gGeoManager);
33     virtual void SDDCone(TGeoVolume *moth,TGeoManager *mgr=gGeoManager);
34     virtual void SSDCone(TGeoVolume *moth,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
44
45   private:
46     void CreateSPDThermalShape(Double_t ina, Double_t inb, Double_t inr,
47                                Double_t oua, Double_t oub, Double_t our,
48                                Double_t   t, Double_t *x , Double_t *y );
49     void CreateSPDOmegaShape(Double_t *xin, Double_t *yin, Double_t  d,
50                              Double_t   *x, Double_t *y);
51     void FillSPDXtruShape(Double_t a, Double_t  b, Double_t  r,
52                           Double_t t, Double_t *x, Double_t *y);
53     void PointFromParallelLines(Double_t x1, Double_t y1,
54                                 Double_t x2, Double_t y2, Double_t d,
55                                 Double_t &x, Double_t &y);
56
57     void ReflectPoint(Double_t x1, Double_t y1, Double_t x2, Double_t y2,
58                       Double_t x3, Double_t y3, Double_t &x, Double_t &y);
59
60     void  TraySupportsSideA(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
61     void SPDCableTraysSideA(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
62     void SPDCableTraysSideC(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
63     void SDDCableTraysSideA(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
64     void SDDCableTraysSideC(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
65     void SSDCableTraysSideA(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
66     void SSDCableTraysSideC(TGeoVolume *moth, TGeoManager *mgr=gGeoManager);
67
68     TGeoVolumeAssembly* CreateSDDForwardTraySideA(TGeoManager *mgr);
69
70     TGeoCompositeShape* CreateTrayAForwardCover(const Double_t coverLen);
71     TGeoCompositeShape* CreateTrayAExternalCover(const Double_t coverLen);
72     void CreateTrayACoverHolesShape(const Double_t wide, const Double_t length,
73                                     const Double_t r10,
74                                     Double_t *x, Double_t *y);
75
76     TGeoXtru* CreateSDDSSDTraysSideA(const Double_t trayLen,
77                                      const Double_t trayHi);
78
79     TGeoVolumeAssembly* CreateSDDSSDTraysSideC(const char *trayName,
80                                                TGeoManager *mgr=gGeoManager);
81
82     ClassDef(AliITSv11GeometrySupport,1) // ITS v11 Support geometry
83 };
84
85 #endif