FairRoot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FairGeoBasicShape.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 #ifndef FAIRGEOBASICSHAPE_H
9 #define FAIRGEOBASICSHAPE_H
10 
11 #include <Rtypes.h> // for Int_t, etc
12 #include <TNamed.h> // for TNamed
13 #include <iosfwd> // for fstream
14 
15 class FairGeoTransform;
16 class FairGeoVolume;
17 class TArrayD;
22 class FairGeoBasicShape : public TNamed
23 {
24  protected:
25  Int_t nPoints; // number of points describing the shape
26  Int_t nParam; // number of parameters needed to create the ROOT shape
27  TArrayD* param; // parameters needed to create the ROOT shape
28  FairGeoTransform* center; // position of the volume center in the technical KS
29  FairGeoTransform* position; // position of the ROOT volume in its ROOT mother
30  public:
32  virtual ~FairGeoBasicShape();
33  Int_t getNumPoints() { return nPoints; }
34  Int_t getNumParam() { return nParam; }
35  TArrayD* getParam() { return param; }
38  virtual Int_t readPoints(std::fstream*, FairGeoVolume*);
39  virtual Bool_t writePoints(std::fstream*, FairGeoVolume*);
40  virtual void printPoints(FairGeoVolume* volu);
41  virtual TArrayD* calcVoluParam(FairGeoVolume*) { return 0; }
42  virtual void calcVoluPosition(FairGeoVolume*, const FairGeoTransform&);
43  virtual void calcVoluPosition(FairGeoVolume*, const FairGeoTransform&, const FairGeoTransform&) { return; }
44  void printParam();
45 
46  protected:
47  void posInMother(const FairGeoTransform&, const FairGeoTransform&);
48  ClassDef(FairGeoBasicShape, 0); // base class for all shapes
49  private:
51  FairGeoBasicShape& operator=(const FairGeoBasicShape&);
52 };
53 
54 #endif /* !FAIRGEOBASICSHAPE_H */
void posInMother(const FairGeoTransform &, const FairGeoTransform &)
virtual void calcVoluPosition(FairGeoVolume *, const FairGeoTransform &)
virtual void calcVoluPosition(FairGeoVolume *, const FairGeoTransform &, const FairGeoTransform &)
virtual Bool_t writePoints(std::fstream *, FairGeoVolume *)
virtual TArrayD * calcVoluParam(FairGeoVolume *)
FairGeoTransform * getVoluPosition()
FairGeoTransform * center
ClassDef(FairGeoBasicShape, 0)
virtual void printPoints(FairGeoVolume *volu)
FairGeoTransform * getCenterPosition()
virtual Int_t readPoints(std::fstream *, FairGeoVolume *)
FairGeoTransform * position