]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSt1GeometryBuilderV2.h
Update HFE v2 analyses
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1GeometryBuilderV2.h
index 93c5a478d63a1ab9e9ed96c00ccdf0962c129ee6..72c161f4369b1d533db6c750bbf70df82d7d5f46 100644 (file)
@@ -4,7 +4,7 @@
 // $Id$
 // Revision of includes 07/05/2004
 //
-/// \ingroup base
+/// \ingroup sim
 /// \class AliMUONSt1GeometryBuilderV2
 /// \brief MUON Station1 detailed geometry construction class
 ///
 
 #include "AliMUONVGeometryBuilder.h"
 
-#include "AliMpContainers.h"
+#include <TExMap.h>
 
-#ifdef WITH_ROOT
-  #include "TExMap.h"
-#endif
-
-#ifdef WITH_STL
-  #include <map>
-#endif
-
-#ifdef WITH_ROOT
-  typedef  TExMap  SpecialMap;
-#endif
-
-#ifdef WITH_STL
-  typedef map<Int_t , AliMUONSt1SpecialMotif> SpecialMap;
-#endif
-
-//typedef Float_t GReal_t; // for AliGeant3
+// typedef Float_t GReal_t; // for AliGeant3
 typedef Double_t GReal_t;  // for VirtualMC
 
 class AliMUON;
@@ -48,19 +32,23 @@ class AliMUONSt1GeometryBuilderV2 : public AliMUONVGeometryBuilder
 {
   public:
     AliMUONSt1GeometryBuilderV2(AliMUON* muon);
-    AliMUONSt1GeometryBuilderV2(const AliMUONSt1GeometryBuilderV2& rMUON);
     AliMUONSt1GeometryBuilderV2();
     virtual ~AliMUONSt1GeometryBuilderV2();
 
     virtual void CreateMaterials();
     virtual void CreateGeometry();
+    virtual void SetVolumes();
     virtual void SetTransformations();
     virtual void SetSensitiveVolumes();
    
   protected:
-    AliMUONSt1GeometryBuilderV2& operator = (const AliMUONSt1GeometryBuilderV2& rhs);    
  
   private:
+    /// Not implemented
+    AliMUONSt1GeometryBuilderV2(const AliMUONSt1GeometryBuilderV2& rMUON);
+    /// Not implemented
+    AliMUONSt1GeometryBuilderV2& operator = (const AliMUONSt1GeometryBuilderV2& rhs);    
+
     // Constants
     //
     static const GReal_t fgkHzPadPlane;    ///< Pad plane
@@ -115,6 +103,7 @@ class AliMUONSt1GeometryBuilderV2 : public AliMUONVGeometryBuilder
     static const char* fgkQuadrantMLayerName;///< prefix for automatic volume naming
     static const char* fgkQuadrantNLayerName;///< prefix for automatic volume naming
     static const char* fgkQuadrantFLayerName;///< prefix for automatic volume naming
+    static const char* fgkQuadrantMFLayerName;    ///< prefix for automatic volume naming
     static const char* fgkDaughterName;      ///< prefix for automatic volume naming
     static const Int_t fgkFoamBoxNameOffset; ///< coefficient for automatic volume naming
     static const Int_t fgkFR4BoxNameOffset;  ///< coefficient for automatic volume naming
@@ -126,31 +115,34 @@ class AliMUONSt1GeometryBuilderV2 : public AliMUONVGeometryBuilder
     void CreateHole();
     void CreateDaughterBoard();
     void CreateInnerLayers();
+    void CreateSpacer0();
+    void CreateSpacer();
     void CreateQuadrant(Int_t chamber);
     void CreateFoamBox(Int_t segNumber, const TVector2& dimensions);
     void CreatePlaneSegment(Int_t segNumber, const TVector2& dimensions,
                      Int_t nofHoles);
+    void CreateQuadrantLayersAsVolumes(Int_t chamber);
+    void CreateQuadrantLayersAsAssemblies(Int_t chamber);
     void CreateFrame(Int_t chamber);
 
     void PlaceInnerLayers(Int_t chamber);
-    void PlaceSector(AliMpSector* sector, SpecialMap specialMap,
+    void PlaceSpacer0(Int_t chamber);
+    void PlaceSector(const AliMpSector* sector, TExMap specialMap,
                      const TVector3& where, Bool_t reflectZ, Int_t chamber);
                     
     TString QuadrantEnvelopeName(Int_t chamber, Int_t quadrant) const;
     TString QuadrantMLayerName(Int_t chamber) const;
     TString QuadrantNLayerName(Int_t chamber) const;
     TString QuadrantFLayerName(Int_t chamber) const;
+    TString QuadrantMFLayerName(Int_t chamber) const;
     TString PlaneSegmentName(Int_t segNumber) const;
     TString FoamBoxName(Int_t segNumber) const;
     TString FR4BoxName(Int_t segNumber) const;
     TString GasVolumeName(const TString& name, Int_t chamber) const;
 
-    void   AddChamberGid(Int_t id,Int_t volName,Int_t idx);
-    //Bool_t IsInChamber(Int_t ich, Int_t volGid) const;   
-
-    GReal_t TotalHzPlane() const ;         // Total mechanical plane half Size
-    GReal_t TotalHzDaughter() const ;      // Total daughter plane half Size
-    GReal_t TotalHz() const ;              // Total plane half Size
+    GReal_t TotalHzPlane() const ; 
+    GReal_t TotalHzDaughter() const ;
+    GReal_t TotalHz() const ;
        
     // Data members
     //
@@ -164,31 +156,44 @@ class AliMUONSt1GeometryBuilderV2 : public AliMUONVGeometryBuilder
 
 // inline functions
 
+/// Return total mechanical plane half Size
 inline GReal_t AliMUONSt1GeometryBuilderV2::TotalHzPlane() const 
 //{ return fgkHzPadPlane + fgkHzFoam + fgkHzFR4; }
 { return fgkHzFoam + fgkHzFR4; }
 
+/// Return total daughter plane half Size
 inline GReal_t AliMUONSt1GeometryBuilderV2::TotalHzDaughter() const 
 { return fgkHzBergPlastic + fgkHzDaughter; }
 
+/// Return total plane half Size
 inline GReal_t AliMUONSt1GeometryBuilderV2::TotalHz() const 
 { return TotalHzPlane() + TotalHzDaughter(); }
 
+/// Return middle quadrant layer name for chamber \a chamber
 inline TString AliMUONSt1GeometryBuilderV2::QuadrantMLayerName(Int_t chamber) const
 { return Form("%s%d",fgkQuadrantMLayerName,chamber); }
 
+/// Return middle quadrant frame layer name for chamber \a chamber
+inline TString AliMUONSt1GeometryBuilderV2::QuadrantMFLayerName(Int_t chamber) const
+{ return Form("%s%d",fgkQuadrantMFLayerName,chamber); }
+
+/// Return nearer quadrant layer name for chamber \a chamber
 inline TString AliMUONSt1GeometryBuilderV2::QuadrantNLayerName(Int_t chamber) const
 { return Form("%s%d",fgkQuadrantNLayerName,chamber); }
 
+/// Return farther quadrant layer name for chamber \a chamber
 inline TString AliMUONSt1GeometryBuilderV2::QuadrantFLayerName(Int_t chamber) const
 { return Form("%s%d",fgkQuadrantFLayerName,chamber); }
 
+/// Return plane segment name for segment \a segNumber
 inline TString AliMUONSt1GeometryBuilderV2::PlaneSegmentName(Int_t segNumber) const
 { return Form("S%.3d", segNumber); }
 
+/// Return foam box name for segment \a segNumber
 inline TString AliMUONSt1GeometryBuilderV2::FoamBoxName(Int_t segNumber) const
 { return Form("S%.3d", segNumber + fgkFoamBoxNameOffset); }
 
+/// Return FR4 box name for segment \a segNumber
 inline TString AliMUONSt1GeometryBuilderV2::FR4BoxName(Int_t segNumber) const
 { return Form("S%.3d", segNumber + fgkFR4BoxNameOffset); }