#ifndef HGEOTUBS_H #define HGEOTUBS_H #include "hgeobasicshapes.h" // // class for Geant-shape TUBS // 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: origin of starting circle of the cone; // point 1: inner radius of starting circle, // outer radius of starting circle; // point 2: origin of ending circle of the cone; // point 3: starting angle of the segment, // ending angle of the segment; // // To position a volume in its mother different functions are called in the // routine posShape(...) depending on the shape of the mother. Uptil now the // shape TUBS is only used in the Rich for the support-structure RMTS*. Here // a special rotation is needed to position it in the mother with the shape // PGON. unless changing the code his routine would not work in other cases. // In the 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. // class HGeoTubs : public HGeoBasicShapes { public: HGeoTubs(){} ~HGeoTubs(){} // 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 int posShape(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a TUBS in a PGON (with a special rotation used only for the // support structure RMTS* in the Rich) void posInPgon(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); // positions a TUBS in a TUBS (without rotation) void posInTubs(HGeoParam & ele, HGeoParam & mo, HGeoShapePar & shapePar); }; #endif