]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSvUpgrade.h
Eliminated hardwired names. The layed detector type ID is stored in TGeo and can
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSvUpgrade.h
CommitLineData
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
20class AliITSv11GeometryUpgrade;
362fe8e0 21class AliITSv11GeomBeamPipe;
29998a6e 22class TGeoVolume;
23class TGeoVolumeAssembly;
24
25class 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 &lthick, 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