LCOV - code coverage report
Current view: top level - MUON/MUONsim - AliMUONTriggerGeometryBuilder.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 2 100.0 %
Date: 2016-06-14 17:26:59 Functions: 3 6 50.0 %

          Line data    Source code
       1             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       2             :  * See cxx source for full Copyright notice                               */
       3             : 
       4             : // $Id$
       5             : // Revision of includes 07/05/2004
       6             : //
       7             : /// \ingroup sim
       8             : /// \class AliMUONTriggerGeometryBuilder
       9             : /// \brief MUON Trigger stations geometry construction class
      10             : ///
      11             : /// \author Philippe Crochet (LPCCFd)
      12             : 
      13             : #ifndef ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H
      14             : #define ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H
      15             : 
      16             : #include "AliMUONVGeometryBuilder.h"
      17             : 
      18             : class AliMUON;
      19             : 
      20             : class AliMUONTriggerGeometryBuilder : public AliMUONVGeometryBuilder
      21             : {
      22             :   public:
      23             :     AliMUONTriggerGeometryBuilder(AliMUON* muon);
      24             :     AliMUONTriggerGeometryBuilder();
      25             :     virtual ~AliMUONTriggerGeometryBuilder();
      26             :   
      27             :     // methods
      28             :     virtual void CreateGeometry();
      29             :     virtual void SetVolumes();
      30             :     virtual void SetTransformations();
      31             :     virtual void SetSensitiveVolumes();
      32             :     
      33             :     /// Do not apply global transformation (geometry is defined in the new ALICE reference frame)
      34          10 :     virtual bool ApplyGlobalTransformation() { return false; }
      35             :     
      36             :   protected:  
      37             :     
      38             :   private:
      39             :     /// Not implemented
      40             :     AliMUONTriggerGeometryBuilder(const AliMUONTriggerGeometryBuilder& rhs);
      41             :     /// Not implemented
      42             :     AliMUONTriggerGeometryBuilder& operator = (const AliMUONTriggerGeometryBuilder& rhs);
      43             : 
      44             :     // methods
      45             :     void BuildChamberPrototype(Int_t icount) const;  
      46             :     void BuildRPCSupportsVertical(Int_t& iVolNum, Int_t icount) const;    
      47             :     void BuildRPCSupportsHorizontal(Int_t icount) const;    
      48             :     void BuildAngularSupportForChambers(Int_t icount) const;  
      49             :     void BuildGasPipes(Int_t icount) const;         
      50             :     void BuildChamberTypeA(Int_t& iVolNum, Int_t icount);  
      51             :     void BuildChamberTypeB(Int_t& iVolNum, Int_t icount);  
      52             :     void BuildChamberTypeD(Int_t& iVolNum, Int_t icount);  
      53             :     void BuildChamberTypeE(Int_t& iVolNum, Int_t icount);  
      54             :     void BuildChamberTypeF(Int_t& iVolNum, Int_t icount);  
      55             : 
      56             :     // constants
      57             :     
      58             :     static const Float_t fgkDXZERO; ///<  vertical gap between right and left chambers (kDXZERO*2=4cm)
      59             : 
      60             :     // main distances for chamber definition in first plane/first station
      61             :     static const Float_t fgkXMIN; ///< xmin distance in first plane/first station    
      62             :     static const Float_t fgkXMED; ///< xmed distance in first plane/first station                                 
      63             :     static const Float_t fgkXMAX; ///< xmax distance in first plane/first station  
      64             : 
      65             :     // 090704 kXMAX changed from 272 to 255.
      66             :     // (see fig.2-4 & 2-5 of Local Trigger Board PRR)
      67             :     // segmentation updated accordingly
      68             :     static const Float_t fgkYMIN; ///< add                             
      69             :     static const Float_t fgkYMAX; ///< add                            
      70             : 
      71             :     // inner/outer radius of flange between beam shield. and chambers (1/station)
      72             :     //    static const Float_t fgkRMIN[2]={50.,50.};
      73             :     //    static const Float_t fgkRMAX[2]={64.,68.};
      74             :     // z position of the middle of the gas gap in mother vol 
      75             :     static const Float_t fgkZm; ///< inner radius of flange between beam shield. and chambers (1/station)
      76             :     static const Float_t fgkZp; ///< outer radius of flange between beam shield. and chambers (1/station)
      77             :     
      78             :     static const Float_t fgkYVSup[4]; ///< y positions of vertical supports
      79             : 
      80             :     static const Float_t fgkSizeVSupExt[3]; ///< ext dimensions of vertical supports 
      81             :     static const Float_t fgkSizeVSupInt[3]; ///< int dimensions of vertical supports  
      82             : 
      83             :     static const Float_t fgkSizeSupport1V[3]; ///< transverse dimensions of 1V angular supports 
      84             :     static const Float_t fgkSizeSupport1H[3]; ///< transverse dimensions of 1H angular supports 
      85             :        // z should be 1.4 in the installed set-up 
      86             :     static const Float_t fgkSizeSupport2V[3]; ///< transverse dimensions of 2V angular supports  
      87             :     static const Float_t fgkSizeSupport2H[3]; ///< transverse dimensions of 2H angular supports  
      88             :     static const Float_t fgkSizeSupportXV[3]; ///< transverse dimensions of XV angular supports 
      89             :     static const Float_t fgkSizeSupportXH[3]; ///< transverse dimensions of XH angular supports 
      90             : 
      91             :     static const Float_t fgkSizeSupportCable[3]; /// transverse dimensions of horizontal cable supports
      92             :     static const Float_t fgkSizeGasPipe[3]; ///< dimensions of gas pipes (inner and outer radius)
      93             : 
      94             :     static const Float_t fgkOffsetGasPipe;  ///< Position of gas pipe with respect to angular support
      95             :     static const Float_t fgkAvoidExtrusion; ///<  Small cut on some volumes to avoid extrusion from SC1x
      96             :     
      97             :     // 
      98             :     TString GetVolumeName(const TString& volume, Int_t icount) const; 
      99             :     TString GetVolEnvName(Int_t icount, Int_t ienv) const; 
     100             :     TString GetVolAluAngSuppName(
     101             :                      const TString& type1234X, 
     102             :                      const TString& typeHV,
     103             :                      Int_t icount) const;                      
     104             :     TString GetVolEnvSuppAngName(
     105             :                      const TString& type1234X, 
     106             :                      const TString& typeHV, 
     107             :                      const TString& typeABDEF,
     108             :                      Int_t icount, Int_t ivol) const;                      
     109             :     TString GetVolEnvInoxGasPipeName(
     110             :                      const TString& type12, 
     111             :                      const TString& typeABCDEF,
     112             :                      Int_t icount, Int_t ivol) const;                      
     113             :                            
     114             :     
     115             :     // data members 
     116             :     AliMUON*  fMUON;   ///< the MUON detector class 
     117             :     Int_t*    fIdtmed; //!<! tracking media   
     118             :     Int_t     fIdAir;  //!<! medium 1
     119             :     Int_t     fIdAlu1; //!<! medium 4
     120             :     Int_t     fIdInox; //!<! medium 29 Stainless Steel (18%Cr,9%Ni,Fe)
     121             :     Float_t   fYEnvPsave; //!<! add
     122             :     Float_t   fYEnvMsave; //!<! add
     123             :     Float_t   fDYsave;    //!<! add
     124             :     Float_t   fDXsave;    //!<! add
     125             :     TGeoRotation fRsupportpipe; ///< pipe support rotation 
     126             :         
     127          52 :   ClassDef(AliMUONTriggerGeometryBuilder,2) // MUON Trigger stations geometry construction class
     128             : };
     129             : 
     130             : #endif //ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H

Generated by: LCOV version 1.11