]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSv11GeomCableRound.h
Mixtures instead of materials with fractional Z in SPD (SPD bus and SPD end ladder
[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   Int_t         CreateAndInsertTorusSegment(Int_t p2, Double_t rotation=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( Double_t *coord1,Double_t *coord2,
44                                Double_t *localVect1, Double_t *localVect2 );
45   TGeoVolume*   CreateTorus(  Double_t &phi, Double_t &r );
46
47   Double_t   fRadius;                         // total radius
48   Int_t      fNlayer;                         // number of layers
49   Double_t   fPhiMin;                         // minimum phi
50   Double_t   fPhiMax;                         // maximum phi
51   Double_t   fLayThickness[fgkCableMaxLayer]; // layer thicknesses
52   Int_t      fLayColor[fgkCableMaxLayer];     // layer colors
53   TGeoMedium *fLayMedia[fgkCableMaxLayer];    // layer media
54
55   ClassDef(AliITSv11GeomCableRound,1)
56 };
57
58
59 #endif