#ifndef CBMLITSIMPLEGEOMETRYCONSTRUCTOR_H_ #define CBMLITSIMPLEGEOMETRYCONSTRUCTOR_H_ #include "CbmLitMaterialInfo.h" #include #include #include class TGeoManager; class TGeoMedium; class TGeoVolume; class CbmLitSimpleGeometryConstructor { public: static CbmLitSimpleGeometryConstructor* Instance(); virtual ~CbmLitSimpleGeometryConstructor(); const std::vector& GetMyGeoNodes() const{return fMyGeoNodes;} const std::vector& GetMyMuchGeoNodes() const{return fMyMuchGeoNodes;} const std::vector& GetMyTrdGeoNodes() const{return fMyTrdGeoNodes;} void Draw(); protected: CbmLitSimpleGeometryConstructor(); private: void ConstructGeometry(); TGeoMedium* CreateMedium( const std::string& matName); void CreateMediumList(); void GeoMediumToMaterialInfo( const TGeoMedium* med, CbmLitMaterialInfo& mat); void ConstructSts(); void ConstructMuch(); void ConstructTof(); void ConstructTrd(); static CbmLitSimpleGeometryConstructor* fInstance; TGeoManager* fGeo; TGeoManager* fSimpleGeo; std::map fMedium; std::vector fMyGeoNodes; std::vector fMyMuchGeoNodes; std::vector fMyTrdGeoNodes; bool fIsTrd; bool fIsMuch; bool fIsTof; }; #endif /* CBMLITSIMPLEGEOMETRYCONSTRUCTOR_H_ */