]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSv11GeometrySPD.h
cleanup
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySPD.h
index 90e1a7e65aa98ad49df5b3b30f1d36a367c3c63f..3626bf685af8d988b500374d739cdec1fa186091 100644 (file)
@@ -1,11 +1,11 @@
 #ifndef ALIITSV11GEOMETRYSPD_H
 #define ALIITSV11GEOMETRYSPD_H
 
-/* 
+/*
  * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved.
  * See cxx source for full Copyright notice.
  */
-  
+
  // Implementation of the SPD v11 central geometry.
  // Contains also:
  //  - the materials/media used for its volumes;
@@ -17,6 +17,7 @@
  * $Id$
  */
 
+#include <TArrayD.h>
 #include <TGeoManager.h>
 #include <TVirtualMC.h>
 #include <TString.h>
 class TGeoVolume;
 class TGeoCompositeShape;
 
+using std::istream;
+
 class AliITSv11GeometrySPD : public AliITSv11Geometry
 {
  public:
+
     // Default constructor
     AliITSv11GeometrySPD(/*Double_t gap = 0.0075*/);
     // Standard Constructor
@@ -42,37 +46,21 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
     // Destructor
     virtual ~AliITSv11GeometrySPD() {};
 
-    /* Settings */
-
-    // define/create materials
-    virtual Int_t CreateSPDCentralMaterials(Int_t &medOffset,
-                                            Int_t &matOffset) const;
-    // set SPD Central, GEANT3 type, tracking parameters
-    virtual void InitSPDCentral(Int_t offset, TVirtualMC *mc = gMC) const;
-
-    /* Monitoring */
-
-    // creates standard figures for the documentation of this class
-    virtual void CreateFigure0(const Char_t *path = "",
-                               const Char_t *type = "gif",
-                               TGeoManager *mgr = gGeoManager) const;
-    // fill TPolylines with crossections of the SPD Carbon fiber sectors.
-    Bool_t Make2DCrossSections(TPolyLine &a0, TPolyLine &a1, TPolyLine &b0,
-                               TPolyLine &b1, TPolyMarker &p) const;
-
     /* Services */
 
     // get names
-    virtual const char *GetSenstiveVolumeName1() const 
+    virtual const char *GetSenstiveVolumeName1() const
         {return "ITSSPDlay1-sensor";}
-    virtual const char *GetSenstiveVolumeName2() const 
+    virtual const char *GetSenstiveVolumeName2() const
         {return "ITSSPDlay2-sensor";}
     virtual const char *GetSenstiveVolumeName(Int_t lay) const
         {return (lay==1) ? GetSenstiveVolumeName1():GetSenstiveVolumeName2();}
     // get medium
     virtual TGeoMedium* GetMedium(const char* mediumName,
-                                  TGeoManager *mgr = gGeoManager) const;
+                                  const TGeoManager *mgr = gGeoManager) const;
     // retrieve the mounting location and rotation needed to mount an SPD stave
+    virtual Int_t GetSPDsectorX0Size() const
+        {return fSPDsectorX0.GetSize();}
     virtual Bool_t GetSectorMountingPoints(Int_t index, Double_t &x0,
                                Double_t &y0, Double_t &x1, Double_t &y1) const;
     // displace the staves on the carbon fiber sector
@@ -82,7 +70,7 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
     // print class in ascii form to stream
     virtual void PrintAscii(ostream *os) const;
     // read in class in ascii form from stream
-    virtual void ReadAscii(istream *is);        
+    virtual void ReadAscii(istream *is);
 
     /* Parts of the geometry */
 
@@ -93,25 +81,27 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
     virtual TGeoVolume* CreateClip(TArrayD &sizes,Bool_t isDummy,
                                    TGeoManager *mgr = gGeoManager) const;
     // the grounding foil (splitted in many components)
-    //virtual TGeoVolumeAssembly* CreateGroundingFoilSingle(Int_t type,
-    //                 TArrayD &sizes, TGeoManager *mgr = gGeoManager) const;
     virtual  TGeoCompositeShape* CreateGroundingFoilShape(Int_t itype,
         Double_t &length,Double_t &width,Double_t thickness,TArrayD &sizes);
-    virtual TGeoVolume* CreateGroundingFoil(Bool_t isRight, TArrayD &sizes,
+    virtual TGeoVolumeAssembly* CreateGroundingFoil(Bool_t isRight, TArrayD &sizes,
                                         TGeoManager *mgr = gGeoManager);
     // the MCM (thin part + thick part with chips inside)
     virtual TGeoVolumeAssembly* CreateMCM(Bool_t isRight, TArrayD &sizes,
                                        TGeoManager *mgr = gGeoManager) const;
     // the pixel bus (flat part + pt1000s + large capacitors/resistors)
-    virtual TGeoVolumeAssembly* CreatePixelBus(Bool_t isRight, TArrayD &sizes,
+    virtual TGeoVolumeAssembly* CreatePixelBus(Bool_t isRight, Int_t layer, TArrayD &sizes,
                                         TGeoManager *mgr = gGeoManager) const;
     // the extender complicated geometry
     virtual TGeoVolume* CreateExtender(const Double_t *params,
                               const TGeoMedium *medium, TArrayD &sizes) const;
-    // the Pixel Bus & extenders (old method which will be removed)
-    virtual TGeoVolumeAssembly* CreatePixelBusAndExtensions(Bool_t zpos=kTRUE,
+                                        
+    virtual TGeoVolume* CreatePatchPanel(TArrayD &sizes,
                                         TGeoManager *mgr = gGeoManager) const;
-    // a half-stave (put together ladders + MCM + bus, and add clips 
+
+    virtual TList* CreateConeModule(Bool_t sideC, const Double_t angle,
+                                   TGeoManager *mgr = gGeoManager) const;
+    virtual void CreateCones(TGeoVolume *moth) const;
+    // a half-stave (put together ladders + MCM + bus, and add clips
     // if requested)
     virtual TGeoVolumeAssembly* CreateHalfStave(Bool_t isRight, Int_t layer,
                  Int_t idxCentral, Int_t idxSide,TArrayD &sizes/*,
@@ -120,7 +110,7 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
     virtual TGeoVolumeAssembly* CreateStave(Int_t layer, TArrayD &sizes,
              /*Bool_t addClips = kFALSE,*/TGeoManager *mgr = gGeoManager);
     // the complete Carbon Fiber sector (support + staves)
-    virtual void CarbonFiberSector(TGeoVolume *moth, Double_t &xAAtubeCenter0,
+    virtual void CarbonFiberSector(TGeoVolume *moth, Int_t sect, Double_t &xAAtubeCenter0,
                      Double_t &yAAtubeCenter0, TGeoManager *mgr = gGeoManager);
     // the whole SPD barrel (the 10 sectors at once)
     virtual void SPDSector(TGeoVolume *moth, TGeoManager *mgr = gGeoManager);
@@ -140,15 +130,15 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
  private:
     // NOTE:
     // all of the member functions which define a component of the final SPD
-    // will need to be defined as private once the design is fixed and 
+    // will need to be defined as private once the design is fixed and
     // does not need any longer to be checked and debugged.
 
     /* Service methods for internal use only */
 
-    // compute shape of the SPD Sector given specific inputs 
+    // compute shape of the SPD Sector given specific inputs
     void SPDsectorShape(Int_t n,const Double_t *xc, const Double_t *yc,
                         const Double_t *r,const Double_t *ths,
-                        const Double_t *the, Int_t npr,Int_t &m, 
+                        const Double_t *the, Int_t npr,Int_t &m,
                         Double_t **xp, Double_t **yp) const;
     // compute a point o a line parallel to a given direction
     // and with a fixed distance from it
@@ -163,14 +153,14 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
 
     /* Data members */
 
-    static const Double_t fgkGapLadder;// thicknes of the empty (air) gap left 
-                               // between the ladder and the grounding 
+    static const Double_t fgkGapLadder;// thicknes of the empty (air) gap left
+                               // between the ladder and the grounding
                                // foil for alignment
     static const Double_t fgkGapHalfStave;//thickness of the empty (air) gap
                                           // left between HS and Carbon Suport
     Bool_t  fAddStave[6];      // [DEBUG] must be TRUE for all staves
-                              // which will be mounted in the sector 
-                               // (used to check overlaps)             
+                              // which will be mounted in the sector
+                               // (used to check overlaps)
     TArrayD fSPDsectorX0;      // X of first edge of sector plane for stave
     TArrayD fSPDsectorY0;      // Y of first edge of sector plane for stave
     TArrayD fSPDsectorX1;      // X of second edge of sector plane for stave