1 #ifndef ALIITSV11GEOMETRYUPGRADE_H
2 #define ALIITSV11GEOMETRYUPGRADE_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // This class Defines the Geometry for the ITS Upgrade using TGeo
9 // This is a work class used to study different configurations
10 // during the development of the new ITS structure.
12 // Mario Sitta <sitta@to.infn.it>
13 //*************************************************************************
17 $Id: AliITSUv11Layer.h
20 #include "AliITSv11Geometry.h"
21 #include <TGeoManager.h>
22 #include <TGeoCompositeShape.h>
27 class AliITSUv11Layer : public AliITSv11Geometry {
30 AliITSUv11Layer(Int_t debug);
31 AliITSUv11Layer(Int_t lay, Int_t debug);
32 AliITSUv11Layer(Int_t lay, Bool_t turbo, Int_t debug);
33 AliITSUv11Layer(const AliITSUv11Layer &source);
34 AliITSUv11Layer& operator=(const AliITSUv11Layer &source);
35 virtual ~AliITSUv11Layer();
37 Bool_t IsTurbo() {return fIsTurbo;};
39 Double_t GetLadderThick() {return fLadderThick;};
40 Double_t GetLadderTilt() {return fLadderTilt;};
41 Double_t GetLadderWidth() {return fLadderWidth;};
42 Double_t GetSensorThick() {return fSensorThick;};
43 Double_t GetNLadders() {return fNLadders;};
44 Double_t GetNModules() {return fNModules;};
45 Double_t GetRadius() {return fLayRadius;};
46 Double_t GetZLength() {return fZLength;};
47 Int_t GetDetType() const {return fDetTypeID;}
49 void SetLadderThick(const Double_t t) {fLadderThick = t;};
50 void SetLadderTilt(const Double_t t);
51 void SetLadderWidth(const Double_t w);
52 void SetSensorThick(const Double_t t) {fSensorThick = t;};
53 void SetNLadders(const Int_t n) {fNLadders = n;};
54 void SetNModules(const Int_t m) {fNModules = m;};
55 void SetRadius(const Double_t r) {fLayRadius = r;};
56 void SetZLength(const Double_t z) {fZLength = z;};
57 void SetDetType(Int_t tp) {fDetTypeID = tp;}
58 virtual void CreateLayer(TGeoVolume *moth,
59 const TGeoManager *mgr=gGeoManager);
62 void CreateLayerTurbo(TGeoVolume *moth,
63 const TGeoManager *mgr=gGeoManager);
65 Double_t RadiusOfTurboContainer();
67 TGeoVolume* CreateLadder(const TGeoManager *mgr=gGeoManager);
68 TGeoVolume* CreateModule(const Double_t x, const Double_t y,
70 const TGeoManager *mgr=gGeoManager);
72 Int_t fLayerNumber; // Current layer number
73 Double_t fLayRadius; // Inner radius of this layer
74 Double_t fZLength; // Z length of this layer
75 Double_t fSensorThick; // Sensor thickness
76 Double_t fLadderThick; // Ladder thickness
77 Double_t fLadderWidth; // Ladder width (for turbo layers only)
78 Double_t fLadderTilt; // Ladder tilt angle (for turbo layers only)
79 Int_t fNLadders; // Number of ladders in this layer
80 Int_t fNModules; // Number of modules per ladder in this layer
81 UInt_t fDetTypeID; // detector type id
82 Bool_t fIsTurbo; // True if this layer is a "turbo" layer
83 // Parameters for the Upgrade geometry
85 static const Double_t fgkDefaultSensorThick; // Default sensor thickness
86 static const Double_t fgkDefaultLadderThick; // Default ladder thickness
88 ClassDef(AliITSUv11Layer,0) // ITS v11 Upgrade geometry