EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FairGeoBasicShape.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FairGeoBasicShape.h
1 #ifndef FAIRGEOBASICSHAPE_H
2 #define FAIRGEOBASICSHAPE_H
3 
4 //#include "FairGeoTransform.h"
5 
6 #include "TNamed.h"
7 //#include "TString.h"
8 //#include "TArrayD.h"
9 //#include "TShape.h"
10 
11 #include <fstream>
12 
13 class FairGeoTransform;
14 class FairGeoVolume;
15 class TArrayD;
20 class FairGeoBasicShape : public TNamed
21 {
22  protected:
23  Int_t nPoints; // number of points describing the shape
24  Int_t nParam; // number of parameters needed to create the ROOT shape
25  TArrayD* param; // parameters needed to create the ROOT shape
26  FairGeoTransform* center; // position of the volume center in the technical KS
27  FairGeoTransform* position; // position of the ROOT volume in its ROOT mother
28  public:
30  virtual ~FairGeoBasicShape();
31  Int_t getNumPoints() {return nPoints;}
32  Int_t getNumParam() {return nParam;}
33  TArrayD* getParam() {return param;}
36  virtual Int_t readPoints(std::fstream*,FairGeoVolume*);
37  virtual Bool_t writePoints(std::fstream*,FairGeoVolume*);
38  virtual void printPoints(FairGeoVolume* volu);
39  virtual TArrayD* calcVoluParam(FairGeoVolume*) {return 0;}
40  virtual void calcVoluPosition(FairGeoVolume*,const FairGeoTransform&);
42  const FairGeoTransform&) {return;}
43  void printParam();
44  protected:
45  void posInMother(const FairGeoTransform&,const FairGeoTransform&);
46  ClassDef(FairGeoBasicShape,0) // base class for all shapes
47  private:
49  FairGeoBasicShape& operator=(const FairGeoBasicShape&);
50 
51 };
52 
53 #endif /* !FAIRGEOBASICSHAPE_H */