ROOT logo
#ifndef ALIITSV11GEOMCABLEFLAT_H
#define ALIITSV11GEOMCABLEFLAT_H

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

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

class TGeoVolume;
class TGeoTranslation;
class TGeoCombiTrans;
class TGeoMedium;

#include "AliITSv11GeomCable.h"

class AliITSv11GeomCableFlat : public AliITSv11GeomCable {

 public:
  AliITSv11GeomCableFlat();
  AliITSv11GeomCableFlat(const char* name, Double_t width, Double_t thick);
  virtual ~AliITSv11GeomCableFlat() {};

  void        SetNLayers(Int_t nLayers);
  Int_t       SetLayer(Int_t nLayer,Double_t thick,TGeoMedium *medium,Int_t color=0);
  void        AddCheckPoint( TGeoVolume *vol, Int_t iCheckPt,
			     Double_t *coord, Double_t *orthVect);
  TGeoVolume* CreateAndInsertCableSegment(Int_t p2, Double_t rotation=0,
					  TGeoCombiTrans** ct=0);
  TGeoVolume* CreateAndInsertBoxCableSegment(Int_t p2, Double_t rotation=0,
					     TGeoCombiTrans** ct=0);
  TGeoVolume* CreateAndInsertCableCylSegment(Int_t p2, Double_t rotation=0,
					     TGeoCombiTrans** ct=0);

  void        SetWidth(Double_t width) { fWidth = width;};
  void        SetThickness(Double_t thick) {fThick = thick;};
  Double_t    GetWidth() const {return fWidth;};
  Double_t    GetThickness() const {return fThick;};

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

 protected:
  TGeoVolume *CreateSegment( const Double_t *coord1,const Double_t *coord2,
			     const Double_t *localVect1,
			     const Double_t *localVect2 );

  TGeoVolume *CreateBoxSegment( const Double_t *coord1,const Double_t *coord2);

  TGeoVolume *CreateCylSegment( const Double_t &phi, const Double_t &r);

  Double_t  fWidth;                                 // width
  Double_t  fThick;                                 // total thickness
  Int_t     fNlayer;                                // number of layers
  Double_t  fPreviousX[3];                          // used internally
  Double_t         fLayThickness[fgkCableMaxLayer]; // layer thicknesses
  TGeoTranslation *fTranslation[fgkCableMaxLayer];  // layer translations
  TGeoMedium      *fLayMedia[fgkCableMaxLayer];     // layer media
  Int_t            fLayColor[fgkCableMaxLayer];     // layer colors

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

  ClassDef(AliITSv11GeomCableFlat,1)
};


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