New geometry: SDD, cables and update on V11 (L. Gaudichet)
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeomCableFlat.h
1 #ifndef ALIITSV11GEOMCABLEFLAT_H
2 #define ALIITSV11GEOMCABLEFLAT_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 //   Class for flat cables
9 //
10 // Ludovic Gaudichet                                   gaudichet@to.infn.it
11 //*************************************************************************
12
13 class TGeoVolume;
14 class TGeoTranslation;
15 //class TGeoCombiTrans;
16 //class TGeoArb8;
17 //class TGeoNode;
18 class TGeoMedium;
19
20 #include "AliITSv11GeomCable.h"
21
22 class AliITSv11GeomCableFlat : public AliITSv11GeomCable {
23
24  public:
25   AliITSv11GeomCableFlat();
26   AliITSv11GeomCableFlat(const char* name, Double_t width, Double_t thick);
27   AliITSv11GeomCableFlat(const AliITSv11GeomCableFlat &source);
28   AliITSv11GeomCableFlat& operator=(const AliITSv11GeomCableFlat &source);
29   virtual ~AliITSv11GeomCableFlat() {};
30
31   void     SetNLayers(Int_t nLayers);
32   Int_t    SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,Int_t color=0);
33   void     AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
34                         Double_t *coord, Double_t *orthVect);
35   Int_t    CreateAndInsertCableSegment(Int_t p2, Double_t rotation=0);
36   void     SetWidth(Double_t width) { fWidth = width;};
37   void     SetThickness(Double_t thick) {fThick = thick;};
38   Double_t GetWidth() const {return fWidth;};
39   Double_t GetThickness() const {return fThick;};
40
41   virtual void  PrintCheckPoints() const;
42   virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
43   virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
44
45  protected:
46   TGeoVolume *CreateSegment( Double_t *coord1,Double_t *coord2,
47                              Double_t *localVect1, Double_t *localVect2 );
48
49   Double_t  fWidth;                                 // width
50   Double_t  fThick;                                 // total thickness
51   Int_t     fNlayer;                                // number of layers
52   Double_t  fPreviousX[3];                          // used internally
53   Double_t         fLayThickness[fgkCableMaxLayer]; // layer thicknesses
54   TGeoTranslation *fTranslation[fgkCableMaxLayer];  // layer translations
55   TGeoMedium      *fLayMedia[fgkCableMaxLayer];     // layer media
56   Int_t            fLayColor[fgkCableMaxLayer];     // layer colors
57
58   ClassDef(AliITSv11GeomCableFlat,1)
59 };
60
61
62 #endif