#ifndef HGEOTRAP_H #define HGEOTRAP_H #include "hgeobasicshapes.h" // // class for Geant-shape TRAP // derived from baseclass HGeoBasicShapes // // To read the 8 xyz-points from database or file the function readPoints(...) // in the baseclass is used. // // 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 // possible to position a BOX in a mother with shape PGON (works also for // mothervolume CAVE) or TRAP // 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 HGeoTrap : public HGeoBasicShapes { public: HGeoTrap(){} ~HGeoTrap(){} // calculates the Geant-shapeparameters void calcShape(HGeoParam & ele, HGeoShapePar & shapePar); // calls different functions to position the volume depending on the // shape of its mother int posShape(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a BOX in a PGON (works also for mothervolume CAVE) void posInPgon(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a BOX in a TRAP void posInTrap(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); }; #endif