]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/UPGRADE/AliITSUv11.h
1) The ladders are built in increasing phi order.
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUv11.h
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: AliITSUv11.h 
16
17 #include "AliITSU.h"
18
19 class  AliITSUv11Layer;
20 class  AliITSv11GeomBeamPipe;
21 class  TGeoVolume;
22 class  TGeoVolumeAssembly;
23
24 class AliITSUv11 : public AliITSU {
25
26  public:
27   AliITSUv11();
28   AliITSUv11(const char *title, const Int_t nlay);
29   virtual       ~AliITSUv11() ;
30   
31   virtual void   AddAlignableVolumes() const;
32   virtual void   CreateGeometry();
33   virtual void   CreateMaterials();
34   virtual void   DefineLayer(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nladd,
35                              Int_t nmod, Double_t lthick=0.,Double_t dthick=0.,UInt_t detType=0);
36   virtual void   DefineLayerTurbo(Int_t nlay,Double_t phi0,Double_t r,Double_t zlen,Int_t nladd,
37                                   Int_t nmod,Double_t width,Double_t tilt,
38                                   Double_t lthick = 0.,Double_t dthick = 0.,UInt_t detType=0);
39   virtual void   GetLayerParameters(Int_t nlay, Double_t &phi0,Double_t &r, Double_t &zlen,
40                                     Int_t &nladd, Int_t &nmod,
41                                     Double_t &width, Double_t &tilt,
42                                     Double_t &lthick, Double_t &mthick) const;
43   virtual void   Init(); 
44   virtual Bool_t IsLayerTurbo(Int_t nlay);
45   virtual Int_t  IsVersion()                 const { return 20;}  // vUpgrade ? do we need this
46   virtual void   SetDefaults();
47   virtual void   StepManager();
48   virtual void   SetLayerDetTypeID(Int_t lr, UInt_t id);
49   virtual Int_t  GetLayerDetTypeID(Int_t lr);
50   //
51  protected:
52   void SetT2Lmatrix(Int_t uid, Double_t yShift,Bool_t yFlip, Bool_t yRot180=kFALSE) const; // Set T2L matrix in TGeoPNEntries
53   
54  private:
55   AliITSUv11(const AliITSUv11 &source); // copy constructor
56   AliITSUv11& operator=(const AliITSUv11 &source); // assignment operator
57   //
58   Bool_t   *fLayTurbo;       // True for "turbo" layers
59   Double_t *fLayPhi0;        // Vector of layer's 1st ladder phi in lab
60   Double_t *fLayRadii;       // Vector of layer radii
61   Double_t *fLayZLength;     // Vector of layer length along Z
62   Int_t    *fLaddPerLay;     // Vector of number of ladders per layer
63   Int_t    *fModPerLadd;     // Vector of number of modules per ladder
64   Double_t *fLadThick;       // Vector of ladder thicknesses
65   Double_t *fLadWidth;       // Vector of ladder width (only used for turbo)
66   Double_t *fLadTilt;        // Vector of ladder tilt (only used for turbo)
67   Double_t *fDetThick;       // Vector of detector thicknesses
68   UInt_t   *fDetTypeID;      // Vector of detector type id
69   //  
70   AliITSUv11Layer **fUpGeom; //! Geometry
71   
72   // Parameters for the Upgrade geometry
73   
74   ClassDef(AliITSUv11,0)                          
75 };
76  
77 #endif