#include #include #include "G4VPhysicalVolume.hh" class Layer{ public: Layer(); ~Layer(){}; void setThickness(double thickness_cm); void setMaterial(std::string material); void setNx(int nx); void setNy(int ny); void setIsActive(bool isActive); void assignPhysicalVolume(G4VPhysicalVolume* physicalVolume); double thickness; double sens_xwidth; double sens_ywidth; std::string material; int nx; int ny; bool isActive; G4VPhysicalVolume* physicalVolume; std::string name; }; class ConstructionWrapper{ public: ConstructionWrapper(double xy_width=50); ~ConstructionWrapper() {}; void addLayer(double thickness_cm, std::string material, bool isActive=true, int nx=1, int ny=1); std::vector& getLayers() ; const std::vector& getLayers() const; double getXYWidth() const{ return xywidth; } private: double xywidth; std::vector layers; };