]>
Commit | Line | Data |
---|---|---|
7302d0f8 | 1 | #ifndef ALIITSUV0LAYER_H |
2 | #define ALIITSUV0LAYER_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 | // Chinorat Kobdaj (kobdaj@g.sut.ac.th) | |
14 | //************************************************************************* | |
15 | ||
16 | ||
17 | /* | |
18 | $Id: AliITSUv0Layer.h | |
19 | */ | |
20 | ||
21 | #include "AliITSv11Geometry.h" | |
22 | #include "AliITSUv0.h" | |
23 | #include <TGeoManager.h> | |
24 | #include <TGeoCompositeShape.h> | |
25 | #include <TGeoXtru.h> | |
26 | ||
27 | class TGeoVolume; | |
28 | ||
29 | class AliITSUv0Layer : public AliITSv11Geometry { | |
30 | public: | |
31 | AliITSUv0Layer(); | |
32 | AliITSUv0Layer(Int_t debug); | |
33 | AliITSUv0Layer(Int_t lay, Int_t debug); | |
34 | AliITSUv0Layer(Int_t lay, Bool_t turbo, Int_t debug); | |
35 | AliITSUv0Layer(const AliITSUv0Layer &source); | |
36 | AliITSUv0Layer& operator=(const AliITSUv0Layer &source); | |
37 | virtual ~AliITSUv0Layer(); | |
38 | // | |
4e0b9a43 | 39 | Bool_t IsTurbo() const {return fIsTurbo;}; |
7302d0f8 | 40 | |
852af72e | 41 | Double_t GetStaveThick() const {return fStaveThick;}; |
42 | Double_t GetStaveTilt() const {return fStaveTilt;}; | |
43 | Double_t GetStaveWidth() const {return fStaveWidth;}; | |
7302d0f8 | 44 | Double_t GetSensorThick() const {return fSensorThick;}; |
852af72e | 45 | Double_t GetNStaves() const {return fNStaves;}; |
46 | Double_t GetNChips() const {return fNChips;}; | |
7302d0f8 | 47 | Double_t GetRadius() const {return fLayRadius;}; |
48 | Double_t GetPhi0() const {return fPhi0;}; | |
49 | Double_t GetZLength() const {return fZLength;}; | |
852af72e | 50 | Int_t GetChipType() const {return fChipTypeID;} |
6343b737 | 51 | AliITSUv0::AliITSUModel_t GetStaveModel() const {return fStaveModel;} |
7302d0f8 | 52 | // |
852af72e | 53 | void SetStaveThick(Double_t t) {fStaveThick = t;}; |
54 | void SetStaveTilt(Double_t t); | |
55 | void SetStaveWidth(Double_t w); | |
7302d0f8 | 56 | void SetSensorThick(Double_t t) {fSensorThick = t;}; |
852af72e | 57 | void SetNStaves(Int_t n) {fNStaves = n;}; |
58 | void SetNChips(Int_t m) {fNChips = m;}; | |
7302d0f8 | 59 | void SetRadius(Double_t r) {fLayRadius = r;}; |
60 | void SetPhi0(Double_t phi) {fPhi0 = phi;} | |
61 | void SetZLength(Double_t z) {fZLength = z;}; | |
852af72e | 62 | void SetChipType(Int_t tp) {fChipTypeID = tp;} |
7302d0f8 | 63 | void SetBuildLevel(Int_t buildLevel){fBuildLevel=buildLevel;} |
6343b737 | 64 | void SetStaveModel(AliITSUv0::AliITSUModel_t model) {fStaveModel=model;} |
7302d0f8 | 65 | virtual void CreateLayer(TGeoVolume *moth); |
66 | ||
67 | private: | |
68 | void CreateLayerTurbo(TGeoVolume *moth); | |
69 | ||
70 | Double_t RadiusOfTurboContainer(); | |
71 | ||
852af72e | 72 | TGeoVolume* CreateStave(const TGeoManager *mgr=gGeoManager); |
73 | //TGeoVolume* CreateChip(Double_t x, Double_t z, const TGeoManager *mgr=gGeoManager); | |
74 | TGeoVolume* CreateChip(Double_t x,Double_t y, Double_t z, const TGeoManager *mgr=gGeoManager); | |
7302d0f8 | 75 | |
76 | ||
77 | TGeoVolume* CreateStaveStruct(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); | |
4e0b9a43 | 78 | TGeoVolume* CreateStaveModelDummy(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager) const; |
7302d0f8 | 79 | TGeoVolume* CreateStaveModel0(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); |
80 | TGeoVolume* CreateStaveModel1(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); | |
81 | TGeoVolume* CreateStaveModel21(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); | |
82 | TGeoVolume* CreateStaveModel22(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); | |
83 | TGeoVolume* CreateStaveModel3(Double_t x,Double_t z, const TGeoManager *mgr=gGeoManager); | |
84 | ||
85 | ||
86 | Int_t fLayerNumber; // Current layer number | |
852af72e | 87 | Double_t fPhi0; // lab phi of 1st stave, in degrees!!! |
7302d0f8 | 88 | Double_t fLayRadius; // Inner radius of this layer |
89 | Double_t fZLength; // Z length of this layer | |
90 | Double_t fSensorThick; // Sensor thickness | |
852af72e | 91 | Double_t fStaveThick; // Stave thickness |
92 | Double_t fStaveWidth; // Stave width (for turbo layers only) | |
93 | Double_t fStaveTilt; // Stave tilt angle (for turbo layers only) in degrees | |
94 | Int_t fNStaves; // Number of staves in this layer | |
95 | Int_t fNChips; // Number of chips per stave in this layer | |
96 | UInt_t fChipTypeID; // detector type id | |
7302d0f8 | 97 | Bool_t fIsTurbo; // True if this layer is a "turbo" layer |
98 | Int_t fBuildLevel; // Used for material studies | |
99 | ||
6343b737 | 100 | AliITSUv0::AliITSUModel_t fStaveModel; // The stave model |
7302d0f8 | 101 | |
102 | // Parameters for the Upgrade geometry | |
103 | ||
104 | static const Double_t fgkDefaultSensorThick; // Default sensor thickness | |
852af72e | 105 | static const Double_t fgkDefaultStaveThick; // Default stave thickness |
7302d0f8 | 106 | |
107 | ClassDef(AliITSUv0Layer,0) // ITS Upgrade v0 geometry | |
108 | }; | |
109 | ||
110 | #endif |