50 const G4int nReplicas,
53 :
G4PVReplica(pName, pLogical, pMother, pAxis, nReplicas, 0, 0),
59 std::ostringstream message, hint;
60 message <<
"A parameterised volume is being placed" <<
G4endl
61 <<
"inside another parameterised volume !";
62 hint <<
"To make sure that no overlaps are generated," << G4endl
63 <<
"you should verify the mother replicated shapes" << G4endl
64 <<
"are of the same type and dimensions." << G4endl
65 <<
" Mother physical volume: " << pMother->
GetName() << G4endl
66 <<
" Parameterised volume: " << pName << G4endl
67 <<
" (To switch this warning off, compile with G4_NO_VERBOSE)";
68 G4Exception(
"G4PVParameterised::G4PVParameterised()",
"GeomVol1002",
82 const G4int nReplicas,
85 :
G4PVReplica(pName, pLogical, pMotherLogical, pAxis, nReplicas, 0, 0),
156 if (res<=0) {
return false; }
161 std::vector<G4ThreeVector> points;
165 G4cout <<
"Checking overlaps for parameterised volume "
195 std::ostringstream message;
196 message <<
"Overlap with mother volume !" <<
G4endl
197 <<
" Overlap is detected for volume "
199 <<
" with its mother volume "
201 <<
" at mother local point " << mp <<
", "
202 <<
"overlapping by at least: "
209 points.push_back(mp);
214 std::vector<G4ThreeVector>::iterator pos;
225 for (pos=points.begin(); pos!=points.end(); pos++)
231 if (solidB->Inside(md)==
kInside)
233 G4double distout = solidB->DistanceToOut(md);
236 std::ostringstream message;
237 message <<
"Overlap within parameterised volumes !" <<
G4endl
238 <<
" Overlap is detected for volume "
240 <<
" with parameterised volume instance: " << j
242 <<
" at local point " << md <<
", "
243 <<
"overlapping by at least: "
245 <<
", related to volume instance: " << j <<
".";