]>
Commit | Line | Data |
---|---|---|
4e0b9a43 | 1 | #ifndef ALIITSUV0_H |
2 | #define ALIITSUV0_H | |
7302d0f8 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | //======================================================================== | |
7 | // | |
8 | // Geometry for the Upgrade of the Inner Tracking System | |
9 | // | |
10 | // Mario Sitta (sitta@to.infn.it) | |
11 | // Chinorat Kobdaj (kobdaj@g.sut.ac.th) | |
12 | // | |
13 | //======================================================================== | |
14 | ||
15 | ||
16 | // $Id: AliITSUv0.h | |
17 | ||
18 | #include "AliITSU.h" | |
19 | ||
7302d0f8 | 20 | class AliITSUv0Layer; |
21 | //class AliITSv11GeomBeamPipe; | |
22 | class TGeoVolume; | |
23 | class TGeoVolumeAssembly; | |
24 | ||
25 | class AliITSUv0 : public AliITSU { | |
26 | ||
27 | public: | |
6343b737 | 28 | |
29 | ||
30 | typedef enum { | |
31 | kModelDummy=0, | |
32 | kModel0=1, | |
33 | kModel1=2, | |
34 | kModel21=3, | |
35 | kModel22=4, | |
36 | kModel3=5 | |
37 | } AliITSUModel_t; | |
38 | ||
39 | ||
7302d0f8 | 40 | AliITSUv0(); |
41 | AliITSUv0(const char *title, const Int_t nlay); | |
42 | virtual ~AliITSUv0() ; | |
43361342 | 43 | virtual void SetNWrapVolumes(Int_t n); |
7302d0f8 | 44 | virtual void AddAlignableVolumes() const; |
45 | virtual void CreateGeometry(); | |
46 | virtual void CreateMaterials(); | |
47 | virtual void DefineLayer(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nladd, | |
48 | Int_t nmod, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0); | |
49 | virtual void DefineLayerTurbo(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nladd, | |
50 | Int_t nmod,Double_t width,Double_t tilt, | |
51 | Double_t lthick = 0.,Double_t dthick = 0.,UInt_t detType=0, Int_t buildFlag=0); | |
52 | virtual void GetLayerParameters(Int_t nlay, Double_t &phi0,Double_t &r, Double_t &zlen, | |
53 | Int_t &nladd, Int_t &nmod, | |
54 | Double_t &width, Double_t &tilt, | |
55 | Double_t <hick, Double_t &mthick, | |
56 | UInt_t &dettype) const; | |
43361342 | 57 | virtual void DefineWrapVolume(Int_t id, Double_t rmin,Double_t rmax, Double_t zspan); |
7302d0f8 | 58 | virtual void Init(); |
59 | virtual Bool_t IsLayerTurbo(Int_t nlay); | |
60 | virtual Int_t IsVersion() const { return 20;} // vUpgrade ? do we need this | |
61 | virtual void SetDefaults(); | |
62 | virtual void StepManager(); | |
63 | virtual void SetLayerDetTypeID(Int_t lr, UInt_t id); | |
64 | virtual Int_t GetLayerDetTypeID(Int_t lr); | |
65 | virtual void SetStaveModel(AliITSUModel_t model) {fStaveModel=model;} | |
66 | virtual AliITSUModel_t GetStaveModel() const {return fStaveModel;} | |
67 | // | |
68 | private: | |
69 | AliITSUv0(const AliITSUv0 &source); // copy constructor | |
70 | AliITSUv0& operator=(const AliITSUv0 &source); // assignment operator | |
5e0a1821 | 71 | |
72 | TGeoVolume* CreateWrapperVolume(const Int_t nLay); | |
73 | ||
7302d0f8 | 74 | // |
43361342 | 75 | Int_t fNWrapVol; // number of wrapper volumes |
76 | Double_t* fWrapRMin; // min radius of wrapper volume | |
77 | Double_t* fWrapRMax; // max radius of wrapper volume | |
78 | Double_t* fWrapZSpan; // Z span of wrapper volume | |
7302d0f8 | 79 | Bool_t *fLayTurbo; // True for "turbo" layers |
80 | Double_t *fLayPhi0; // Vector of layer's 1st ladder phi in lab | |
81 | Double_t *fLayRadii; // Vector of layer radii | |
82 | Double_t *fLayZLength; // Vector of layer length along Z | |
83 | Int_t *fLaddPerLay; // Vector of number of ladders per layer | |
84 | Int_t *fModPerLadd; // Vector of number of modules per ladder | |
85 | Double_t *fLadThick; // Vector of ladder thicknesses | |
86 | Double_t *fLadWidth; // Vector of ladder width (only used for turbo) | |
87 | Double_t *fLadTilt; // Vector of ladder tilt (only used for turbo) | |
88 | Double_t *fDetThick; // Vector of detector thicknesses | |
89 | UInt_t *fDetTypeID; // Vector of detector type id | |
90 | Int_t *fBuildLevel; // Vector of Material Budget Studies | |
91 | // | |
92 | AliITSUv0Layer **fUpGeom; //! Geometry | |
93 | AliITSUModel_t fStaveModel; // The stave model | |
94 | ||
95 | // Parameters for the Upgrade geometry | |
96 | ||
97 | ClassDef(AliITSUv0,0) | |
98 | }; | |
99 | ||
100 | #endif |