X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FUPGRADE%2FAliITSUv1Layer.h;h=630dcd34e7c4c32a6726970acf2eb8baede741c1;hb=019dc90cfce39265d82f8a5dc24e552de0143ab7;hp=520cbd00b71aab26bf295bffa7f2fc7375ad41ff;hpb=0659d2e0b3292cf57fc627a68eb08bfc011b8aa6;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/UPGRADE/AliITSUv1Layer.h b/ITS/UPGRADE/AliITSUv1Layer.h index 520cbd00b71..630dcd34e7c 100644 --- a/ITS/UPGRADE/AliITSUv1Layer.h +++ b/ITS/UPGRADE/AliITSUv1Layer.h @@ -26,6 +26,9 @@ class TGeoVolume; class AliITSUv1Layer : public AliITSv11Geometry { + public: + enum {kStave,kHalfStave,kModule,kChip,kNHLevels}; + public: AliITSUv1Layer(); AliITSUv1Layer(Int_t debug); @@ -37,28 +40,35 @@ class AliITSUv1Layer : public AliITSv11Geometry { // Bool_t IsTurbo() const {return fIsTurbo;}; - Double_t GetLadderThick() const {return fLadderThick;}; - Double_t GetLadderTilt() const {return fLadderTilt;}; - Double_t GetLadderWidth() const {return fLadderWidth;}; + Double_t GetChipThick() const {return fChipThick;}; + Double_t GetStaveTilt() const {return fStaveTilt;}; + Double_t GetStaveWidth() const {return fStaveWidth;}; Double_t GetSensorThick() const {return fSensorThick;}; - Double_t GetNLadders() const {return fNLadders;}; - Double_t GetNModules() const {return fNModules;}; + Double_t GetNStaves() const {return fNStaves;}; + Double_t GetNChips() const {return fNChips;}; Double_t GetRadius() const {return fLayRadius;}; Double_t GetPhi0() const {return fPhi0;}; Double_t GetZLength() const {return fZLength;}; - Int_t GetDetType() const {return fDetTypeID;} + Int_t GetChipType() const {return fChipTypeID;} + // + Int_t GetNStavesPerParent() const {return fHierarchy[kStave];} + Int_t GetNHalfStavesPerParent() const {return fHierarchy[kHalfStave];} + Int_t GetNModulesPerParent() const {return fHierarchy[kModule];} + Int_t GetNChipsPerParent() const {return fHierarchy[kChip];} + // + Int_t GetBuildLevel() const {return fBuildLevel;} AliITSUv1::AliITSUModel_t GetStaveModel() const {return fStaveModel;} // - void SetLadderThick(Double_t t) {fLadderThick = t;}; - void SetLadderTilt(Double_t t); - void SetLadderWidth(Double_t w); - void SetSensorThick(Double_t t) {fSensorThick = t;}; - void SetNLadders(Int_t n) {fNLadders = n;}; - void SetNModules(Int_t m) {fNModules = m;}; - void SetRadius(Double_t r) {fLayRadius = r;}; - void SetPhi0(Double_t phi) {fPhi0 = phi;} - void SetZLength(Double_t z) {fZLength = z;}; - void SetDetType(Int_t tp) {fDetTypeID = tp;} + void SetChipThick(Double_t t) {fChipThick = t;}; + void SetStaveTilt(Double_t t); + void SetStaveWidth(Double_t w); + void SetSensorThick(Double_t t) {fSensorThick = t;}; + void SetNStaves(Int_t n) {fHierarchy[kStave] = fNStaves = n;}; + void SetNUnits(Int_t u); + void SetRadius(Double_t r) {fLayRadius = r;}; + void SetPhi0(Double_t phi) {fPhi0 = phi;} + void SetZLength(Double_t z) {fZLength = z;}; + void SetChipType(Int_t tp) {fChipTypeID = tp;} void SetBuildLevel(Int_t buildLevel){fBuildLevel=buildLevel;} void SetStaveModel(AliITSUv1::AliITSUModel_t model) {fStaveModel=model;} virtual void CreateLayer(TGeoVolume *moth); @@ -66,14 +76,14 @@ class AliITSUv1Layer : public AliITSv11Geometry { private: void CreateLayerTurbo(TGeoVolume *moth); - Double_t RadiusOfTurboContainer(); - - TGeoVolume* CreateLadder(const TGeoManager *mgr=gGeoManager); - //TGeoVolume* CreateModule(Double_t x, Double_t z, const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateStave(const TGeoManager *mgr=gGeoManager); + //TGeoVolume* CreateChip(Double_t x, Double_t z, const TGeoManager *mgr=gGeoManager); TGeoVolume* CreateModuleInnerB(Double_t x,Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager); - TGeoVolume* CreateModuleOuterB(Double_t x,Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateChipInnerB(Double_t x,Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateModuleOuterB(const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateStaveInnerB(Double_t x, Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager); TGeoVolume* CreateStaveStructInnerB(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); TGeoVolume* CreateStaveModelInnerBDummy(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager) const; TGeoVolume* CreateStaveModelInnerB0(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); @@ -81,16 +91,17 @@ class AliITSUv1Layer : public AliITSv11Geometry { TGeoVolume* CreateStaveModelInnerB21(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); TGeoVolume* CreateStaveModelInnerB22(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); TGeoVolume* CreateStaveModelInnerB3(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateStaveModelInnerB4(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); - TGeoVolume* CreateStaveOuterB(Double_t x, const TGeoManager *mgr=gGeoManager); - TGeoVolume* CreateStaveModelOuterBDummy(Double_t x, const TGeoManager *mgr=gGeoManager) const; - TGeoVolume* CreateStaveModelOuterB0(Double_t x, const TGeoManager *mgr=gGeoManager) const; - TGeoVolume* CreateStaveModelOuterB1(Double_t x, const TGeoManager *mgr=gGeoManager); - TGeoVolume* CreateSpaceFrameOuterB(Double_t x, const TGeoManager *mgr=gGeoManager); - TGeoVolume* CreateSpaceFrameOuterBDummy(Double_t x, const TGeoManager *mgr=gGeoManager) const; - TGeoVolume* CreateSpaceFrameOuterB0(Double_t x, const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateStaveOuterB(const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateStaveModelOuterBDummy(const TGeoManager *mgr=gGeoManager) const; + TGeoVolume* CreateStaveModelOuterB0(const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateStaveModelOuterB12(const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateSpaceFrameOuterB(const TGeoManager *mgr=gGeoManager); + TGeoVolume* CreateSpaceFrameOuterBDummy(const TGeoManager *mgr=gGeoManager) const; + TGeoVolume* CreateSpaceFrameOuterB1(const TGeoManager *mgr=gGeoManager); - TGeoArb8* CreateLadderSide(const char *name, + TGeoArb8* CreateStaveSide(const char *name, Double_t dz, Double_t angle, Double_t xSign, Double_t L, Double_t H, Double_t l); TGeoCombiTrans* CreateCombiTrans( const char *name, @@ -102,16 +113,19 @@ class AliITSUv1Layer : public AliITSv11Geometry { Int_t fLayerNumber; // Current layer number - Double_t fPhi0; // lab phi of 1st ladder, in degrees!!! + Double_t fPhi0; // lab phi of 1st stave, in degrees!!! Double_t fLayRadius; // Inner radius of this layer Double_t fZLength; // Z length of this layer Double_t fSensorThick; // Sensor thickness - Double_t fLadderThick; // Ladder thickness - Double_t fLadderWidth; // Ladder width (for turbo layers only) - Double_t fLadderTilt; // Ladder tilt angle (for turbo layers only) in degrees - Int_t fNLadders; // Number of ladders in this layer - Int_t fNModules; // Number of modules per ladder in this layer - UInt_t fDetTypeID; // detector type id + Double_t fChipThick; // Chip thickness + Double_t fStaveWidth; // Stave width (for turbo layers only) + Double_t fStaveTilt; // Stave tilt angle (for turbo layers only) in degrees + Int_t fNStaves; // Number of staves in this layer + Int_t fNModules; // Number of modules per container if defined (HalfStave, Stave, whatever is container) + Int_t fNChips; // N. chips per container (module, HalfStave, Stave, whatever is container) + Int_t fHierarchy[kNHLevels]; // array to query number of staves, hstaves, modules, chips per its parent volume + // + UInt_t fChipTypeID; // detector type id Bool_t fIsTurbo; // True if this layer is a "turbo" layer Int_t fBuildLevel; // Used for material studies @@ -119,19 +133,75 @@ class AliITSUv1Layer : public AliITSv11Geometry { // Parameters for the Upgrade geometry + // General Parameters + static const Int_t fgkNumberOfInnerLayers;// Number of IB Layers + static const Double_t fgkDefaultSensorThick; // Default sensor thickness - static const Double_t fgkDefaultLadderThick; // Default ladder thickness + static const Double_t fgkDefaultChipThick; // Default chip thickness + + // Inner Barrel Parameters + static const Int_t fgkIBChipsPerRow; // IB chips per row in module + static const Int_t fgkIBNChipRows; // IB chip rows in module + + static const Double_t fgkIBFlexCableAlThick; // Thickness of FPC Aluminum + static const Double_t fgkIBFlexCableKapThick;// Thickness of FPC Kapton + static const Double_t fgkIBGlueThick; // IB glue thickness + static const Double_t fgkIBCarbonFleeceThick;// IB carbon fleece thickness + static const Double_t fgkIBCarbonPaperThick; // IB Carbon Paper Thickness + static const Double_t fgkIBK13D2UThick; // IB k13d2u prepreg thickness + static const Double_t fgkIBCoolPipeInnerD; // IB cooling inner diameter + static const Double_t fgkIBCoolPipeThick; // IB cooling pipe thickness + static const Double_t fgkIBCoolPipeXDist; // IB cooling pipe separation + static const Double_t fgkIBTopVertexWidth; // IB TopVertex width + static const Double_t fgkIBTopVertexHeight; // IB TopVertex height + static const Double_t fgkIBSideVertexWidth; // IB SideVertex width + static const Double_t fgkIBSideVertexHeight; // IB SideVertex height + static const Double_t fgkIBTopFilamentLength;// IB TopFilament length + static const Double_t fgkIBTopFilamentSide; // IB TopFilament side + static const Double_t fgkIBTopFilamentAlpha; // IB TopFilament angle + + static const Double_t fgkIBStaveHeight; // IB Stave Total Y Height + + // Outer Barrel Parameters + static const Int_t fgkOBChipsPerRow; // OB chips per row in module + static const Int_t fgkOBNChipRows; // OB chip rows in module static const Double_t fgkOBHalfStaveWidth; // OB Half Stave Width + static const Double_t fgkOBModuleWidth; // OB Module Width static const Double_t fgkOBModuleGap; // Gap between OB modules - static const Double_t fgkOBFlexCable1Thick; // Thickness of - static const Double_t fgkOBFlexCable2Thick; // OB flex cables - static const Double_t fgkOBBusCable1Thick; // Thickness of - static const Double_t fgkOBBusCable2Thick; // OB bus cables + static const Double_t fgkOBChipXGap; // Gap between OB chips on X + static const Double_t fgkOBChipZGap; // Gap between OB chips on Z + static const Double_t fgkOBFlexCableAlThick; // Thickness of FPC Aluminum + static const Double_t fgkOBFlexCableCuThick; // Thickness of FPC Copper + static const Double_t fgkOBFlexCableKapThick1;// Thickness of FPC Kapton + static const Double_t fgkOBFlexCableKapThick;// Thickness of FPC Kapton + static const Double_t fgkOBBusCableAlThick; // Thickness of Bus Aluminum + static const Double_t fgkOBBusCableKapThick; // Thickness of Bus Kapton static const Double_t fgkOBCarbonPlateThick; // OB Carbon Plate Thickness static const Double_t fgkOBColdPlateThick; // OB Cold Plate Thickness - static const Double_t fgkOBGlueThick; // OB Glue total Thickness - static const Double_t fgkOBModuleZLength; // OB Module Length along Z + static const Double_t fgkOBGlueThickM1; // OB Glue total Thickness + static const Double_t fgkOBGlueThick; // OB Glue Thickness in Model2 + static const Double_t fgkOBModuleZLength; // OB Chip Length along Z + static const Double_t fgkOBHalfStaveYTrans; // OB half staves Y transl. + static const Double_t fgkOBHalfStaveXOverlap;// OB half staves X overlap + static const Double_t fgkOBGraphiteFoilThick;// OB graphite foil thickness + static const Double_t fgkOBCarbonFleeceThick;// OB carbon fleece thickness + static const Double_t fgkOBCoolTubeInnerDM1; // OB cooling inner diameter + static const Double_t fgkOBCoolTubeInnerD; // OB cooling inner diameter + static const Double_t fgkOBCoolTubeThick; // OB cooling tube thickness + static const Double_t fgkOBCoolTubeXDist; // OB cooling tube separation + + static const Double_t fgkOBSpaceFrameWidth; // OB Space Frame Width + static const Double_t fgkOBSpaceFrameTotHigh;// OB Total Y Height + static const Double_t fgkOBSFrameBeamRadius; // OB Space Frame Beam Radius + static const Double_t fgkOBSpaceFrameLa; // Parameters defining... + static const Double_t fgkOBSpaceFrameHa; // ...the V side shape... + static const Double_t fgkOBSpaceFrameLb; // ...of the carbon... + static const Double_t fgkOBSpaceFrameHb; // ...OB Space Frame + static const Double_t fgkOBSpaceFrameL; // OB SF + static const Double_t fgkOBSFBotBeamAngle; // OB SF bottom beam angle + static const Double_t fgkOBSFrameBeamSidePhi;// OB SF side beam angle + ClassDef(AliITSUv1Layer,0) // ITS Upgrade v1 geometry };