Remove the dollar-id-dollar in the responsible name which interfere with CDB_MD metad...
[u/mrichter/AliRoot.git] / MUON / AliMUONTriggerGeometryBuilder.h
CommitLineData
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
18class AliMUON;
19
20class 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