#ifndef HGEOPGON_H #define HGEOPGON_H #include "hgeobasicshapes.h" // // class for Geant-shape PGON // derived from baseclass HGeoBasicShapes // // The functions readPoints(...) read from database or from file and store the // input in the float-vector vol of class HGeoParam. // ( point 0: number of planes perpendicular to the z axis where the dimension of // the section is given; // point 1: azimutal angle phi at which the volume begins, // opening angle dphi of the volume, // number of sides of the cross section between the phi-limits; // point 2ff: z coordinate of the section, // inner radius at position z, // outer radius at position z; // // The technical coordinate system of a PGON, which sits in CAVE and is not // rotated, is the laboratory system. SEC1 is implemetened as a PGON and // per definition not rotated. // It's the same as in Geant and therefore the matrix cgRot, which describes // the transformation between these coordinate systems is the unity matrix. // class HGeoPgon : public HGeoBasicShapes { public: HGeoPgon() { cgRot=uniRot; } ~HGeoPgon(){} // reads input from database int readPointsDb(HGeoInfo & geoInfo, HGeoParam & ele); // reads input from file int readPoints(HGeoInfo & geoInfo, HGeoParam & ele); // calculates the Geant-shapeparameters void calcShape(HGeoParam & ele, HGeoShapePar & shapePar); // calculates the position the Geant coordinate system in the technical // coordinate system and invokes posInMother(...) of the base class int posShape(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // writes parameters to file int writePoints(ofstream & fout, HGeoParam & ele); }; #endif