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 */
6 //========================================================================
8 // Geometry for the Upgrade of the Inner Tracking System
10 // Mario Sitta (sitta@to.infn.it)
12 //========================================================================
19 class AliITSUv11Layer;
20 class AliITSv11GeomBeamPipe;
22 class TGeoVolumeAssembly;
24 class AliITSUv11 : public AliITSU {
28 AliITSUv11(const char *title, const Int_t nlay);
29 virtual ~AliITSUv11() ;
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 <hick, Double_t &mthick) const;
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);
52 AliITSUv11(const AliITSUv11 &source); // copy constructor
53 AliITSUv11& operator=(const AliITSUv11 &source); // assignment operator
55 Bool_t *fLayTurbo; // True for "turbo" layers
56 Double_t *fLayPhi0; // Vector of layer's 1st ladder phi in lab
57 Double_t *fLayRadii; // Vector of layer radii
58 Double_t *fLayZLength; // Vector of layer length along Z
59 Int_t *fLaddPerLay; // Vector of number of ladders per layer
60 Int_t *fModPerLadd; // Vector of number of modules per ladder
61 Double_t *fLadThick; // Vector of ladder thicknesses
62 Double_t *fLadWidth; // Vector of ladder width (only used for turbo)
63 Double_t *fLadTilt; // Vector of ladder tilt (only used for turbo)
64 Double_t *fDetThick; // Vector of detector thicknesses
65 UInt_t *fDetTypeID; // Vector of detector type id
67 AliITSUv11Layer **fUpGeom; //! Geometry
69 // Parameters for the Upgrade geometry
71 ClassDef(AliITSUv11,0)