#include "hgeoshower.h" int HGeoShower::readDet(HGeoInfo & geoInfo, HGeoMedia & geoMedia) { int n=readKeepIn(geoInfo); if (n==0) return HFAILURE; HString sno; for(int i=1;i<=numModules;i++) { sno=i; detName.replace(2,sno); eleName.replace(1,sno); noOfKeepIn[i]=readModule(geoInfo,geoMedia); } if (length()>0) return HSUCCESS; return HFAILURE; } int HGeoShower::readDet(HGeoInfo & geoInfo) { int n=readKeepIn(geoInfo); if (n==0) return HFAILURE; HString sno; for(int i=1;i<=numModules;i++) { sno=i; detName.replace(2,sno); eleName.replace(1,sno); geoInfo.fin.seekg(0, ios::beg); geoInfo.fin.clear(); noOfKeepIn[i]=readModule(geoInfo); } if (length()>0) return HSUCCESS; return HFAILURE; } int HGeoShower::createDet(HGeoInfo & geoInfo, HGeoMedia & geoMedia){ reset(); if (createKeepIn(geoInfo,geoMedia)==HFAILURE) return HFAILURE; HString sno; for(int i=1;i<=numModules;i++) { reset(); sno=i; detName.replace(2,sno); eleName.replace(1,sno); if(noOfKeepIn[i]>0) createModule(geoInfo,geoMedia); } return HSUCCESS; } int HGeoShower::createHits(HString & copyName) { int l1, l2, idtype, iset, idet; char setName[]="META"; int hitNh=20; char hitNamesh[20][5]={"X ","Y ","Z ","E1 ","TOF ", "E2 ","PART","SECT","ITRA","ETRA", "IDET","E3 ","E4 ","E5 ","E6 ", "INWV","Px ","Py ","Pz ","E "}; int hitNbitsh[20]={30,30,30,30,30,30,8,8,12,30, 12,30,30,30,30,8,30,30,30,30}; float hitOrig[20]={340.F,340.F,340.F,0.F,0.F,0.F,0.F,0.F,0.F,0.F, 0.F,0.F,20.F,0.F,0.F,0.F,5.F,5.F,5.F,5.F}; float hitFact[20]={1.e4F,1.e4F,1.e4F,1.e8F,1.e14F,1.e5F,1.F,1.F,1.F,1.e8F, 1.F,1.e6F,1.e6F,1.e6F,1.e6F,1.F,1.e6F,1.e6F,1.e6F,1.e6F}; l1=(int)copyName(1,1); idtype=50+l1; #ifdef WITHGEANT char* cN=copyName; GSDETV(setName,cN,idtype,1000,1000,iset,idet); GSDETH(setName,cN,hitNh,hitNamesh,hitNbitsh,hitOrig,hitFact); #endif #ifdef ILSESHOW cout << "detector: " << copyName << " sensitive volume: " << setName << " idtype: " << idtype << '\n'; #endif return HSUCCESS; }