Line data Source code
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 12 : virtual ~AliITSv11GeomCableRound() {};
24 :
25 : virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
26 : virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
27 :
28 : void AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
29 : Double_t *coord, Double_t *orthVect);
30 : TGeoVolume* CreateAndInsertCableSegment(Int_t p2, TGeoCombiTrans** ct=0);
31 : TGeoVolume* CreateAndInsertTubeSegment(Int_t p2, TGeoCombiTrans** ct=0);
32 : TGeoVolume* CreateAndInsertTorusSegment(Int_t p2, Double_t rotation=0,
33 : TGeoCombiTrans** ct=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 2 : {fPhiMin=phi1; fPhiMax=phi2;};
41 :
42 : protected:
43 : TGeoVolume* CreateSegment( const Double_t *coord1,const Double_t *coord2,
44 : Double_t *localVect1, Double_t *localVect2, Int_t p);
45 : TGeoVolume* CreateTubeSegment( const Double_t *coord1,const Double_t *coord2, Int_t p);
46 : TGeoVolume* CreateTorus( const Double_t &phi, const Double_t &r, Int_t p);
47 :
48 : Double_t fRadius; // total radius
49 : Int_t fNlayer; // number of layers
50 : Double_t fPhiMin; // minimum phi
51 : Double_t fPhiMax; // maximum phi
52 : Double_t fLayThickness[fgkCableMaxLayer]; // layer thicknesses
53 : Int_t fLayColor[fgkCableMaxLayer]; // layer colors
54 : TGeoMedium *fLayMedia[fgkCableMaxLayer]; // layer media
55 :
56 : private:
57 : AliITSv11GeomCableRound(const AliITSv11GeomCableRound &source);
58 : AliITSv11GeomCableRound& operator=(const AliITSv11GeomCableRound &source);
59 :
60 116 : ClassDef(AliITSv11GeomCableRound,1)
61 : };
62 :
63 :
64 : #endif
|