#ifndef DETECTORLAYOUTREADER_H_ #define DETECTORLAYOUTREADER_H_ #include "../littrack/parallel/muon/LitDetectorGeometryMuon.h" #include "../littrack/parallel/LitMaterialInfo.h" #include "../littrack/parallel/LitField.h" class DetectorLayoutReader { public: DetectorLayoutReader(); virtual ~DetectorLayoutReader(); void GetDetectorGeometryScal( LitDetectorLayoutMuonScal& layout) const; void GetDetectorGeometryVec( LitDetectorLayoutMuonVec& layout) const; void SetGeometryFileName(const std::string& fileName){ fGeometryFileName = fileName; } private: template void GetDetectorGeometry( LitDetectorLayoutMuon& layout) const; template void ReadStationGroup( std::ifstream& fin, LitStationGroupMuon& stationGroup) const; template void ReadStation( std::ifstream& fin, LitStationMuon& station) const; template void ReadSubstation( std::ifstream& fin, LitSubstationMuon& substation) const; template void ReadAbsorber( std::ifstream& fin, LitAbsorber& absorber) const; template void ReadMaterial( std::ifstream& fin, LitMaterialInfo& material) const; template void ReadFieldSlice( std::ifstream& fin, LitFieldSlice& slice) const; std::string fGeometryFileName; }; #endif /* DETECTORLAYOUTREADER_H_ */