ROOT logo
#ifndef ALIITSV11GEOMETRYSUPPORT_H
#define ALIITSV11GEOMETRYSUPPORT_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


// This class Defines the Geometry for the ITS services and support cones
// outside of the ceneteral volume (except for the Ceneteral support 
// cylinders. Other classes define the rest of the ITS. Specificaly the ITS
// The SSD support cone,SSD Support centeral cylinder, SDD support cone,
// The SDD cupport centeral cylinder, the SPD Thermal Sheald, The supports
// and cable trays on both the RB26 (muon dump) and RB24 sides, and all of
// the cabling from the ladders/stave ends out past the TPC. 


/*
  $Id$
 */
#include "AliITSv11Geometry.h"
#include <TGeoManager.h>
#include <TGeoCompositeShape.h>
#include <TGeoXtru.h>

class TGeoVolume;

class AliITSv11GeometrySupport : public AliITSv11Geometry {
  public:
    AliITSv11GeometrySupport(){};
    AliITSv11GeometrySupport(Int_t debug):AliITSv11Geometry(debug){};
    virtual ~AliITSv11GeometrySupport(){};
    //
    virtual void SPDCone(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    virtual void SDDCone(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    virtual void SSDCone(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    virtual void ServicesCableSupport(TGeoVolume *moth,
                                      TGeoManager *mgr=gGeoManager);
    virtual void ServicesCableSupportSPD(TGeoVolume *moth,
					 TGeoManager *mgr=gGeoManager);
    virtual void ServicesCableSupportSDD(TGeoVolume *moth,
					 TGeoManager *mgr=gGeoManager);
    virtual void ServicesCableSupportSSD(TGeoVolume *moth,
					 TGeoManager *mgr=gGeoManager);
    virtual void ITSTPCSupports(TGeoVolume *moth,
				const TGeoManager *mgr=gGeoManager);


  private:
    void CreateSPDThermalShape(Double_t ina, Double_t inb, Double_t inr,
			       Double_t oua, Double_t oub, Double_t our,
			       Double_t   t, Double_t *x , Double_t *y ) const;
    void CreateSPDOmegaShape(const Double_t *xin, const Double_t *yin, Double_t  d,
			     Double_t   *x, Double_t *y);
    void FillSPDXtruShape(Double_t a, Double_t  b, Double_t  r,
			  Double_t t, Double_t *x, Double_t *y) const;
    void PointFromParallelLines(Double_t x1, Double_t y1,
				Double_t x2, Double_t y2, Double_t d,
				Double_t &x, Double_t &y) const;

    void ReflectPoint(Double_t x1, Double_t y1, Double_t x2, Double_t y2,
		      Double_t x3, Double_t y3, Double_t &x, Double_t &y) const;

    void  TraySupportsSideA(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    void SPDCableTraysSideA(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    void SPDCableTraysSideC(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    void SDDCableTraysSideA(TGeoVolume *moth, const TGeoManager *mgr=gGeoManager);
    void SDDCableTraysSideC(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    void SSDCableTraysSideA(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);
    void SSDCableTraysSideC(TGeoVolume *moth,const TGeoManager *mgr=gGeoManager);

    void CreateSDDForwardTraySideA(TGeoVolumeAssembly *tray,
				   const TGeoManager *mgr);

    TGeoCompositeShape* CreateTrayAForwardCover(const Double_t coverLen);
    TGeoCompositeShape* CreateTrayAExternalCover(const Double_t coverLen);
    void CreateTrayACoverHolesShape(const Double_t wide, const Double_t length,
				    const Double_t r10,
				    Double_t *x, Double_t *y);

    TGeoXtru* CreateSDDSSDTraysSideA(const Double_t trayLen,
				     const Double_t trayHi);

    TGeoVolumeAssembly* CreateSDDSSDTraysSideC(const char *trayName,
					 const TGeoManager *mgr=gGeoManager);

    ClassDef(AliITSv11GeometrySupport,1) // ITS v11 Support geometry
};

#endif
 AliITSv11GeometrySupport.h:1
 AliITSv11GeometrySupport.h:2
 AliITSv11GeometrySupport.h:3
 AliITSv11GeometrySupport.h:4
 AliITSv11GeometrySupport.h:5
 AliITSv11GeometrySupport.h:6
 AliITSv11GeometrySupport.h:7
 AliITSv11GeometrySupport.h:8
 AliITSv11GeometrySupport.h:9
 AliITSv11GeometrySupport.h:10
 AliITSv11GeometrySupport.h:11
 AliITSv11GeometrySupport.h:12
 AliITSv11GeometrySupport.h:13
 AliITSv11GeometrySupport.h:14
 AliITSv11GeometrySupport.h:15
 AliITSv11GeometrySupport.h:16
 AliITSv11GeometrySupport.h:17
 AliITSv11GeometrySupport.h:18
 AliITSv11GeometrySupport.h:19
 AliITSv11GeometrySupport.h:20
 AliITSv11GeometrySupport.h:21
 AliITSv11GeometrySupport.h:22
 AliITSv11GeometrySupport.h:23
 AliITSv11GeometrySupport.h:24
 AliITSv11GeometrySupport.h:25
 AliITSv11GeometrySupport.h:26
 AliITSv11GeometrySupport.h:27
 AliITSv11GeometrySupport.h:28
 AliITSv11GeometrySupport.h:29
 AliITSv11GeometrySupport.h:30
 AliITSv11GeometrySupport.h:31
 AliITSv11GeometrySupport.h:32
 AliITSv11GeometrySupport.h:33
 AliITSv11GeometrySupport.h:34
 AliITSv11GeometrySupport.h:35
 AliITSv11GeometrySupport.h:36
 AliITSv11GeometrySupport.h:37
 AliITSv11GeometrySupport.h:38
 AliITSv11GeometrySupport.h:39
 AliITSv11GeometrySupport.h:40
 AliITSv11GeometrySupport.h:41
 AliITSv11GeometrySupport.h:42
 AliITSv11GeometrySupport.h:43
 AliITSv11GeometrySupport.h:44
 AliITSv11GeometrySupport.h:45
 AliITSv11GeometrySupport.h:46
 AliITSv11GeometrySupport.h:47
 AliITSv11GeometrySupport.h:48
 AliITSv11GeometrySupport.h:49
 AliITSv11GeometrySupport.h:50
 AliITSv11GeometrySupport.h:51
 AliITSv11GeometrySupport.h:52
 AliITSv11GeometrySupport.h:53
 AliITSv11GeometrySupport.h:54
 AliITSv11GeometrySupport.h:55
 AliITSv11GeometrySupport.h:56
 AliITSv11GeometrySupport.h:57
 AliITSv11GeometrySupport.h:58
 AliITSv11GeometrySupport.h:59
 AliITSv11GeometrySupport.h:60
 AliITSv11GeometrySupport.h:61
 AliITSv11GeometrySupport.h:62
 AliITSv11GeometrySupport.h:63
 AliITSv11GeometrySupport.h:64
 AliITSv11GeometrySupport.h:65
 AliITSv11GeometrySupport.h:66
 AliITSv11GeometrySupport.h:67
 AliITSv11GeometrySupport.h:68
 AliITSv11GeometrySupport.h:69
 AliITSv11GeometrySupport.h:70
 AliITSv11GeometrySupport.h:71
 AliITSv11GeometrySupport.h:72
 AliITSv11GeometrySupport.h:73
 AliITSv11GeometrySupport.h:74
 AliITSv11GeometrySupport.h:75
 AliITSv11GeometrySupport.h:76
 AliITSv11GeometrySupport.h:77
 AliITSv11GeometrySupport.h:78
 AliITSv11GeometrySupport.h:79
 AliITSv11GeometrySupport.h:80
 AliITSv11GeometrySupport.h:81
 AliITSv11GeometrySupport.h:82
 AliITSv11GeometrySupport.h:83
 AliITSv11GeometrySupport.h:84
 AliITSv11GeometrySupport.h:85
 AliITSv11GeometrySupport.h:86
 AliITSv11GeometrySupport.h:87
 AliITSv11GeometrySupport.h:88