]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSv11GeomCableFlat.h
v11 cable classes with new functionalitiers. V11 compiled by default
[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   TGeoVolume* CreateAndInsertCableSegment(Int_t p2, Double_t rotation=0);
36   TGeoVolume* CreateAndInsertBoxCableSegment(Int_t p2, Double_t rotation=0);
37   TGeoVolume* CreateAndInsertCableCylSegment(Int_t p2, Double_t rotation=0);
38
39   void        SetWidth(Double_t width) { fWidth = width;};
40   void        SetThickness(Double_t thick) {fThick = thick;};
41   Double_t    GetWidth() const {return fWidth;};
42   Double_t    GetThickness() const {return fThick;};
43
44   virtual void  PrintCheckPoints() const;
45   virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
46   virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
47
48  protected:
49   TGeoVolume *CreateSegment( Double_t *coord1,Double_t *coord2,
50                              Double_t *localVect1, Double_t *localVect2 );
51
52   TGeoVolume *CreateBoxSegment( Double_t *coord1,Double_t *coord2);
53
54   TGeoVolume *CreateCylSegment( Double_t &phi, Double_t &r);
55
56   Double_t  fWidth;                                 // width
57   Double_t  fThick;                                 // total thickness
58   Int_t     fNlayer;                                // number of layers
59   Double_t  fPreviousX[3];                          // used internally
60   Double_t         fLayThickness[fgkCableMaxLayer]; // layer thicknesses
61   TGeoTranslation *fTranslation[fgkCableMaxLayer];  // layer translations
62   TGeoMedium      *fLayMedia[fgkCableMaxLayer];     // layer media
63   Int_t            fLayColor[fgkCableMaxLayer];     // layer colors
64
65   ClassDef(AliITSv11GeomCableFlat,1)
66 };
67
68
69 #endif