#ifndef HGEOMEDIUM_H #define HGEOMEDIUM_H // Element class of HGeoMedia which is implemeted as a linked list called // by name via the template class HNamedList. // The names of the materials and the media are identical. // All Parameters needed for the Geant-Routines GSMATE, GSMIXT and GSMED // are stored. #include "hfloatvec.h" typedef HFloatVec FVec; // maximum number of components in a mixture; may be changed if necessary #define MAXCOMP 5 class HGeoMedium { public: HGeoMedium() :ppckov(0.F,1),absco(0.F,1),effic(0.F,1),rindex(0.F,1) { medno=0; // default values madfld=-1.F; maxstep=-1.F; maxde=-1.F; minstep=-1.F; npckov=0; } ~HGeoMedium(){} friend ostream& operator << (ostream& put,const HGeoMedium & m) { return put; } // number of components int ncomp; // atomic weights for the components float aw[MAXCOMP]; // atomic numbers for the components float an[MAXCOMP]; // density in g cm(**-3) float dens; // radiation lenght float radleng; // weights of each component in a mixture float wm[MAXCOMP]; // sensitivity flag int sensflag; // fieldflag int fldflag; // maximum field value in kilogauss float fld; // boundary crossing precision float epsil; // maximum angular deviation due to field float madfld; // maximum step permitted float maxstep; // maximum fractional energy loss float maxde; // minimum value for step float minstep; // parameters for trackking medium for which optical properties // are defined (for GEANT routine GSCKOV) int npckov; FVec ppckov; FVec absco; FVec effic; FVec rindex; // internal geantnumber for material and medium int medno; }; #endif