ROOT logo
#ifndef ALIITSV11GEOMCABLEROUND_H
#define ALIITSV11GEOMCABLEROUND_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */


//*************************************************************************
//   Class for round cables
//
// Ludovic Gaudichet                                   gaudichet@to.infn.it
//*************************************************************************

class TGeoVolume;
class TGeoMedium;

#include "AliITSv11GeomCable.h"

class AliITSv11GeomCableRound : public AliITSv11GeomCable {

 public:
  AliITSv11GeomCableRound(const char* name, Double_t radius);
  virtual ~AliITSv11GeomCableRound() {};

  virtual Int_t GetPoint(Int_t iCheckPt, Double_t *coord) const;
  virtual Int_t GetVect(Int_t iCheckPt, Double_t *coord) const;

  void          AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
			       Double_t *coord, Double_t *orthVect);
  TGeoVolume*   CreateAndInsertCableSegment(Int_t p2, TGeoCombiTrans** ct=0);
  TGeoVolume*   CreateAndInsertTubeSegment(Int_t p2, TGeoCombiTrans** ct=0);
  TGeoVolume*   CreateAndInsertTorusSegment(Int_t p2, Double_t rotation=0,
					    TGeoCombiTrans** ct=0);
  void          PrintCheckPoints() const;

  void          SetNLayers(Int_t nLayers);
  Int_t         SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,
			 Int_t color=0);
  void          SetPhi(Double_t phi1, Double_t phi2)
                      {fPhiMin=phi1; fPhiMax=phi2;};

 protected:
  TGeoVolume*   CreateSegment( const Double_t *coord1,const Double_t *coord2,
			       Double_t *localVect1, Double_t *localVect2, Int_t p);
  TGeoVolume*   CreateTubeSegment( const Double_t *coord1,const Double_t *coord2, Int_t p);
  TGeoVolume*   CreateTorus( const Double_t &phi, const Double_t &r, Int_t p);

  Double_t   fRadius;                         // total radius
  Int_t      fNlayer;                         // number of layers
  Double_t   fPhiMin;                         // minimum phi
  Double_t   fPhiMax;                         // maximum phi
  Double_t   fLayThickness[fgkCableMaxLayer]; // layer thicknesses
  Int_t      fLayColor[fgkCableMaxLayer];     // layer colors
  TGeoMedium *fLayMedia[fgkCableMaxLayer];    // layer media

 private:
  AliITSv11GeomCableRound(const AliITSv11GeomCableRound &source);
  AliITSv11GeomCableRound& operator=(const AliITSv11GeomCableRound &source);

  ClassDef(AliITSv11GeomCableRound,1)
};


#endif
 AliITSv11GeomCableRound.h:1
 AliITSv11GeomCableRound.h:2
 AliITSv11GeomCableRound.h:3
 AliITSv11GeomCableRound.h:4
 AliITSv11GeomCableRound.h:5
 AliITSv11GeomCableRound.h:6
 AliITSv11GeomCableRound.h:7
 AliITSv11GeomCableRound.h:8
 AliITSv11GeomCableRound.h:9
 AliITSv11GeomCableRound.h:10
 AliITSv11GeomCableRound.h:11
 AliITSv11GeomCableRound.h:12
 AliITSv11GeomCableRound.h:13
 AliITSv11GeomCableRound.h:14
 AliITSv11GeomCableRound.h:15
 AliITSv11GeomCableRound.h:16
 AliITSv11GeomCableRound.h:17
 AliITSv11GeomCableRound.h:18
 AliITSv11GeomCableRound.h:19
 AliITSv11GeomCableRound.h:20
 AliITSv11GeomCableRound.h:21
 AliITSv11GeomCableRound.h:22
 AliITSv11GeomCableRound.h:23
 AliITSv11GeomCableRound.h:24
 AliITSv11GeomCableRound.h:25
 AliITSv11GeomCableRound.h:26
 AliITSv11GeomCableRound.h:27
 AliITSv11GeomCableRound.h:28
 AliITSv11GeomCableRound.h:29
 AliITSv11GeomCableRound.h:30
 AliITSv11GeomCableRound.h:31
 AliITSv11GeomCableRound.h:32
 AliITSv11GeomCableRound.h:33
 AliITSv11GeomCableRound.h:34
 AliITSv11GeomCableRound.h:35
 AliITSv11GeomCableRound.h:36
 AliITSv11GeomCableRound.h:37
 AliITSv11GeomCableRound.h:38
 AliITSv11GeomCableRound.h:39
 AliITSv11GeomCableRound.h:40
 AliITSv11GeomCableRound.h:41
 AliITSv11GeomCableRound.h:42
 AliITSv11GeomCableRound.h:43
 AliITSv11GeomCableRound.h:44
 AliITSv11GeomCableRound.h:45
 AliITSv11GeomCableRound.h:46
 AliITSv11GeomCableRound.h:47
 AliITSv11GeomCableRound.h:48
 AliITSv11GeomCableRound.h:49
 AliITSv11GeomCableRound.h:50
 AliITSv11GeomCableRound.h:51
 AliITSv11GeomCableRound.h:52
 AliITSv11GeomCableRound.h:53
 AliITSv11GeomCableRound.h:54
 AliITSv11GeomCableRound.h:55
 AliITSv11GeomCableRound.h:56
 AliITSv11GeomCableRound.h:57
 AliITSv11GeomCableRound.h:58
 AliITSv11GeomCableRound.h:59
 AliITSv11GeomCableRound.h:60
 AliITSv11GeomCableRound.h:61
 AliITSv11GeomCableRound.h:62
 AliITSv11GeomCableRound.h:63
 AliITSv11GeomCableRound.h:64