ROOT logo
#ifndef HGEOMBASICSHAPE_H
#define HGEOMBASICSHAPE_H
using namespace std;
#include "hgeomtransform.h"
#include "TNamed.h"
#include "TString.h"
#include "TArrayD.h"
#include "TShape.h"
#include <fstream> 

class HGeomVolume;

class HGeomBasicShape : public TNamed {
protected:
  Int_t nPoints;            // number of points describing the shape 
  Int_t nParam;             // number of parameters needed to create the ROOT shape
  TArrayD* param;           // parameters needed to create the ROOT shape
  HGeomTransform* center;   // position of the volume center in the technical KS
  HGeomTransform* position; // position of the ROOT volume in its ROOT mother
public:
  HGeomBasicShape();
  virtual ~HGeomBasicShape();
  Int_t getNumPoints() {return nPoints;}
  Int_t getNumParam() {return nParam;}
  TArrayD* getParam() {return param;}
  HGeomTransform* getCenterPosition() {return center;}
  HGeomTransform* getVoluPosition() {return position;}
  virtual Int_t readPoints(fstream*,HGeomVolume*);   
  virtual Bool_t writePoints(fstream*,HGeomVolume*);   
  virtual void printPoints(HGeomVolume* volu);
  virtual TArrayD* calcVoluParam(HGeomVolume*) {return 0;} 
  virtual void calcVoluPosition(HGeomVolume*,const HGeomTransform&);
  virtual void calcVoluPosition(HGeomVolume*,const HGeomTransform&,
			  const HGeomTransform&) {return;}
  void printParam();
protected:
  void posInMother(const HGeomTransform&,const HGeomTransform&);
  ClassDef(HGeomBasicShape,0) // base class for all shapes
};

#endif  /* !HGEOMBASICSHAPE_H */
 hgeombasicshape.h:1
 hgeombasicshape.h:2
 hgeombasicshape.h:3
 hgeombasicshape.h:4
 hgeombasicshape.h:5
 hgeombasicshape.h:6
 hgeombasicshape.h:7
 hgeombasicshape.h:8
 hgeombasicshape.h:9
 hgeombasicshape.h:10
 hgeombasicshape.h:11
 hgeombasicshape.h:12
 hgeombasicshape.h:13
 hgeombasicshape.h:14
 hgeombasicshape.h:15
 hgeombasicshape.h:16
 hgeombasicshape.h:17
 hgeombasicshape.h:18
 hgeombasicshape.h:19
 hgeombasicshape.h:20
 hgeombasicshape.h:21
 hgeombasicshape.h:22
 hgeombasicshape.h:23
 hgeombasicshape.h:24
 hgeombasicshape.h:25
 hgeombasicshape.h:26
 hgeombasicshape.h:27
 hgeombasicshape.h:28
 hgeombasicshape.h:29
 hgeombasicshape.h:30
 hgeombasicshape.h:31
 hgeombasicshape.h:32
 hgeombasicshape.h:33
 hgeombasicshape.h:34
 hgeombasicshape.h:35
 hgeombasicshape.h:36
 hgeombasicshape.h:37
 hgeombasicshape.h:38
 hgeombasicshape.h:39
 hgeombasicshape.h:40
 hgeombasicshape.h:41