]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSUv1Layer.h
Switching to the TDR naming schema (I cross my fingers)
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUv1Layer.h
CommitLineData
b705c75b 1#ifndef ALIITSUV1LAYER_H
2#define ALIITSUV1LAYER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6
7//*************************************************************************
8// This class Defines the Geometry for the ITS Upgrade using TGeo
9// This is a work class used to study different configurations
10// during the development of the new ITS structure.
11//
12// Mario Sitta <sitta@to.infn.it>
13//*************************************************************************
14
15
16/*
17 $Id: AliITSUv1Layer.h
18 */
19
20#include "AliITSv11Geometry.h"
21#include "AliITSUv1.h"
22#include <TGeoManager.h>
23#include <TGeoCompositeShape.h>
24#include <TGeoXtru.h>
25
26class TGeoVolume;
27
28class AliITSUv1Layer : public AliITSv11Geometry {
29 public:
30 AliITSUv1Layer();
31 AliITSUv1Layer(Int_t debug);
32 AliITSUv1Layer(Int_t lay, Int_t debug);
33 AliITSUv1Layer(Int_t lay, Bool_t turbo, Int_t debug);
34 AliITSUv1Layer(const AliITSUv1Layer &source);
35 AliITSUv1Layer& operator=(const AliITSUv1Layer &source);
36 virtual ~AliITSUv1Layer();
37 //
38 Bool_t IsTurbo() const {return fIsTurbo;};
39
852af72e 40 Double_t GetStaveThick() const {return fStaveThick;};
41 Double_t GetStaveTilt() const {return fStaveTilt;};
42 Double_t GetStaveWidth() const {return fStaveWidth;};
b705c75b 43 Double_t GetSensorThick() const {return fSensorThick;};
852af72e 44 Double_t GetNStaves() const {return fNStaves;};
45 Double_t GetNChips() const {return fNChips;};
b705c75b 46 Double_t GetRadius() const {return fLayRadius;};
47 Double_t GetPhi0() const {return fPhi0;};
48 Double_t GetZLength() const {return fZLength;};
852af72e 49 Int_t GetChipType() const {return fChipTypeID;}
b705c75b 50 AliITSUv1::AliITSUModel_t GetStaveModel() const {return fStaveModel;}
51 //
852af72e 52 void SetStaveThick(Double_t t) {fStaveThick = t;};
53 void SetStaveTilt(Double_t t);
54 void SetStaveWidth(Double_t w);
b705c75b 55 void SetSensorThick(Double_t t) {fSensorThick = t;};
852af72e 56 void SetNStaves(Int_t n) {fNStaves = n;};
57 void SetNChips(Int_t m) {fNChips = m;};
b705c75b 58 void SetRadius(Double_t r) {fLayRadius = r;};
59 void SetPhi0(Double_t phi) {fPhi0 = phi;}
60 void SetZLength(Double_t z) {fZLength = z;};
852af72e 61 void SetChipType(Int_t tp) {fChipTypeID = tp;}
b705c75b 62 void SetBuildLevel(Int_t buildLevel){fBuildLevel=buildLevel;}
63 void SetStaveModel(AliITSUv1::AliITSUModel_t model) {fStaveModel=model;}
64 virtual void CreateLayer(TGeoVolume *moth);
65
66 private:
67 void CreateLayerTurbo(TGeoVolume *moth);
68
69 Double_t RadiusOfTurboContainer();
70
852af72e 71 TGeoVolume* CreateStave(const TGeoManager *mgr=gGeoManager);
72 //TGeoVolume* CreateChip(Double_t x, Double_t z, const TGeoManager *mgr=gGeoManager);
73 TGeoVolume* CreateChipInnerB(Double_t x,Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager);
74 TGeoVolume* CreateChipOuterB(Double_t x,Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager);
b705c75b 75
76
77 TGeoVolume* CreateStaveStructInnerB(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager);
78 TGeoVolume* CreateStaveModelInnerBDummy(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager) const;
79 TGeoVolume* CreateStaveModelInnerB0(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager);
80 TGeoVolume* CreateStaveModelInnerB1(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager);
81 TGeoVolume* CreateStaveModelInnerB21(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager);
82 TGeoVolume* CreateStaveModelInnerB22(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager);
83 TGeoVolume* CreateStaveModelInnerB3(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager);
84
85 TGeoVolume* CreateStaveOuterB(Double_t x, const TGeoManager *mgr=gGeoManager);
86 TGeoVolume* CreateStaveModelOuterBDummy(Double_t x, const TGeoManager *mgr=gGeoManager) const;
87 TGeoVolume* CreateStaveModelOuterB0(Double_t x, const TGeoManager *mgr=gGeoManager) const;
88 TGeoVolume* CreateStaveModelOuterB1(Double_t x, const TGeoManager *mgr=gGeoManager);
89 TGeoVolume* CreateSpaceFrameOuterB(Double_t x, const TGeoManager *mgr=gGeoManager);
90 TGeoVolume* CreateSpaceFrameOuterBDummy(Double_t x, const TGeoManager *mgr=gGeoManager) const;
91 TGeoVolume* CreateSpaceFrameOuterB0(Double_t x, const TGeoManager *mgr=gGeoManager);
92
852af72e 93 TGeoArb8* CreateStaveSide(const char *name,
b705c75b 94 Double_t dz, Double_t angle, Double_t xSign,
95 Double_t L, Double_t H, Double_t l);
96 TGeoCombiTrans* CreateCombiTrans( const char *name,
97 Double_t dy, Double_t dz, Double_t dphi,
98 Bool_t planeSym=kFALSE);
99 void AddTranslationToCombiTrans( TGeoCombiTrans* ct,
100 Double_t dx=0, Double_t dy=0,
101 Double_t dz=0) const;
102
103
104 Int_t fLayerNumber; // Current layer number
852af72e 105 Double_t fPhi0; // lab phi of 1st stave, in degrees!!!
b705c75b 106 Double_t fLayRadius; // Inner radius of this layer
107 Double_t fZLength; // Z length of this layer
108 Double_t fSensorThick; // Sensor thickness
852af72e 109 Double_t fStaveThick; // Stave thickness
110 Double_t fStaveWidth; // Stave width (for turbo layers only)
111 Double_t fStaveTilt; // Stave tilt angle (for turbo layers only) in degrees
112 Int_t fNStaves; // Number of staves in this layer
113 Int_t fNChips; // Number of chips per stave in this layer
114 UInt_t fChipTypeID; // detector type id
b705c75b 115 Bool_t fIsTurbo; // True if this layer is a "turbo" layer
116 Int_t fBuildLevel; // Used for material studies
117
118 AliITSUv1::AliITSUModel_t fStaveModel; // The stave model
119
120 // Parameters for the Upgrade geometry
121
122 static const Double_t fgkDefaultSensorThick; // Default sensor thickness
852af72e 123 static const Double_t fgkDefaultStaveThick; // Default stave thickness
b705c75b 124
125 static const Double_t fgkOBHalfStaveWidth; // OB Half Stave Width
852af72e 126 static const Double_t fgkOBChipGap; // Gap between OB chips
b705c75b 127 static const Double_t fgkOBFlexCable1Thick; // Thickness of
128 static const Double_t fgkOBFlexCable2Thick; // OB flex cables
129 static const Double_t fgkOBBusCable1Thick; // Thickness of
130 static const Double_t fgkOBBusCable2Thick; // OB bus cables
131 static const Double_t fgkOBCarbonPlateThick; // OB Carbon Plate Thickness
132 static const Double_t fgkOBColdPlateThick; // OB Cold Plate Thickness
133 static const Double_t fgkOBGlueThick; // OB Glue total Thickness
852af72e 134 static const Double_t fgkOBChipZLength; // OB Chip Length along Z
b705c75b 135
136 ClassDef(AliITSUv1Layer,0) // ITS Upgrade v1 geometry
137};
138
139#endif