#ifndef HGEOMDC_H #define HGEOMDC_H #include "hgeoset.h" #include "hgeomedia.h" // // class for MDC derived from baseclass HGeoSet (linked list); // The MDC containes a maximum of 4 driftchambers in each sector. // class HGeoMdc : public HGeoSet { public: HGeoMdc(HGeoShapes & shapes) : HGeoSet() { // unique substring of the name of the module driftchamber // 3rd character is changed from 1...4 in function readDet(...) detName="DR1M"; // unique substring of the name of all daughtervolumes // 2nd character is changed from 1...4 in function readDet(...) eleName="D1"; // pointer to the class HGeoShapes pShapes=&shapes; // maximum of 4 driftchambers in one sector numModules=4; noOfKeepIn= new int [5]; // readHits set to 1 after successful read hitsRead=0; } ~HGeoMdc(){delete [] noOfKeepIn;} // reads all 4 driftchambers from file using helperfunctions from the // baseclass int readDet(HGeoInfo & geoInfo); // reads all 4 driftchambers from database using helperfunctions from the // baseclass int readDet(HGeoInfo & geoInfo, HGeoMedia & geomedia); // creates all driftchambers 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 DRIF for which one wants to store hits; // The necessary variables parameters are hardwired in this function. int createHits(HString & volName); protected: // maximum number of driftchambers in one sector int numModules; // array to store for each driftchamber the number of sectors where a // driftchamber is defined // ( noOfKeepIn[i]=0 if driftchamber i is not defined, else >=1 ) int *noOfKeepIn; }; #endif