update for background subtraction without printouts
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUv0.h
CommitLineData
7302d0f8 1#ifndef ALIITSVUV0_H
2#define ALIITSVUV0_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
20typedef enum {
21 kModelDummy=0,
22 kModel0=1,
23 kModel1=2,
24 kModel21=3,
25 kModel22=4,
26 kModel3=5,
27} AliITSUModel_t;
28
29
30class AliITSUv0Layer;
31//class AliITSv11GeomBeamPipe;
32class TGeoVolume;
33class TGeoVolumeAssembly;
34
35class 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