]>
Commit | Line | Data |
---|---|---|
29998a6e | 1 | #ifndef ALIITSVUPGRADE_H |
2 | #define ALIITSVUPGRADE_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: AliITSvUpgrade.h | |
16 | ||
17 | #include "AliITSUpg.h" | |
18 | #include "AliITSInitGeometryUpg.h" | |
19 | ||
20 | class AliITSv11GeometryUpgrade; | |
362fe8e0 | 21 | class AliITSv11GeomBeamPipe; |
29998a6e | 22 | class TGeoVolume; |
23 | class TGeoVolumeAssembly; | |
24 | ||
25 | class AliITSvUpgrade : public AliITSUpg { | |
26 | ||
27 | public: | |
28 | AliITSvUpgrade(); | |
29 | AliITSvUpgrade(const char *title); | |
30 | AliITSvUpgrade(const char *name, const char *title, const Int_t nlay); | |
31 | virtual ~AliITSvUpgrade() ; | |
32 | ||
33 | virtual void AddAlignableVolumes() const; | |
362fe8e0 | 34 | virtual void AddBeamPipe(const Double_t rmin, const Double_t rmax, |
35 | const Double_t halfzlen=0.); | |
29998a6e | 36 | virtual void CreateGeometry(); |
37 | virtual void CreateMaterials(); | |
38 | virtual void DefineLayer(const Int_t nlay, const Double_t r, | |
39 | const Double_t zlen, const Int_t nladd, | |
40 | const Int_t nmod, const Double_t lthick = 0., | |
535d15f5 | 41 | const Double_t dthick = 0., |
42 | const UInt_t detType=0); | |
29998a6e | 43 | virtual void DefineLayerTurbo(const Int_t nlay, const Double_t r, |
44 | const Double_t zlen, const Int_t nladd, | |
45 | const Int_t nmod, const Double_t width, | |
46 | const Double_t tilt, | |
47 | const Double_t lthick = 0., | |
535d15f5 | 48 | const Double_t dthick = 0., |
49 | const UInt_t detType=0); | |
362fe8e0 | 50 | virtual void GetBeamPipeParameters(Double_t &rmin, Double_t &rmax, |
51 | Double_t &hzlen); | |
29998a6e | 52 | virtual void GetLayerParameters(const Int_t nlay, |
53 | Double_t &r, Double_t &zlen, | |
54 | Int_t &nladd, Int_t &nmod, | |
55 | Double_t &width, Double_t &tilt, | |
56 | Double_t <hick, Double_t &mthick); | |
57 | virtual Int_t GetMajorVersion() const {return fMajorVersion;} | |
58 | virtual Int_t GetMinorVersion() const {return fMinorVersion;} | |
59 | virtual Int_t GetNumberOfLayers() const {return fNumberOfLayers;} | |
362fe8e0 | 60 | virtual Bool_t HasBeamPipe() const {return fBeamPipe;} |
29998a6e | 61 | virtual void Init(); |
62 | virtual Bool_t IsLayerTurbo(const Int_t nlay); | |
63 | virtual Int_t IsVersion() const {// returns the ITS version number | |
64 | return 20;} // vUpgrade | |
65 | virtual void SetDefaults(); | |
66 | virtual void SetMinorVersion(Int_t v=2) {fMinorVersion = v;} | |
67 | virtual void SetNumberOfLayers(Int_t n) {fNumberOfLayers = n;} | |
68 | virtual void StepManager(); | |
535d15f5 | 69 | virtual void SetLayerDetTypeID(Int_t lr, UInt_t id); |
70 | virtual Int_t GetLayerDetTypeID(Int_t lr); | |
71 | // | |
29998a6e | 72 | protected: |
ce886e8e | 73 | void SetT2Lmatrix(Int_t uid, Double_t yShift,Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries |
29998a6e | 74 | |
75 | private: | |
76 | AliITSvUpgrade(const AliITSvUpgrade &source); // copy constructor | |
77 | AliITSvUpgrade& operator=(const AliITSvUpgrade &source); // assignment operator | |
78 | ||
79 | Int_t fMajorVersion; // Major version number == IsVersion | |
80 | Int_t fMinorVersion; // Minor version number | |
81 | ||
82 | Int_t fNumberOfLayers; // Number of layers | |
83 | Bool_t *fLayTurbo; // True for "turbo" layers | |
84 | Double_t *fLayRadii; // Vector of layer radii | |
85 | Double_t *fLayZLength; // Vector of layer length along Z | |
86 | Int_t *fLaddPerLay; // Vector of number of ladders per layer | |
87 | Int_t *fModPerLadd; // Vector of number of modules per ladder | |
88 | Double_t *fLadThick; // Vector of ladder thicknesses | |
89 | Double_t *fLadWidth; // Vector of ladder width (only used for turbo) | |
90 | Double_t *fLadTilt; // Vector of ladder tilt (only used for turbo) | |
91 | Double_t *fDetThick; // Vector of detector thicknesses | |
535d15f5 | 92 | UInt_t *fDetTypeID; // Vector of detector type id |
362fe8e0 | 93 | Bool_t fBeamPipe; // True for creating the beam pipe |
94 | Double_t fBeamPipeRmin; // Rmin of beam pipe | |
95 | Double_t fBeamPipeRmax; // Rmax of beam pipe | |
96 | Double_t fBeamPipeZlen; // Half Z length of beam pipe | |
97 | ||
29998a6e | 98 | AliITSInitGeometryUpg fInitGeom; //! Get access to decoding and AliITSgeom init functins |
99 | ||
100 | AliITSv11GeometryUpgrade **fUpGeom; //! Geometry | |
362fe8e0 | 101 | AliITSv11GeomBeamPipe *fBPGeom; //! Beam Pipe Geometry |
29998a6e | 102 | |
103 | // Parameters for the Upgrade geometry | |
104 | ||
362fe8e0 | 105 | static const Double_t fgkBeamPipeHalfZLen; // Default value for beampipe Z |
106 | ||
29998a6e | 107 | ClassDef(AliITSvUpgrade,0) |
108 | }; | |
109 | ||
110 | #endif |