Line data Source code
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 TGeoMedium;
17 :
18 : #include "AliITSv11GeomCable.h"
19 :
20 : class AliITSv11GeomCableFlat : public AliITSv11GeomCable {
21 :
22 : public:
23 : AliITSv11GeomCableFlat();
24 : AliITSv11GeomCableFlat(const char* name, Double_t width, Double_t thick);
25 340 : virtual ~AliITSv11GeomCableFlat() {};
26 :
27 : void SetNLayers(Int_t nLayers);
28 : Int_t SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,Int_t color=0);
29 : void AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
30 : Double_t *coord, Double_t *orthVect);
31 : TGeoVolume* CreateAndInsertCableSegment(Int_t p2, Double_t rotation=0,
32 : TGeoCombiTrans** ct=0);
33 : TGeoVolume* CreateAndInsertBoxCableSegment(Int_t p2, Double_t rotation=0,
34 : TGeoCombiTrans** ct=0);
35 : TGeoVolume* CreateAndInsertCableCylSegment(Int_t p2, Double_t rotation=0,
36 : TGeoCombiTrans** ct=0);
37 :
38 96 : void SetWidth(Double_t width) { fWidth = width;};
39 84 : void SetThickness(Double_t thick) {fThick = thick;};
40 46 : Double_t GetWidth() const {return fWidth;};
41 38 : Double_t GetThickness() const {return fThick;};
42 :
43 : virtual void PrintCheckPoints() const;
44 : virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
45 : virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
46 :
47 : protected:
48 : TGeoVolume *CreateSegment( const Double_t *coord1,const Double_t *coord2,
49 : const Double_t *localVect1,
50 : const Double_t *localVect2 );
51 :
52 : TGeoVolume *CreateBoxSegment( const Double_t *coord1,const Double_t *coord2);
53 :
54 : TGeoVolume *CreateCylSegment( const Double_t &phi, const 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 : private:
66 : AliITSv11GeomCableFlat(const AliITSv11GeomCableFlat &source);
67 : AliITSv11GeomCableFlat& operator=(const AliITSv11GeomCableFlat &source);
68 :
69 116 : ClassDef(AliITSv11GeomCableFlat,1)
70 : };
71 :
72 :
73 : #endif
|