#ifndef HGEOBOX_H #define HGEOBOX_H #include "hgeobasicshapes.h" // // class for Geant-shape BOX // 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 the lab (works for mothervolume CAVE and SEC*) or // in a mothervolume with the shape BOX 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 HGeoBox : public HGeoBasicShapes { public: HGeoBox(){} ~HGeoBox(){} // 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 the lab (works for mothervolume CAVE and all // mothervolumes with shape PGON with their origin a the position of the // target) void posInLab(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a BOX in BOX void posInBox(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a BOX in a TRAP void posInTrap(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); }; #endif