4 #ifndef _GEOMETRY_OBJECT_H_
5 #define _GEOMETRY_OBJECT_H_
9 #include "G4ThreeVector.hh"
10 #include "G4LogicalVolume.hh"
11 #include "G4PVPlacement.hh"
12 #include "G4RotationMatrix.hh"
31 virtual G4LogicalVolume*
construct(G4LogicalVolume* a_mother,
36 virtual void setProperty(std::string a_propertyName,
37 std::vector<double> a_values
40 virtual void setName(std::string a_name);
42 virtual void setCenter(G4ThreeVector a_center);
43 virtual void setRotMatrix(
const G4RotationMatrix& a_rotation);
46 virtual std::string
getName()
const;
72 std::map<std::string , G4LogicalVolume* >
m_lvs;
abstract base class of geometry objects allowing modifications
Definition: GeometryObject.h:25
bool m_constructed
Definition: GeometryObject.h:74
virtual void setName(std::string a_name)
Definition: GeometryObject.cpp:33
virtual std::string getMaterial() const
Definition: GeometryObject.cpp:49
virtual void setProperty(std::string a_propertyName, std::vector< double > a_values)
Definition: GeometryObject.cpp:20
GeometryObject()
Definition: GeometryObject.cpp:8
virtual G4RotationMatrix getRotationMatrix() const
Definition: GeometryObject.cpp:62
G4LogicalVolume * m_primaryLV
volume to associate SD to if it exists
Definition: GeometryObject.h:66
virtual std::string getName() const
Definition: GeometryObject.cpp:45
bool isConstructed()
Definition: GeometryObject.cpp:88
G4ThreeVector m_center
used to store the center position of the object
Definition: GeometryObject.h:64
std::map< std::string, G4LogicalVolume * > m_lvs
used to store logical volumes
Definition: GeometryObject.h:72
G4RotationMatrix m_rotMat
used to store ration information of the object
Definition: GeometryObject.h:69
virtual G4LogicalVolume * construct(G4LogicalVolume *a_mother, MaterialManager *a_materials)=0
must be implemented by the child class
std::string m_name
used to store a name of an object which can later be used for access
Definition: GeometryObject.h:60
virtual void setCenter(G4ThreeVector a_center)
Definition: GeometryObject.cpp:29
G4LogicalVolume * getLogicalVolume(std::string a_name)
Definition: GeometryObject.cpp:68
virtual void setRotMatrix(const G4RotationMatrix &a_rotation)
Definition: GeometryObject.cpp:41
std::string m_material
used to store the name of the construction material
Definition: GeometryObject.h:62
G4LogicalVolume * getPrimaryLogicalVolume()
!!BREAKS ENCAPSULATION!!!
Definition: GeometryObject.cpp:57
virtual G4ThreeVector getCenter() const
Definition: GeometryObject.cpp:53
virtual void setMaterial(std::string a_material)
Definition: GeometryObject.cpp:37
Definition: MaterialManager.h:15