/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
+// $Id$
//*************************************************************************
//
class TGeoVolume;
+class TGeoPcon;
class TGeoVolumeAssembly;
class TGeoTranslation;
class TGeoCombiTrans;
// Main functions
virtual void Layer3(TGeoVolume *moth);
virtual void Layer4(TGeoVolume *moth);
+ virtual void ForwardLayer3(TGeoVolume *moth);
+ virtual void ForwardLayer4(TGeoVolume *moth);
+ virtual void SDDCables(TGeoVolume *moth);
+
virtual Int_t ExportSensorGeometry(AliITSgeom *geom, Int_t iLaySDD,
Int_t startMod);
virtual Int_t GetCurrentLayLaddDet(Int_t &lay, Int_t &ladd, Int_t&det) const;
virtual TGeoVolumeAssembly* CreateLadder(Int_t iLay);
virtual TGeoVolumeAssembly* CreateDetectorsAssembly(Int_t iLay);
- virtual TGeoVolumeAssembly* CreateLadderSegment(Int_t iLay, Int_t iSeg);
+ virtual TGeoVolume* CreateLadderSegment(Int_t iLay, Int_t iSeg);
virtual TGeoVolumeAssembly* CreateEndLadder(Int_t iLay);
virtual TGeoVolumeAssembly* CreateEndLadderCards(Int_t iLay);
+ virtual TGeoVolume* CreateEndLadderCardsV(Int_t iLay);
virtual TGeoVolumeAssembly* CreateSupportRing(Int_t iLay);
// Create some basic objects :
virtual TGeoVolume* CreateCoolPipeSupportR();
virtual TGeoVolume* CreateBaseThermalBridge();
-/* virtual TGeoVolumeAssembly* CreateCarlosCard(Int_t iLay); */
- virtual TGeoVolumeAssembly* CreateLVCard(Int_t orientation);
+ virtual TGeoVolumeAssembly* CreateLadderFoot();
+ virtual TGeoVolumeAssembly* CreateCarlosCard(Int_t iLay);
+ virtual Int_t CreateLVCard();
virtual TGeoVolumeAssembly* CreateHVCard(Int_t iLay);
void CreateBasicObjects();
-
-
- // Check that the nedium exists
+ Double_t GetConeZ(Double_t r, Double_t refR1, Double_t refR2,
+ Double_t refZ1, Double_t refZ2);
+ TGeoPcon* CreateConeConstSection(Double_t r1max, Double_t z1,
+ Double_t r2max, Double_t z2,
+ Double_t section, Int_t nDiv=1);
+ Int_t CreateAndInsetConeCablePart(TGeoVolume *mother, Double_t angle,
+ Int_t nLay3, Int_t nLay4,
+ Double_t r1, Double_t z1,
+ Double_t r2, Double_t z2);
+
+ // Check that the medium exists
virtual TGeoMedium* GetMedium(const char* mediumName);
// Create a TGeoCombiTrans: general rotation in phi and (dy,dz) translation
Double_t dx=0, Double_t dy=0, Double_t dz=0) const;
// Create one side of the CF corner of the CF structure
- TGeoArb8* CreateLadderSide( Double_t dz, Double_t angle, Double_t xSign,
+ TGeoArb8* CreateLadderSide( const char *name,
+ Double_t dz, Double_t angle, Double_t xSign,
Double_t L, Double_t H, Double_t l);
//----------------------------
TGeoVolume* fSDDsensor4; //! sensor of lay. 4 and HV cables on it
TGeoVolume* fBaseThermalBridge; //! Base of hybrid thermal bridge
TGeoVolume* fHybrid; //! hybrid volume
+ TGeoVolumeAssembly *fLadderFoot;//! ladder foot in stesalite
+ TGeoVolumeAssembly *fCardLVR; //! low voltage card, right
+ TGeoVolumeAssembly *fCardLVL; //! low voltage card, left
+ TGeoVolumeAssembly *fCardHV; //! high voltage card
+ TGeoVolumeAssembly *fCardCarlos;//! end-ladder CARLOS card
+ TGeoVolumeAssembly *fRaccordoL; //! link between cooling tubes at end ladder
+ TGeoVolume* fCommonVol[2]; //! some common vol. used in several places
+ TGeoMatrix* fCommonTr[2]; //! some common transformations
static const Int_t fgkNladdSegCommonVol = 19; // Number of vol.
TGeoVolume* fLaddSegCommonVol[fgkNladdSegCommonVol];//! volumes in ladder
//-------------------------------------- parameters for the SDD geometry
- static const char* fgSDDsensitiveVolName3; // sens. vol. name for lay. 3
- static const char* fgSDDsensitiveVolName4; // sens. vol. name for lay. 4
+ static const char* fgSDDsensitiveVolName3; // sens. vol. name for lay. 3
+ static const char* fgSDDsensitiveVolName4; // sens. vol. name for lay. 4
static const Int_t fgkLay3Nladd; // 14
static const Int_t fgkLay3Ndet; // 6
static const Double_t fgkLay4LaddTopCornerEnd; // Ends of ladder 3
static const Double_t fgkLay4ZPlusEndLength; // ===
+ static const Double_t fgkEndLaddCardsShortRadiusLay3; // ref radius of end ladder cards
+ static const Double_t fgkEndLaddCardsShortRadiusLay4; // ref radius of end ladder cards
+ static const Double_t fgkDistEndLaddCardsLadd; // dist. between U cooling tube and ladder
+
static const Double_t fgkSegmentLength; // length of 1 ladder seg.
static const Double_t fgkLadderWidth; // carbon fiber structure
static const Double_t fgkLadderHeight; // including bottom beam
static const Double_t fgkHVCardCool3Z; // ===
static const Double_t fgkHVCardCoolDY; // ===
- static const Double_t fgkCarlosSuppX1; // piece on which
+ static const Double_t fgkCarlosSuppX1; // piece with which
static const Double_t fgkCarlosSuppY1; // the carlos card
static const Double_t fgkCarlosSuppX2; // is fixed
static const Double_t fgkCarlosSuppY2; // ===
static const Double_t fgkCarlosSuppZ3; // ===
static const Double_t fgkCarlosSuppTopLen; // ===
+ // screws fixing the board on the U tube
+ static const Double_t fgkLittleScrewHeadR; // screws fixing boards
+ static const Double_t fgkLittleScrewHeadH; // Value to be checked
+ static const Double_t fgkLittleScrewR; // ===
+ static const Double_t fgkShiftLittleScrewLV; // ===
+ static const Double_t fgkLittleLVScrewHeadR; // ===
+
+ // CARLOS board
+ static const Double_t fgkCarlosCardX1; // length (first part of Carlos card)
+ static const Double_t fgkCarlosCardY1; // thickness
+ static const Double_t fgkCarlosCardZ1; // width
+ static const Double_t fgkCarlosCardCuY; // thickness of Cu layer (strips)
+ static const Double_t fgkCarlosCardX2; // length (2nd part of Carlos card)
+ static const Double_t fgkCarlosCardZ2; // width
+
+ static const Double_t fgkCarlosCardChipSiThick; // Carlos Chip thicknes - value to be checked
+ static const Double_t fgkCarlosCardShift; // (value to be checked) shift in z w.r.t. heat bridge
+
+ // size and position of various chips on carlos end-ladder board
+ static const Double_t fgkCarlosU1X; // chip size in X
+ static const Double_t fgkCarlosU1Y; // chip size in Y
+ static const Double_t fgkCarlosU1Z; // chip size in Z
+ static const Double_t fgkCarlosU1posX; // position in X
+ static const Double_t fgkCarlosU1posZ; // position in Z
+
+ static const Double_t fgkCarlosU2X; // chip size in X
+ static const Double_t fgkCarlosU2Y; // chip size in Y
+ static const Double_t fgkCarlosU2Z; // chip size in Z
+ static const Double_t fgkCarlosU2posX; // position in X
+ static const Double_t fgkCarlosU2posZ; // position in Z
+
+ static const Double_t fgkCarlosU3X; // same convention
+ static const Double_t fgkCarlosU3Y; // ===
+ static const Double_t fgkCarlosU3Z; // ===
+ static const Double_t fgkCarlosU3posX; // ===
+ static const Double_t fgkCarlosU3posZ; // ===
+
+ // U4 like U3
+ static const Double_t fgkCarlosU4posX; // same convention
+ static const Double_t fgkCarlosU4posZ; // ===
+
+ static const Double_t fgkCarlosU17X; // same convention
+ static const Double_t fgkCarlosU17Y; // ===
+ static const Double_t fgkCarlosU17Z; // ===
+ static const Double_t fgkCarlosU17posX; // ===
+ static const Double_t fgkCarlosU17posZ; // ===
+
+ static const Double_t fgkCarlosU35X; // same convention
+ static const Double_t fgkCarlosU35Y; // ===
+ static const Double_t fgkCarlosU35Z; // ===
+ static const Double_t fgkCarlosU35posX; // ===
+ static const Double_t fgkCarlosU35posZ; // ===
+
+ static const Double_t fgkCarlosU36X; // same convention
+ static const Double_t fgkCarlosU36Y; // ===
+ static const Double_t fgkCarlosU36Z; // ===
+ static const Double_t fgkCarlosU36posX; // ===
+ static const Double_t fgkCarlosU36posZ; // ===
+
+ static const Double_t fgkCarlosQZ1X; // same convention
+ static const Double_t fgkCarlosQZ1Y; // look more thick than design number (0.7) ! to be checked
+ static const Double_t fgkCarlosQZ1Z; // to be checked
+ static const Double_t fgkCarlosQZ1posX; // to be checked
+ static const Double_t fgkCarlosQZ1posZ; // to be checked
+
+ // some pieces at the end of the carbon fiber ladder
+ static const Double_t fgkCoolPipeLay3Len; // value to be checked
+ static const Double_t fgkCoolPipeLay4Len; // ===
+ static const Double_t fgkHVguideX1; // ===
+ static const Double_t fgkHVguideY1; // ===
+ static const Double_t fgkHVguideZ1; // ===
+ static const Double_t fgkHVguideZ2; // ===
+ static const Double_t fgkHVguideDX; // ===
+ static const Double_t fgkHVguideSuppFullZ; // ===
+
+ // Cooling connector between phynox and plastic cooling water tubes
+ static const Double_t fgkConnectorCoolTubeRmin; // internal radius
+ static const Double_t fgkConnectorCoolTubeR1; // value to be checked
+ static const Double_t fgkConnectorCoolTubeL1; // ===
+ static const Double_t fgkConnectorCoolTubeR2; // ===
+ static const Double_t fgkConnectorCoolTubeL2; // ===
+ static const Double_t fgkConnectorCoolTubeR3; // ===
+ static const Double_t fgkConnectorCoolTubeL3; // ===
+
+ // parameters for coding SDD cables on SDD and SSD cones
+ static const Double_t fgkSectionCuPerMod; // area of copper per mod.
+ static const Double_t fgkSectionPlastPerMod; // area of plast per mod.
+ static const Double_t fgkSectionGlassPerMod; // area of optical fiber per mod.
+ static const Double_t fgkCableBendRatio; // ??? this factor account for the bending of cables
+
+ static const Double_t fgkConeSDDr1; // define SDD cone slope and pos
+ static const Double_t fgkConeSDDr2; // define SDD cone slope and pos
+ static const Double_t fgkConeSDDz1; // define SDD cone slope and pos
+ static const Double_t fgkConeSDDz2; // define SDD cone slope and pos
+
+ static const Double_t fgkSDDCableR1; // ??? // part 1 of "cable cone"
+ static const Double_t fgkSDDCableR2; // ??? // part 1/2 of "cable cone"
+ static const Double_t fgkSDDCableR3; // ??? // part 2 of "cable cone"
+
+ static const Double_t fgkSDDCableDZint; // length of intermediate cylinder
+ static const Double_t fgkSDDCableR5; // third part of "cable cone"
+ static const Double_t fgkSDDCableZ5; // third part of "cable cone"
+
+
+
+ // distance from the heat bridge center to the card center :
+ static const Double_t fgkCarlosCard2HeatBridge;// distance from the heat bridge center to the card center
+
static const Double_t fgkmu; // 1 micron, or more for debugging
// calculated parameters
Double_t fLay4LaddShortRadius; // ladder 4 to beam axis radius
Double_t fLay4LaddLongRadius; // ladder 4 to beam axis radius
- // parameters that be modified
+ // parameters that can be modified
Double_t fLay3sensorZPos[6]; // Z pos of sensors in layer 3
Double_t fLay4sensorZPos[8]; // Z pos of sensors in layer 4
- ClassDef(AliITSv11GeometrySDD,2) // ITS v11 SDD geometry
+ ClassDef(AliITSv11GeometrySDD,0) // ITS v11 SDD geometry
};