#ifndef ALI_MUON_ST1_GEOMETRY_BUILDER_V2_H
#define ALI_MUON_ST1_GEOMETRY_BUILDER_V2_H
#include "AliMUONVGeometryBuilder.h"
#include <TExMap.h>
typedef Double_t GReal_t;
class AliMUON;
class AliMpSector;
class TTree;
class TVector2;
class TVector3;
class AliMUONSt1GeometryBuilderV2 : public AliMUONVGeometryBuilder
{
public:
AliMUONSt1GeometryBuilderV2(AliMUON* muon);
AliMUONSt1GeometryBuilderV2();
virtual ~AliMUONSt1GeometryBuilderV2();
virtual void CreateMaterials();
virtual void CreateGeometry();
virtual void SetVolumes();
virtual void SetTransformations();
virtual void SetSensitiveVolumes();
protected:
private:
AliMUONSt1GeometryBuilderV2(const AliMUONSt1GeometryBuilderV2& rMUON);
AliMUONSt1GeometryBuilderV2& operator = (const AliMUONSt1GeometryBuilderV2& rhs);
static const GReal_t fgkHzPadPlane;
static const GReal_t fgkHzFoam;
static const GReal_t fgkHzFR4;
static const GReal_t fgkHzSnPb;
static const GReal_t fgkHzKapton;
static const GReal_t fgkHzBergPlastic;
static const GReal_t fgkHzBergCopper;
static const GReal_t fgkHzDaughter;
static const GReal_t fgkHzGas;
static const GReal_t fgkHxHole;
static const GReal_t fgkHyHole;
static const GReal_t fgkHxBergPlastic;
static const GReal_t fgkHyBergPlastic;
static const GReal_t fgkHxBergCopper;
static const GReal_t fgkHyBergCopper;
static const GReal_t fgkHxKapton;
static const GReal_t fgkHyKapton;
static const GReal_t fgkHxDaughter;
static const GReal_t fgkHyDaughter;
static const GReal_t fgkOffsetX;
static const GReal_t fgkOffsetY;
static const GReal_t fgkDeltaFilleEtamX;
static const GReal_t fgkDeltaFilleEtamY;
static const GReal_t fgkDeltaQuadLHC;
static const GReal_t fgkFrameOffset;
static const GReal_t fgkPadXOffsetBP;
static const GReal_t fgkPadYOffsetBP;
static const GReal_t fgkMotherIR1;
static const GReal_t fgkMotherOR1;
static const GReal_t fgkMotherThick1;
static const GReal_t fgkMotherPhiL1;
static const GReal_t fgkMotherPhiU1;
static const GReal_t fgkMotherIR2;
static const GReal_t fgkMotherOR2;
static const GReal_t fgkMotherThick2;
static const GReal_t fgkMotherPhiL2;
static const GReal_t fgkMotherPhiU2;
static const char* fgkHoleName;
static const char* fgkQuadrantEnvelopeName;
static const char* fgkQuadrantMLayerName;
static const char* fgkQuadrantNLayerName;
static const char* fgkQuadrantFLayerName;
static const char* fgkQuadrantMFLayerName;
static const char* fgkDaughterName;
static const Int_t fgkFoamBoxNameOffset;
static const Int_t fgkFR4BoxNameOffset;
static const Int_t fgkDaughterCopyNoOffset;
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 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;
GReal_t TotalHzPlane() const ;
GReal_t TotalHzDaughter() const ;
GReal_t TotalHz() const ;
AliMUON* fMUON;
ClassDef(AliMUONSt1GeometryBuilderV2,1)
};
inline GReal_t AliMUONSt1GeometryBuilderV2::TotalHzPlane() const
{ return fgkHzFoam + fgkHzFR4; }
inline GReal_t AliMUONSt1GeometryBuilderV2::TotalHzDaughter() const
{ return fgkHzBergPlastic + fgkHzDaughter; }
inline GReal_t AliMUONSt1GeometryBuilderV2::TotalHz() const
{ return TotalHzPlane() + TotalHzDaughter(); }
inline TString AliMUONSt1GeometryBuilderV2::QuadrantMLayerName(Int_t chamber) const
{ return Form("%s%d",fgkQuadrantMLayerName,chamber); }
inline TString AliMUONSt1GeometryBuilderV2::QuadrantMFLayerName(Int_t chamber) const
{ return Form("%s%d",fgkQuadrantMFLayerName,chamber); }
inline TString AliMUONSt1GeometryBuilderV2::QuadrantNLayerName(Int_t chamber) const
{ return Form("%s%d",fgkQuadrantNLayerName,chamber); }
inline TString AliMUONSt1GeometryBuilderV2::QuadrantFLayerName(Int_t chamber) const
{ return Form("%s%d",fgkQuadrantFLayerName,chamber); }
inline TString AliMUONSt1GeometryBuilderV2::PlaneSegmentName(Int_t segNumber) const
{ return Form("S%.3d", segNumber); }
inline TString AliMUONSt1GeometryBuilderV2::FoamBoxName(Int_t segNumber) const
{ return Form("S%.3d", segNumber + fgkFoamBoxNameOffset); }
inline TString AliMUONSt1GeometryBuilderV2::FR4BoxName(Int_t segNumber) const
{ return Form("S%.3d", segNumber + fgkFR4BoxNameOffset); }
#endif //ALI_MUON_ST1_GEOMETRY_BUILDER_V2_H
AliMUONSt1GeometryBuilderV2.h:1 AliMUONSt1GeometryBuilderV2.h:2 AliMUONSt1GeometryBuilderV2.h:3 AliMUONSt1GeometryBuilderV2.h:4 AliMUONSt1GeometryBuilderV2.h:5 AliMUONSt1GeometryBuilderV2.h:6 AliMUONSt1GeometryBuilderV2.h:7 AliMUONSt1GeometryBuilderV2.h:8 AliMUONSt1GeometryBuilderV2.h:9 AliMUONSt1GeometryBuilderV2.h:10 AliMUONSt1GeometryBuilderV2.h:11 AliMUONSt1GeometryBuilderV2.h:12 AliMUONSt1GeometryBuilderV2.h:13 AliMUONSt1GeometryBuilderV2.h:14 AliMUONSt1GeometryBuilderV2.h:15 AliMUONSt1GeometryBuilderV2.h:16 AliMUONSt1GeometryBuilderV2.h:17 AliMUONSt1GeometryBuilderV2.h:18 AliMUONSt1GeometryBuilderV2.h:19 AliMUONSt1GeometryBuilderV2.h:20 AliMUONSt1GeometryBuilderV2.h:21 AliMUONSt1GeometryBuilderV2.h:22 AliMUONSt1GeometryBuilderV2.h:23 AliMUONSt1GeometryBuilderV2.h:24 AliMUONSt1GeometryBuilderV2.h:25 AliMUONSt1GeometryBuilderV2.h:26 AliMUONSt1GeometryBuilderV2.h:27 AliMUONSt1GeometryBuilderV2.h:28 AliMUONSt1GeometryBuilderV2.h:29 AliMUONSt1GeometryBuilderV2.h:30 AliMUONSt1GeometryBuilderV2.h:31 AliMUONSt1GeometryBuilderV2.h:32 AliMUONSt1GeometryBuilderV2.h:33 AliMUONSt1GeometryBuilderV2.h:34 AliMUONSt1GeometryBuilderV2.h:35 AliMUONSt1GeometryBuilderV2.h:36 AliMUONSt1GeometryBuilderV2.h:37 AliMUONSt1GeometryBuilderV2.h:38 AliMUONSt1GeometryBuilderV2.h:39 AliMUONSt1GeometryBuilderV2.h:40 AliMUONSt1GeometryBuilderV2.h:41 AliMUONSt1GeometryBuilderV2.h:42 AliMUONSt1GeometryBuilderV2.h:43 AliMUONSt1GeometryBuilderV2.h:44 AliMUONSt1GeometryBuilderV2.h:45 AliMUONSt1GeometryBuilderV2.h:46 AliMUONSt1GeometryBuilderV2.h:47 AliMUONSt1GeometryBuilderV2.h:48 AliMUONSt1GeometryBuilderV2.h:49 AliMUONSt1GeometryBuilderV2.h:50 AliMUONSt1GeometryBuilderV2.h:51 AliMUONSt1GeometryBuilderV2.h:52 AliMUONSt1GeometryBuilderV2.h:53 AliMUONSt1GeometryBuilderV2.h:54 AliMUONSt1GeometryBuilderV2.h:55 AliMUONSt1GeometryBuilderV2.h:56 AliMUONSt1GeometryBuilderV2.h:57 AliMUONSt1GeometryBuilderV2.h:58 AliMUONSt1GeometryBuilderV2.h:59 AliMUONSt1GeometryBuilderV2.h:60 AliMUONSt1GeometryBuilderV2.h:61 AliMUONSt1GeometryBuilderV2.h:62 AliMUONSt1GeometryBuilderV2.h:63 AliMUONSt1GeometryBuilderV2.h:64 AliMUONSt1GeometryBuilderV2.h:65 AliMUONSt1GeometryBuilderV2.h:66 AliMUONSt1GeometryBuilderV2.h:67 AliMUONSt1GeometryBuilderV2.h:68 AliMUONSt1GeometryBuilderV2.h:69 AliMUONSt1GeometryBuilderV2.h:70 AliMUONSt1GeometryBuilderV2.h:71 AliMUONSt1GeometryBuilderV2.h:72 AliMUONSt1GeometryBuilderV2.h:73 AliMUONSt1GeometryBuilderV2.h:74 AliMUONSt1GeometryBuilderV2.h:75 AliMUONSt1GeometryBuilderV2.h:76 AliMUONSt1GeometryBuilderV2.h:77 AliMUONSt1GeometryBuilderV2.h:78 AliMUONSt1GeometryBuilderV2.h:79 AliMUONSt1GeometryBuilderV2.h:80 AliMUONSt1GeometryBuilderV2.h:81 AliMUONSt1GeometryBuilderV2.h:82 AliMUONSt1GeometryBuilderV2.h:83 AliMUONSt1GeometryBuilderV2.h:84 AliMUONSt1GeometryBuilderV2.h:85 AliMUONSt1GeometryBuilderV2.h:86 AliMUONSt1GeometryBuilderV2.h:87 AliMUONSt1GeometryBuilderV2.h:88 AliMUONSt1GeometryBuilderV2.h:89 AliMUONSt1GeometryBuilderV2.h:90 AliMUONSt1GeometryBuilderV2.h:91 AliMUONSt1GeometryBuilderV2.h:92 AliMUONSt1GeometryBuilderV2.h:93 AliMUONSt1GeometryBuilderV2.h:94 AliMUONSt1GeometryBuilderV2.h:95 AliMUONSt1GeometryBuilderV2.h:96 AliMUONSt1GeometryBuilderV2.h:97 AliMUONSt1GeometryBuilderV2.h:98 AliMUONSt1GeometryBuilderV2.h:99 AliMUONSt1GeometryBuilderV2.h:100 AliMUONSt1GeometryBuilderV2.h:101 AliMUONSt1GeometryBuilderV2.h:102 AliMUONSt1GeometryBuilderV2.h:103 AliMUONSt1GeometryBuilderV2.h:104 AliMUONSt1GeometryBuilderV2.h:105 AliMUONSt1GeometryBuilderV2.h:106 AliMUONSt1GeometryBuilderV2.h:107 AliMUONSt1GeometryBuilderV2.h:108 AliMUONSt1GeometryBuilderV2.h:109 AliMUONSt1GeometryBuilderV2.h:110 AliMUONSt1GeometryBuilderV2.h:111 AliMUONSt1GeometryBuilderV2.h:112 AliMUONSt1GeometryBuilderV2.h:113 AliMUONSt1GeometryBuilderV2.h:114 AliMUONSt1GeometryBuilderV2.h:115 AliMUONSt1GeometryBuilderV2.h:116 AliMUONSt1GeometryBuilderV2.h:117 AliMUONSt1GeometryBuilderV2.h:118 AliMUONSt1GeometryBuilderV2.h:119 AliMUONSt1GeometryBuilderV2.h:120 AliMUONSt1GeometryBuilderV2.h:121 AliMUONSt1GeometryBuilderV2.h:122 AliMUONSt1GeometryBuilderV2.h:123 AliMUONSt1GeometryBuilderV2.h:124 AliMUONSt1GeometryBuilderV2.h:125 AliMUONSt1GeometryBuilderV2.h:126 AliMUONSt1GeometryBuilderV2.h:127 AliMUONSt1GeometryBuilderV2.h:128 AliMUONSt1GeometryBuilderV2.h:129 AliMUONSt1GeometryBuilderV2.h:130 AliMUONSt1GeometryBuilderV2.h:131 AliMUONSt1GeometryBuilderV2.h:132 AliMUONSt1GeometryBuilderV2.h:133 AliMUONSt1GeometryBuilderV2.h:134 AliMUONSt1GeometryBuilderV2.h:135 AliMUONSt1GeometryBuilderV2.h:136 AliMUONSt1GeometryBuilderV2.h:137 AliMUONSt1GeometryBuilderV2.h:138 AliMUONSt1GeometryBuilderV2.h:139 AliMUONSt1GeometryBuilderV2.h:140 AliMUONSt1GeometryBuilderV2.h:141 AliMUONSt1GeometryBuilderV2.h:142 AliMUONSt1GeometryBuilderV2.h:143 AliMUONSt1GeometryBuilderV2.h:144 AliMUONSt1GeometryBuilderV2.h:145 AliMUONSt1GeometryBuilderV2.h:146 AliMUONSt1GeometryBuilderV2.h:147 AliMUONSt1GeometryBuilderV2.h:148 AliMUONSt1GeometryBuilderV2.h:149 AliMUONSt1GeometryBuilderV2.h:150 AliMUONSt1GeometryBuilderV2.h:151 AliMUONSt1GeometryBuilderV2.h:152 AliMUONSt1GeometryBuilderV2.h:153 AliMUONSt1GeometryBuilderV2.h:154 AliMUONSt1GeometryBuilderV2.h:155 AliMUONSt1GeometryBuilderV2.h:156 AliMUONSt1GeometryBuilderV2.h:157 AliMUONSt1GeometryBuilderV2.h:158 AliMUONSt1GeometryBuilderV2.h:159 AliMUONSt1GeometryBuilderV2.h:160 AliMUONSt1GeometryBuilderV2.h:161 AliMUONSt1GeometryBuilderV2.h:162 AliMUONSt1GeometryBuilderV2.h:163 AliMUONSt1GeometryBuilderV2.h:164 AliMUONSt1GeometryBuilderV2.h:165 AliMUONSt1GeometryBuilderV2.h:166 AliMUONSt1GeometryBuilderV2.h:167 AliMUONSt1GeometryBuilderV2.h:168 AliMUONSt1GeometryBuilderV2.h:169 AliMUONSt1GeometryBuilderV2.h:170 AliMUONSt1GeometryBuilderV2.h:171 AliMUONSt1GeometryBuilderV2.h:172 AliMUONSt1GeometryBuilderV2.h:173 AliMUONSt1GeometryBuilderV2.h:174 AliMUONSt1GeometryBuilderV2.h:175 AliMUONSt1GeometryBuilderV2.h:176 AliMUONSt1GeometryBuilderV2.h:177 AliMUONSt1GeometryBuilderV2.h:178 AliMUONSt1GeometryBuilderV2.h:179 AliMUONSt1GeometryBuilderV2.h:180 AliMUONSt1GeometryBuilderV2.h:181 AliMUONSt1GeometryBuilderV2.h:182 AliMUONSt1GeometryBuilderV2.h:183 AliMUONSt1GeometryBuilderV2.h:184 AliMUONSt1GeometryBuilderV2.h:185 AliMUONSt1GeometryBuilderV2.h:186 AliMUONSt1GeometryBuilderV2.h:187 AliMUONSt1GeometryBuilderV2.h:188 AliMUONSt1GeometryBuilderV2.h:189 AliMUONSt1GeometryBuilderV2.h:190 AliMUONSt1GeometryBuilderV2.h:191 AliMUONSt1GeometryBuilderV2.h:192 AliMUONSt1GeometryBuilderV2.h:193 AliMUONSt1GeometryBuilderV2.h:194 AliMUONSt1GeometryBuilderV2.h:195 AliMUONSt1GeometryBuilderV2.h:196 AliMUONSt1GeometryBuilderV2.h:197 AliMUONSt1GeometryBuilderV2.h:198 AliMUONSt1GeometryBuilderV2.h:199 AliMUONSt1GeometryBuilderV2.h:200