]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/UPGRADE/AliITSUv0.h
Fixing the (main part of) coding conventions.
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUv0.h
1 #ifndef ALIITSUV0_H
2 #define ALIITSUV0_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 // Chinorat Kobdaj (kobdaj@g.sut.ac.th)
12 //
13 //========================================================================
14
15
16 // $Id: AliITSUv0.h 
17
18 #include "AliITSU.h"
19
20 typedef enum {
21   kModelDummy=0,
22   kModel0=1,
23   kModel1=2, 
24   kModel21=3,
25   kModel22=4,
26   kModel3=5,
27 } AliITSUModel_t;
28
29
30 class  AliITSUv0Layer;
31 //class  AliITSv11GeomBeamPipe;
32 class  TGeoVolume;
33 class  TGeoVolumeAssembly;
34
35 class AliITSUv0 : public AliITSU {
36
37  public:
38   AliITSUv0();
39   AliITSUv0(const char *title, const Int_t nlay);
40   virtual       ~AliITSUv0() ;
41   
42   virtual void   AddAlignableVolumes() const;
43   virtual void   CreateGeometry();
44   virtual void   CreateMaterials();
45   virtual void   DefineLayer(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nladd,
46                              Int_t nmod, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0);
47   virtual void   DefineLayerTurbo(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nladd,
48                                   Int_t nmod,Double_t width,Double_t tilt,
49                                   Double_t lthick = 0.,Double_t dthick = 0.,UInt_t detType=0, Int_t buildFlag=0);
50   virtual void   GetLayerParameters(Int_t nlay, Double_t &phi0,Double_t &r, Double_t &zlen,
51                                     Int_t &nladd, Int_t &nmod,
52                                     Double_t &width, Double_t &tilt,
53                                     Double_t &lthick, Double_t &mthick,
54                                     UInt_t &dettype) const;
55   virtual void   Init(); 
56   virtual Bool_t IsLayerTurbo(Int_t nlay);
57   virtual Int_t  IsVersion()                 const { return 20;}  // vUpgrade ? do we need this
58   virtual void   SetDefaults();
59   virtual void   StepManager();
60   virtual void   SetLayerDetTypeID(Int_t lr, UInt_t id);
61   virtual Int_t  GetLayerDetTypeID(Int_t lr);
62   virtual void   SetStaveModel(AliITSUModel_t model) {fStaveModel=model;}
63   virtual AliITSUModel_t GetStaveModel() const {return fStaveModel;}
64   //
65  private:
66   AliITSUv0(const AliITSUv0 &source); // copy constructor
67   AliITSUv0& operator=(const AliITSUv0 &source); // assignment operator
68   //
69   Bool_t   *fLayTurbo;       // True for "turbo" layers
70   Double_t *fLayPhi0;        // Vector of layer's 1st ladder phi in lab
71   Double_t *fLayRadii;       // Vector of layer radii
72   Double_t *fLayZLength;     // Vector of layer length along Z
73   Int_t    *fLaddPerLay;     // Vector of number of ladders per layer
74   Int_t    *fModPerLadd;     // Vector of number of modules per ladder
75   Double_t *fLadThick;       // Vector of ladder thicknesses
76   Double_t *fLadWidth;       // Vector of ladder width (only used for turbo)
77   Double_t *fLadTilt;        // Vector of ladder tilt (only used for turbo)
78   Double_t *fDetThick;       // Vector of detector thicknesses
79   UInt_t   *fDetTypeID;      // Vector of detector type id
80   Int_t    *fBuildLevel;     // Vector of Material Budget Studies
81   //  
82   AliITSUv0Layer **fUpGeom; //! Geometry
83   AliITSUModel_t fStaveModel; // The stave model
84   
85   // Parameters for the Upgrade geometry
86   
87   ClassDef(AliITSUv0,0)                          
88 };
89  
90 #endif