#ifndef HGEOSHAPES_H #define HGEOSHAPES_H // This class containes all implemented shapes as elementclasses and a // elementclass of type HGeoShapePar to store the Geant-parameters for the // actual shape. // Every detector has a pointer *pShapes to this class. // #include "hgeoinfo.h" #include "hgeoparam.h" #include "hgeoshapepar.h" #include "hgeobox.h" #include "hgeopgon.h" #include "hgeotrap.h" #include "hgeotrd1.h" #include "hgeopcon.h" #include "hgeosphe.h" #include "hgeotube.h" #include "hgeotubs.h" #include "hgeocone.h" #include "hgeocons.h" #include "hgeoeltu.h" class HGeoShapes { public: HGeoShapes(){} ~HGeoShapes(){} // sets a pointer to a shapeclass depending on the geantshape of the // actual volume void selectShape(HGeoParam & ele); // calls the function readPointsDb(...) in the actual shapeclass to read // from database int readPointsDb(HGeoInfo & geoInfo, HGeoParam & ele); // calls the function readPoints(...) in the actual shapeclass to read // from file int readPoints(HGeoInfo & geoInfo, HGeoParam & ele); // calls the function calcShape(...) in the actual shapeclass to calculate // the Geant-parameters int calcShape(HGeoParam & ele); // calls the function posShape(...) in the actual shapeclass to calculate // the position of the volume inside its mother int posShape(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // calls the function writePoints(...) in the actual shapeclass to // write the points to file int writePoints(ofstream & fout, HGeoParam & ele); // shows content of elementclass HGeoShapePar void HGeoShapes::showShapePar(); // class to store the Geant-parameters for the actual shape HGeoShapePar shapePar; // class for Geantshape BOX HGeoBox box; // class for Geantshape PGON HGeoPgon pgon; // class for Geantshape TRAP HGeoTrap trap; // class for Geantshape TRD1 HGeoTrd1 trd1; // class for Geantshape PCON HGeoPcon pcon; // class for Geantshape SPHE HGeoSphe sphe; // class for Geantshape TUBE HGeoTube tube; // class for Geantshape TUBS HGeoTubs tubs; // class for Geantshape CONE HGeoCone cone; // class for Geantshape CONS HGeoCons cons; // class for Geantshape ELTU HGeoEltu eltu; protected: // pointer to a shapeclass depending on the geantshape of the actual // volume HGeoBasicShapes *currentShape; }; #endif