1 #ifndef ALIITSV11GEOMCABLEROUND_H
2 #define ALIITSV11GEOMCABLEROUND_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 //*************************************************************************
9 // Class for round cables
11 // Ludovic Gaudichet gaudichet@to.infn.it
12 //*************************************************************************
17 #include "AliITSv11GeomCable.h"
19 class AliITSv11GeomCableRound : public AliITSv11GeomCable {
22 AliITSv11GeomCableRound(const char* name, Double_t radius);
23 AliITSv11GeomCableRound(const AliITSv11GeomCableRound &source);
24 AliITSv11GeomCableRound& operator=(const AliITSv11GeomCableRound &source);
25 virtual ~AliITSv11GeomCableRound() {};
27 virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
28 virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;
30 void AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
31 Double_t *coord, Double_t *orthVect);
32 Int_t CreateAndInsertCableSegment(Int_t p2);
33 Int_t CreateAndInsertTorusSegment(Int_t p2, Double_t rotation=0);
34 void PrintCheckPoints() const;
36 void SetNLayers(Int_t nLayers);
37 Int_t SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,
39 void SetPhi(Double_t phi1, Double_t phi2)
40 {fPhiMin=phi1; fPhiMax=phi2;};
43 TGeoVolume* CreateSegment( Double_t *coord1,Double_t *coord2,
44 Double_t *localVect1, Double_t *localVect2 );
45 TGeoVolume* CreateTorus( Double_t &phi, Double_t &r );
47 Double_t fRadius; // total radius
48 Int_t fNlayer; // number of layers
49 Double_t fPhiMin; // minimum phi
50 Double_t fPhiMax; // maximum phi
51 Double_t fLayThickness[fgkCableMaxLayer]; // layer thicknesses
52 Int_t fLayColor[fgkCableMaxLayer]; // layer colors
53 TGeoMedium *fLayMedia[fgkCableMaxLayer]; // layer media
55 ClassDef(AliITSv11GeomCableRound,1)