48 lines
993 B
C++
48 lines
993 B
C++
|
|
#include <vector>
|
|
#include <string>
|
|
#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<Layer>& getLayers() ;
|
|
const std::vector<Layer>& getLayers() const;
|
|
|
|
double getXYWidth() const{
|
|
return xywidth;
|
|
}
|
|
private:
|
|
double xywidth;
|
|
std::vector<Layer> layers;
|
|
}; |