]>
Commit | Line | Data |
---|---|---|
b705c75b | 1 | #ifndef ALIITSUV1_H |
2 | #define ALIITSUV1_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 | // Geometry for the Upgrade of the Inner Tracking System | |
9 | // | |
10 | // Mario Sitta (sitta@to.infn.it) | |
11 | // | |
12 | //======================================================================== | |
13 | ||
14 | ||
15 | // $Id: AliITSUv1.h | |
16 | ||
17 | #include "AliITSU.h" | |
18 | ||
19 | class AliITSUv1Layer; | |
20 | //class AliITSv11GeomBeamPipe; | |
21 | class TGeoVolume; | |
22 | class TGeoVolumeAssembly; | |
23 | ||
24 | class AliITSUv1 : public AliITSU { | |
25 | ||
26 | public: | |
27 | ||
28 | ||
29 | typedef enum { | |
30 | kIBModelDummy=0, | |
31 | kIBModel0=1, | |
32 | kIBModel1=2, | |
33 | kIBModel21=3, | |
34 | kIBModel22=4, | |
35 | kIBModel3=5, | |
36 | kOBModelDummy=6, | |
37 | kOBModel0=7, | |
38 | kOBModel1=8 | |
39 | } AliITSUModel_t; | |
40 | ||
41 | ||
42 | AliITSUv1(); | |
43 | AliITSUv1(const char *title, const Int_t nlay); | |
44 | virtual ~AliITSUv1() ; | |
45 | virtual void SetNWrapVolumes(Int_t n); | |
46 | virtual void AddAlignableVolumes() const; | |
47 | virtual void CreateGeometry(); | |
48 | virtual void CreateMaterials(); | |
852af72e | 49 | virtual void DefineLayer(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nstav, |
b705c75b | 50 | Int_t nmod, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0, Int_t buildFlag=0); |
852af72e | 51 | virtual void DefineLayerTurbo(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nstav, |
b705c75b | 52 | Int_t nmod,Double_t width,Double_t tilt, |
53 | Double_t lthick = 0.,Double_t dthick = 0.,UInt_t detType=0, Int_t buildFlag=0); | |
54 | virtual void GetLayerParameters(Int_t nlay, Double_t &phi0,Double_t &r, Double_t &zlen, | |
852af72e | 55 | Int_t &nstav, Int_t &nmod, |
b705c75b | 56 | Double_t &width, Double_t &tilt, |
57 | Double_t <hick, Double_t &mthick, | |
58 | UInt_t &dettype) const; | |
59 | virtual void DefineWrapVolume(Int_t id, Double_t rmin,Double_t rmax, Double_t zspan); | |
60 | virtual void Init(); | |
61 | virtual Bool_t IsLayerTurbo(Int_t nlay); | |
62 | virtual Int_t IsVersion() const { return 20;} // vUpgrade ? do we need this | |
63 | virtual void SetDefaults(); | |
64 | virtual void StepManager(); | |
852af72e | 65 | virtual void SetLayerChipTypeID(Int_t lr, UInt_t id); |
66 | virtual Int_t GetLayerChipTypeID(Int_t lr); | |
b705c75b | 67 | virtual void SetStaveModelIB(AliITSUModel_t model) {fStaveModelIB=model;} |
68 | virtual void SetStaveModelOB(AliITSUModel_t model) {fStaveModelOB=model;} | |
69 | virtual AliITSUModel_t GetStaveModelIB() const {return fStaveModelIB;} | |
70 | virtual AliITSUModel_t GetStaveModelOB() const {return fStaveModelOB;} | |
71 | // | |
72 | private: | |
73 | AliITSUv1(const AliITSUv1 &source); // copy constructor | |
74 | AliITSUv1& operator=(const AliITSUv1 &source); // assignment operator | |
75 | ||
76 | TGeoVolume* CreateWrapperVolume(const Int_t nLay); | |
77 | ||
78 | // | |
79 | Int_t fNWrapVol; // number of wrapper volumes | |
80 | Double_t* fWrapRMin; // min radius of wrapper volume | |
81 | Double_t* fWrapRMax; // max radius of wrapper volume | |
82 | Double_t* fWrapZSpan; // Z span of wrapper volume | |
83 | Bool_t *fLayTurbo; // True for "turbo" layers | |
852af72e | 84 | Double_t *fLayPhi0; // Vector of layer's 1st stave phi in lab |
b705c75b | 85 | Double_t *fLayRadii; // Vector of layer radii |
86 | Double_t *fLayZLength; // Vector of layer length along Z | |
852af72e | 87 | Int_t *fStavPerLay; // Vector of number of staves per layer |
88 | Int_t *fModPerStav; // Vector of number of chips per stave | |
89 | Double_t *fStaThick; // Vector of stave thicknesses | |
90 | Double_t *fStaWidth; // Vector of stave width (only used for turbo) | |
91 | Double_t *fStaTilt; // Vector of stave tilt (only used for turbo) | |
b705c75b | 92 | Double_t *fDetThick; // Vector of detector thicknesses |
852af72e | 93 | UInt_t *fChipTypeID; // Vector of detector type id |
b705c75b | 94 | Int_t *fBuildLevel; // Vector of Material Budget Studies |
95 | // | |
96 | AliITSUv1Layer **fUpGeom; //! Geometry | |
97 | AliITSUModel_t fStaveModelIB; // The stave model for the Inner Barrel | |
98 | AliITSUModel_t fStaveModelOB; // The stave model for the Outer Barrel | |
99 | ||
100 | // Parameters for the Upgrade geometry | |
101 | ||
102 | ClassDef(AliITSUv1,0) | |
103 | }; | |
104 | ||
105 | #endif |