New geometry: SDD, cables and update on V11 (L. Gaudichet)
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeomCableRound.h
1 #ifndef ALIITSV11GEOMCABLEROUND_H
2 #define ALIITSV11GEOMCABLEROUND_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7
8 //*************************************************************************
9 //   Class for round cables
10 //
11 // Ludovic Gaudichet                                   gaudichet@to.infn.it
12 //*************************************************************************
13
14 class TGeoVolume;
15 class TGeoMedium;
16
17 #include "AliITSv11GeomCable.h"
18
19 class AliITSv11GeomCableRound : public AliITSv11GeomCable {
20
21  public:
22   AliITSv11GeomCableRound(const char* name, Double_t radius);
23   AliITSv11GeomCableRound(const AliITSv11GeomCableRound &source);
24   AliITSv11GeomCableRound& operator=(const AliITSv11GeomCableRound &source);
25   virtual ~AliITSv11GeomCableRound() {};
26
27   virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
28   virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
29
30   void          AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
31                                Double_t *coord, Double_t *orthVect);
32   Int_t         CreateAndInsertCableSegment(Int_t p2);
33   void          PrintCheckPoints() const;
34
35   void          SetNLayers(Int_t nLayers);
36   Int_t         SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,
37                          Int_t color=0);
38   void          SetPhi(Double_t phi1, Double_t phi2)
39                       {fPhiMin=phi1; fPhiMax=phi2;};
40
41  protected:
42   TGeoVolume*   CreateSegment( Double_t *coord1,Double_t *coord2,
43                                Double_t *localVect1, Double_t *localVect2 );
44
45   Double_t   fRadius;                         // total radius
46   Int_t      fNlayer;                         // number of layers
47
48   Double_t   fPhiMin;                         // minimum phi
49   Double_t   fPhiMax;                         // maximum phi
50   Double_t   fLayThickness[fgkCableMaxLayer]; // layer thicknesses
51   Int_t      fLayColor[fgkCableMaxLayer];     // layer colors
52   TGeoMedium *fLayMedia[fgkCableMaxLayer];    // layer media
53
54   ClassDef(AliITSv11GeomCableRound,1)
55 };
56
57
58 #endif