// methods
virtual void CreateGeometry();
+ virtual void SetVolumes();
virtual void SetTransformations();
virtual void SetSensitiveVolumes();
+
+ /// Do not apply global transformation (geometry is defined in the new ALICE reference frame)
virtual bool ApplyGlobalTransformation() { return false; }
protected:
+
+ private:
+ /// Not implemented
AliMUONTriggerGeometryBuilder(const AliMUONTriggerGeometryBuilder& rhs);
-
- // operators
+ /// Not implemented
AliMUONTriggerGeometryBuilder& operator = (const AliMUONTriggerGeometryBuilder& rhs);
+
+ // methods
+ void BuildChamberPrototype(Int_t icount) const;
+ void BuildRPCSupportsVertical(Int_t& iVolNum, Int_t icount) const;
+ void BuildRPCSupportsHorizontal(Int_t icount) const;
+ void BuildAngularSupportForChambers(Int_t icount) const;
+ void BuildGasPipes(Int_t icount) const;
+ void BuildChamberTypeA(Int_t& iVolNum, Int_t icount);
+ void BuildChamberTypeB(Int_t& iVolNum, Int_t icount);
+ void BuildChamberTypeD(Int_t& iVolNum, Int_t icount);
+ void BuildChamberTypeE(Int_t& iVolNum, Int_t icount);
+ void BuildChamberTypeF(Int_t& iVolNum, Int_t icount);
+
+ // constants
- private:
- AliMUON* fMUON; ///< the MUON detector class
+ static const Float_t fgkDXZERO; ///< vertical gap between right and left chambers (kDXZERO*2=4cm)
+
+ // main distances for chamber definition in first plane/first station
+ static const Float_t fgkXMIN; ///< xmin distance in first plane/first station
+ static const Float_t fgkXMED; ///< xmed distance in first plane/first station
+ static const Float_t fgkXMAX; ///< xmax distance in first plane/first station
+
+ // 090704 kXMAX changed from 272 to 255.
+ // (see fig.2-4 & 2-5 of Local Trigger Board PRR)
+ // segmentation updated accordingly
+ static const Float_t fgkYMIN; ///< add
+ static const Float_t fgkYMAX; ///< add
+
+ // inner/outer radius of flange between beam shield. and chambers (1/station)
+ // static const Float_t fgkRMIN[2]={50.,50.};
+ // static const Float_t fgkRMAX[2]={64.,68.};
+ // z position of the middle of the gas gap in mother vol
+ static const Float_t fgkZm; ///< inner radius of flange between beam shield. and chambers (1/station)
+ static const Float_t fgkZp; ///< outer radius of flange between beam shield. and chambers (1/station)
+
+ static const Float_t fgkYVSup[4]; ///< y positions of vertical supports
+
+ static const Float_t fgkSizeVSupExt[3]; ///< ext dimensions of vertical supports
+ static const Float_t fgkSizeVSupInt[3]; ///< int dimensions of vertical supports
+
+ static const Float_t fgkSizeSupport1V[3]; ///< transverse dimensions of 1V angular supports
+ static const Float_t fgkSizeSupport1H[3]; ///< transverse dimensions of 1H angular supports
+ // z should be 1.4 in the installed set-up
+ static const Float_t fgkSizeSupport2V[3]; ///< transverse dimensions of 2V angular supports
+ static const Float_t fgkSizeSupport2H[3]; ///< transverse dimensions of 2H angular supports
+ static const Float_t fgkSizeSupportXV[3]; ///< transverse dimensions of XV angular supports
+ static const Float_t fgkSizeSupportXH[3]; ///< transverse dimensions of XH angular supports
+
+ static const Float_t fgkSizeSupportCable[3]; /// transverse dimensions of horizontal cable supports
+ static const Float_t fgkSizeGasPipe[3]; ///< dimensions of gas pipes (inner and outer radius)
+
+ static const Float_t fgkOffsetGasPipe; ///< Position of gas pipe with respect to angular support
+ static const Float_t fgkAvoidExtrusion; ///< Small cut on some volumes to avoid extrusion from SC1x
+
+ //
+ TString GetVolumeName(const TString& volume, Int_t icount) const;
+ TString GetVolEnvName(Int_t icount, Int_t ienv) const;
+ TString GetVolAluAngSuppName(
+ const TString& type1234X,
+ const TString& typeHV,
+ Int_t icount) const;
+ TString GetVolEnvSuppAngName(
+ const TString& type1234X,
+ const TString& typeHV,
+ const TString& typeABDEF,
+ Int_t icount, Int_t ivol) const;
+ TString GetVolEnvInoxGasPipeName(
+ const TString& type12,
+ const TString& typeABCDEF,
+ Int_t icount, Int_t ivol) const;
+
+
+ // data members
+ AliMUON* fMUON; ///< the MUON detector class
+ Int_t* fIdtmed; //!< tracking media
+ Int_t fIdAir; //!< medium 1
+ Int_t fIdAlu1; //!< medium 4
+ Int_t fIdInox; //!< medium 29 Stainless Steel (18%Cr,9%Ni,Fe)
+ Float_t fYEnvPsave; //!< add
+ Float_t fYEnvMsave; //!< add
+ Float_t fDYsave; //!< add
+ Float_t fDXsave; //!< add
+ TGeoRotation fRsupportpipe; ///< pipe support rotation
ClassDef(AliMUONTriggerGeometryBuilder,1) // MUON Trigger stations geometry construction class
};