1 #ifndef ALIITSV11GEOMCABLEFLAT_H
2 #define ALIITSV11GEOMCABLEFLAT_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 //*************************************************************************
8 // Class for flat cables
10 // Ludovic Gaudichet gaudichet@to.infn.it
11 //*************************************************************************
14 class TGeoTranslation;
18 #include "AliITSv11GeomCable.h"
20 class AliITSv11GeomCableFlat : public AliITSv11GeomCable {
23 AliITSv11GeomCableFlat();
24 AliITSv11GeomCableFlat(const char* name, Double_t width, Double_t thick);
25 AliITSv11GeomCableFlat(const AliITSv11GeomCableFlat &source);
26 AliITSv11GeomCableFlat& operator=(const AliITSv11GeomCableFlat &source);
27 virtual ~AliITSv11GeomCableFlat() {};
29 void SetNLayers(Int_t nLayers);
30 Int_t SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,Int_t color=0);
31 void AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
32 Double_t *coord, Double_t *orthVect);
33 TGeoVolume* CreateAndInsertCableSegment(Int_t p2, Double_t rotation=0,
34 TGeoCombiTrans** ct=0);
35 TGeoVolume* CreateAndInsertBoxCableSegment(Int_t p2, Double_t rotation=0,
36 TGeoCombiTrans** ct=0);
37 TGeoVolume* CreateAndInsertCableCylSegment(Int_t p2, Double_t rotation=0,
38 TGeoCombiTrans** ct=0);
40 void SetWidth(Double_t width) { fWidth = width;};
41 void SetThickness(Double_t thick) {fThick = thick;};
42 Double_t GetWidth() const {return fWidth;};
43 Double_t GetThickness() const {return fThick;};
45 virtual void PrintCheckPoints() const;
46 virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
47 virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
50 TGeoVolume *CreateSegment( Double_t *coord1,Double_t *coord2,
51 Double_t *localVect1, Double_t *localVect2 );
53 TGeoVolume *CreateBoxSegment( Double_t *coord1,Double_t *coord2);
55 TGeoVolume *CreateCylSegment( Double_t &phi, Double_t &r);
57 Double_t fWidth; // width
58 Double_t fThick; // total thickness
59 Int_t fNlayer; // number of layers
60 Double_t fPreviousX[3]; // used internally
61 Double_t fLayThickness[fgkCableMaxLayer]; // layer thicknesses
62 TGeoTranslation *fTranslation[fgkCableMaxLayer]; // layer translations
63 TGeoMedium *fLayMedia[fgkCableMaxLayer]; // layer media
64 Int_t fLayColor[fgkCableMaxLayer]; // layer colors
66 ClassDef(AliITSv11GeomCableFlat,1)