56 std::istringstream stream(line.substr(2));
74 "A solid must be defined before defining a facet!");
83 std::istringstream stream(line.substr(4));
84 stream >> x1 >> y1 >> z1 >> x2 >> y2 >> z2 >> x3 >> y3 >> z3;
90 else if (line[2]==
'4')
97 std::istringstream stream(line.substr(4));
98 stream >> x1 >> y1 >> z1 >> x2 >> y2 >> z2
99 >> x3 >> y3 >> z3 >> x4 >> y4 >> z4;
109 "Number of vertices per facet should be either 3 or 4!");
123 std::istringstream stream(line.substr(2));
124 stream >> level >> name >> r1 >> r2 >> r3 >> n1 >> r4 >> r5 >> r6
125 >> n2 >> r7 >> r8 >> r9 >> n3 >> pX >> pY >> pZ >> n4 >> n5;
126 std::string::size_type idx = name.rfind(
"_");
127 if (idx!=std::string::npos)
133 G4Exception(
"G4STRead::PhysvolRead()",
"ReadError",
138 G4cout <<
"G4STRead: Placing tessellated solid: " << name <<
G4endl;
151 if (tessellated == 0)
153 G4String error_msg =
"Referenced solid '" + name +
"' not found!";
154 G4Exception(
"G4STRead::PhysvolRead()",
"ReadError",
159 G4String error_msg =
"Referenced solid '" + name
160 +
"' is not associated with a logical volume!";
161 G4Exception(
"G4STRead::PhysvolRead()",
"InvalidSetup",
177 tessellated->CalculateExtent(
kXAxis,limits,
179 tessellated->CalculateExtent(
kYAxis,limits,
181 tessellated->CalculateExtent(
kZAxis,limits,
200 G4cout <<
"G4STRead: Reading '" << name <<
"'..." <<
G4endl;
202 std::ifstream GeomFile(name);
215 while (getline(GeomFile,line))
226 G4cout <<
"G4STRead: Reading '" << name <<
"' done." <<
G4endl;
231 G4cout <<
"G4STRead: Reading '" << name <<
"'..." <<
G4endl;
233 std::ifstream TreeFile(name);
244 while (getline(TreeFile,line))
249 G4cout <<
"G4STRead: Reading '" << name <<
"' done." <<
G4endl;
256 if (mediumMaterial == 0)
259 "Pointer to medium material is not valid!");
261 if (solidMaterial == 0)
264 "Pointer to solid material is not valid!");
272 "TessellatedWorldLV", 0, 0, 0);
G4LogicalVolume * world_volume
void TessellatedRead(const std::string &)
G4double GetXHalfLength() const
G4ThreeVector world_extent
void SetZHalfLength(G4double dz)
G4LogicalVolume * Read(const G4String &, G4Material *mediumMaterial, G4Material *solidMaterial)
static const G4double kInfinity
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
void PhysvolRead(const std::string &)
std::vector< G4TessellatedSolid * > tessellatedList
G4double GetZHalfLength() const
G4GLOB_DLL std::ostream G4cout
void ReadTree(const G4String &)
G4Material * solid_material
G4double GetYHalfLength() const
void FacetRead(const std::string &)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void SetYHalfLength(G4double dy)
void SetXHalfLength(G4double dx)
std::map< G4TessellatedSolid *, G4LogicalVolume * > volumeMap
void ReadGeom(const G4String &)
static const G4double pos