#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, (maximum of 6 planes); // 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; // // To position a volume in its mother different functions are called in the // routine posShape(...) depending on the shape of the mother. Uptil now it's // only possible to position a PGON in a mother with shape PGON (works also for // mothervolume CAVE) // In these functions posIn...(...) the position of the Geant-origin in the // intrisic coordinate-system of the detector is calculated and stored in the // vector geaPos of class HGeoParam. This information is needed to calculate the // position of daughtervolumes. The Geant-position of the volume inside its // mother is calculated and stored in the vector pos of class HGeoShapePar. Where // needed a Geant-rotationalmatrix is created via Geantroutine GSROTM and the // number stored in nRot of class HGeoShapePar. Otherwise nRot is set to 0. // class HGeoPgon : public HGeoBasicShapes { public: HGeoPgon(){} ~HGeoPgon(){} // reads input from database int readPoints(HGeoInfo & geoInfo, HString & volName, HGeoParam & ele); // reads input from file int readPoints(HGeoInfo & geoInfo, HGeoParam & ele); // calculates the Geant-shapeparameters void calcShape(HGeoParam & ele, HGeoShapePar & shapePar); // calls different functions to position the volume depending on the // shape of its mother (uptil now only PGON implemeted) int posShape(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a PGON in a PGON void posInPgon(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); }; #endif