]>
Commit | Line | Data |
---|---|---|
30178c30 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
d1cd2474 | 4 | // $Id$ |
30178c30 | 5 | // Revision of includes 07/05/2004 |
d1cd2474 | 6 | // |
5398f946 | 7 | /// \ingroup sim |
692de412 | 8 | /// \class AliMUONTriggerGeometryBuilder |
9 | /// \brief MUON Trigger stations geometry construction class | |
10 | /// | |
d1525c79 | 11 | /// \author Philippe Crochet (LPCCFd) |
d1cd2474 | 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); | |
d1cd2474 | 24 | AliMUONTriggerGeometryBuilder(); |
25 | virtual ~AliMUONTriggerGeometryBuilder(); | |
d1cd2474 | 26 | |
27 | // methods | |
28 | virtual void CreateGeometry(); | |
b96f7067 | 29 | virtual void SetVolumes(); |
d1cd2474 | 30 | virtual void SetTransformations(); |
31 | virtual void SetSensitiveVolumes(); | |
71a2d3aa | 32 | |
33 | /// Do not apply global transformation (geometry is defined in the new ALICE reference frame) | |
067866a3 | 34 | virtual bool ApplyGlobalTransformation() { return false; } |
d1cd2474 | 35 | |
30178c30 | 36 | protected: |
161d3338 | 37 | |
38 | private: | |
71a2d3aa | 39 | /// Not implemented |
30178c30 | 40 | AliMUONTriggerGeometryBuilder(const AliMUONTriggerGeometryBuilder& rhs); |
71a2d3aa | 41 | /// Not implemented |
30178c30 | 42 | AliMUONTriggerGeometryBuilder& operator = (const AliMUONTriggerGeometryBuilder& rhs); |
71a2d3aa | 43 | |
0a31b522 | 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 | |
d1cd2474 | 126 | |
692de412 | 127 | ClassDef(AliMUONTriggerGeometryBuilder,1) // MUON Trigger stations geometry construction class |
d1cd2474 | 128 | }; |
129 | ||
130 | #endif //ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H |