#ifndef HGEOUSER_H #define HGEOUSER_H #include "hgeoset.h" #include "hgeomedia.h" // // class for User defined volumes derived from baseclass HGeoSet (linked list); // The set 'user' contains up to 9 modules in the cave or in each sector. // class HGeoUser : public HGeoSet { public: HGeoUser(HGeoShapes & shapes) : HGeoSet() { // unique substring of the name of the module // 2nd is changed from 1...9 in readDet(...) detName="U1KI"; // unique substring of the name of all daughtervolumes in a module eleName="U1"; // pointer to the class HGeoShapes pShapes=&shapes; numModules=9; noOfKeepIn= new int [10]; // readHits set to 1 after successful read hitsRead=0; } ~HGeoUser(){delete [] noOfKeepIn;} // reads all user defined volumes from file using helperfunctions from the // baseclass int readDet(HGeoInfo & geoInfo); // reads all user defined volumes from database using helperfunctions from // the baseclass int readDet(HGeoInfo & geoInfo, HGeoMedia & geomedia); // creates all modules in the cave or in all sectors if they are defined // and if the inout-flag for the mothervolume is 1 int createDet(HGeoInfo & geoInfo, HGeoMedia & geomedia); // invokes the Geantroutines GSDETV and GSDETH to classify the sensitive // detector META for which one wants to store hits; // The necessary variables parameters are hardwired in this function. int createHits(HString & volName); protected: // maximum number of modules int numModules; // array to store for each module the number of sectors where the module // is defined // ( noOfKeepIn[i]=0 if not defined, else >=1 ) int *noOfKeepIn; }; #endif