AliRoot Core  edcc906 (edcc906)
AliMUONTriggerGeometryBuilder.h
Go to the documentation of this file.
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 //
12 
13 #ifndef ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H
14 #define ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H
15 
17 
18 class AliMUON;
19 
21 {
22  public:
26 
27  // methods
28  virtual void CreateGeometry();
29  virtual void SetVolumes();
30  virtual void SetTransformations();
31  virtual void SetSensitiveVolumes();
32 
34  virtual bool ApplyGlobalTransformation() { return false; }
35 
36  protected:
37 
38  private:
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;
59 
60  // main distances for chamber definition in first plane/first station
61  static const Float_t fgkXMIN;
62  static const Float_t fgkXMED;
63  static const Float_t fgkXMAX;
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;
69  static const Float_t fgkYMAX;
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;
76  static const Float_t fgkZp;
77 
78  static const Float_t fgkYVSup[4];
79 
80  static const Float_t fgkSizeVSupExt[3];
81  static const Float_t fgkSizeVSupInt[3];
82 
83  static const Float_t fgkSizeSupport1V[3];
84  static const Float_t fgkSizeSupport1H[3];
85  // z should be 1.4 in the installed set-up
86  static const Float_t fgkSizeSupport2V[3];
87  static const Float_t fgkSizeSupport2H[3];
88  static const Float_t fgkSizeSupportXV[3];
89  static const Float_t fgkSizeSupportXH[3];
90 
91  static const Float_t fgkSizeSupportCable[3];
92  static const Float_t fgkSizeGasPipe[3];
93 
94  static const Float_t fgkOffsetGasPipe;
95  static const Float_t fgkAvoidExtrusion;
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
117  Int_t* fIdtmed;
118  Int_t fIdAir;
119  Int_t fIdAlu1;
120  Int_t fIdInox;
121  Float_t fYEnvPsave;
122  Float_t fYEnvMsave;
123  Float_t fDYsave;
124  Float_t fDXsave;
125  TGeoRotation fRsupportpipe;
126 
127  ClassDef(AliMUONTriggerGeometryBuilder,2) // MUON Trigger stations geometry construction class
128 };
129 
130 #endif //ALI_MUON_TRIGGER_GEOMETRY_BUILDER_H
static const Float_t fgkAvoidExtrusion
Small cut on some volumes to avoid extrusion from SC1x.
static const Float_t fgkDXZERO
vertical gap between right and left chambers (kDXZERO*2=4cm)
Abstract base class for geometry construction per module(s)
virtual void SetVolumes()
and eventually the mother volume name should be defined
static const Float_t fgkXMED
xmed distance in first plane/first station
void BuildRPCSupportsVertical(Int_t &iVolNum, Int_t icount) const
void BuildRPCSupportsHorizontal(Int_t icount) const
Int_t fIdInox
! medium 29 Stainless Steel (18Cr,9Ni,Fe)
static const Float_t fgkSizeSupportXV[3]
transverse dimensions of XV angular supports
virtual bool ApplyGlobalTransformation()
Do not apply global transformation (geometry is defined in the new ALICE reference frame) ...
AliDetector class for MUON subsystem providing simulation data management.
Definition: AliMUON.h:37
static const Float_t fgkSizeGasPipe[3]
transverse dimensions of horizontal cable supports
static const Float_t fgkSizeSupport1V[3]
transverse dimensions of 1V angular supports
static const Float_t fgkSizeSupport2H[3]
transverse dimensions of 2H angular supports
static const Float_t fgkXMAX
xmax distance in first plane/first station
static const Float_t fgkZm
inner radius of flange between beam shield. and chambers (1/station)
void BuildChamberTypeA(Int_t &iVolNum, Int_t icount)
TString GetVolEnvName(Int_t icount, Int_t ienv) const
static const Float_t fgkSizeSupportXH[3]
transverse dimensions of XH angular supports
TGeoRotation fRsupportpipe
pipe support rotation
static const Float_t fgkSizeVSupExt[3]
ext dimensions of vertical supports
void BuildChamberTypeE(Int_t &iVolNum, Int_t icount)
static const Float_t fgkSizeSupport1H[3]
transverse dimensions of 1H angular supports
static const Float_t fgkSizeSupport2V[3]
transverse dimensions of 2V angular supports
TString GetVolEnvSuppAngName(const TString &type1234X, const TString &typeHV, const TString &typeABDEF, Int_t icount, Int_t ivol) const
static const Float_t fgkOffsetGasPipe
Position of gas pipe with respect to angular support.
AliMUONTriggerGeometryBuilder & operator=(const AliMUONTriggerGeometryBuilder &rhs)
Not implemented.
static const Float_t fgkXMIN
xmin distance in first plane/first station
TString GetVolEnvInoxGasPipeName(const TString &type12, const TString &typeABCDEF, Int_t icount, Int_t ivol) const
AliMUON * muon()
static const Float_t fgkZp
outer radius of flange between beam shield. and chambers (1/station)
void BuildChamberTypeF(Int_t &iVolNum, Int_t icount)
void BuildChamberTypeB(Int_t &iVolNum, Int_t icount)
TString GetVolumeName(const TString &volume, Int_t icount) const
void BuildChamberTypeD(Int_t &iVolNum, Int_t icount)
MUON Trigger stations geometry construction class.
void BuildAngularSupportForChambers(Int_t icount) const
AliMUON * fMUON
the MUON detector class
TString GetVolAluAngSuppName(const TString &type1234X, const TString &typeHV, Int_t icount) const
static const Float_t fgkSizeVSupInt[3]
int dimensions of vertical supports
static const Float_t fgkYVSup[4]
y positions of vertical supports