update for the NUA
[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   virtual ~AliITSv11GeomCableRound() {};
24
25   virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
26   virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
27
28   void          AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
29                                Double_t *coord, Double_t *orthVect);
30   TGeoVolume*   CreateAndInsertCableSegment(Int_t p2, TGeoCombiTrans** ct=0);
31   TGeoVolume*   CreateAndInsertTubeSegment(Int_t p2, TGeoCombiTrans** ct=0);
32   TGeoVolume*   CreateAndInsertTorusSegment(Int_t p2, Double_t rotation=0,
33                                             TGeoCombiTrans** ct=0);
34   void          PrintCheckPoints() const;
35
36   void          SetNLayers(Int_t nLayers);
37   Int_t         SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,
38                          Int_t color=0);
39   void          SetPhi(Double_t phi1, Double_t phi2)
40                       {fPhiMin=phi1; fPhiMax=phi2;};
41
42  protected:
43   TGeoVolume*   CreateSegment( const Double_t *coord1,const Double_t *coord2,
44                                Double_t *localVect1, Double_t *localVect2, Int_t p);
45   TGeoVolume*   CreateTubeSegment( const Double_t *coord1,const Double_t *coord2, Int_t p);
46   TGeoVolume*   CreateTorus( const Double_t &phi, const Double_t &r, Int_t p);
47
48   Double_t   fRadius;                         // total radius
49   Int_t      fNlayer;                         // number of layers
50   Double_t   fPhiMin;                         // minimum phi
51   Double_t   fPhiMax;                         // maximum phi
52   Double_t   fLayThickness[fgkCableMaxLayer]; // layer thicknesses
53   Int_t      fLayColor[fgkCableMaxLayer];     // layer colors
54   TGeoMedium *fLayMedia[fgkCableMaxLayer];    // layer media
55
56  private:
57   AliITSv11GeomCableRound(const AliITSv11GeomCableRound &source);
58   AliITSv11GeomCableRound& operator=(const AliITSv11GeomCableRound &source);
59
60   ClassDef(AliITSv11GeomCableRound,1)
61 };
62
63
64 #endif