]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSv11GeometrySupport.h
Fix for coverity (Annalisa De Caro).
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySupport.h
index 97e4c907d0e3f4d191d36a260155a26a0255e017..bbf61dbb29e12ac80aabd1885203464b304fa69f 100644 (file)
@@ -3,52 +3,85 @@
 /* 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 "AliITSv11Geometry.h"
+#include <TGeoManager.h>
+#include <TGeoCompositeShape.h>
+#include <TGeoXtru.h>
+
 class TGeoVolume;
 
 class AliITSv11GeometrySupport : public AliITSv11Geometry {
   public:
     AliITSv11GeometrySupport(){};
-    AliITSv11GeometrySupport(Bool_t debug):AliITSv11Geometry(debug){};
+    AliITSv11GeometrySupport(Int_t debug):AliITSv11Geometry(debug){};
     virtual ~AliITSv11GeometrySupport(){};
     //
-    virtual void SPDCone(TGeoVolume *Moth);
-    virtual void SPDThermalSheald(TGeoVolume *Moth);
-    virtual void SDDCone(TGeoVolume *Moth);
-    virtual void SSDCone(TGeoVolume *Moth);
-    virtual void ServicesCableSupport(TGeoVolume *Moth);
+    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:
-    // some local useful functions
-    static Double_t RmaxFromZpCone(const Double_t *ar,const Double_t *az,
-                                   Double_t tc,Double_t z,
-                                   Double_t th=0.0){
-        return AliITSv11Geometry::RFromZpCone(ar,az,4,tc,z,th);};
-    static Double_t RminFromZpCone(const Double_t *ar,const Double_t *az,
-                                   Double_t tc,Double_t z,Double_t th=0.0){
-        return AliITSv11Geometry::RFromZpCone(ar,az,3,tc,z,th);};
-    static Double_t ZFromRmaxpCone(const Double_t *ar,const Double_t *az,
-                                   Double_t tc,Double_t r,
-                                   Double_t th=0.0){
-        return AliITSv11Geometry::ZFromRmaxpCone(ar,az,4,tc,r,th);};
-    //
-    static Double_t RmaxFromZpCone(const TGeoPcon *p,Double_t tc,Double_t z,
-                                   Double_t th=0.0){
-        return AliITSv11Geometry::RmaxFromZpCone(p,4,tc,z,th);};
-    static Double_t RminFromZpCone(const TGeoPcon *p,Double_t tc,Double_t z,
-                                   Double_t th=0.0){
-        return AliITSv11Geometry::RminFromZpCone(p,3,tc,z,th);};
-    static Double_t ZFromRmaxpCone(const TGeoPcon *p,Double_t tc,Double_t r,
-                                   Double_t th=0.0)
-        {return AliITSv11Geometry::ZFromRmaxpCone(p,4,tc,r,th);};
-    static Double_t ZFromRminpCone(const TGeoPcon *p,Double_t tc,Double_t r,
-                                   Double_t th=0.0)
-        {return AliITSv11Geometry::ZFromRminpCone(p,3,tc,r,th);};
 
   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
 };