54 #define G4MT_solid ((subInstanceManager.offset[instanceID]).fSolid)
55 #define G4MT_sdetector ((subInstanceManager.offset[instanceID]).fSensitiveDetector)
56 #define G4MT_fmanager ((subInstanceManager.offset[instanceID]).fFieldManager)
57 #define G4MT_material ((subInstanceManager.offset[instanceID]).fMaterial)
58 #define G4MT_mass ((subInstanceManager.offset[instanceID]).fMass)
59 #define G4MT_ccouple ((subInstanceManager.offset[instanceID]).fCutsCouple)
60 #define G4MT_instance (subInstanceManager.offset[instanceID])
167 #ifdef CLONE_FIELD_MGR
256 while ( (NoDaughters--)>0 )
260 if ( forceAllDaughters || (DaughterLogVol->
GetFieldManager() ==
nullptr) )
290 message <<
"ERROR - Attempt to place a volume in a mother volume"
292 <<
" already containing a replicated volume." <<
G4endl
293 <<
" A volume can either contain several placements" <<
G4endl
294 <<
" or a unique replica or parameterised volume !" <<
G4endl
296 <<
" Placing volume: " << pNewDaughter->
GetName()
298 G4Exception(
"G4LogicalVolume::AddDaughter()",
"GeomMgt0002",
300 "Replica or parameterised volume must be the only daughter!");
309 message <<
"ERROR - Attempt to place a volume in a mother volume"
311 <<
" already containing a different type of volume." <<
G4endl
312 <<
" A volume can either contain" <<
G4endl
313 <<
" - one or more placements, OR" <<
G4endl
314 <<
" - one or more 'external' type physical volumes." <<
G4endl
316 <<
" Volume being placed: " << pNewDaughter->
GetName()
318 G4Exception(
"G4LogicalVolume::AddDaughter()",
"GeomMgt0002",
320 "Cannot mix placements and external physical volumes !");
339 if( (
G4MT_fmanager !=
nullptr ) && (pDaughterFieldManager ==
nullptr) )
421 instLVdata.
fSolid = pSolid;
422 instLVdata.
fMass = 0.0;
507 isDaughter = (*itDau)->GetLogicalVolume()->IsAncestor(aVolume);
508 if (isDaughter)
break;
564 if (logMaterial ==
nullptr)
567 message <<
"No material associated to the logical volume: "
569 <<
"Sorry, cannot compute the mass ...";
570 G4Exception(
"G4LogicalVolume::GetMass()",
"GeomMgt0002",
577 message <<
"No solid is associated to the logical volume: "
579 <<
"Sorry, cannot compute the mass ...";
580 G4Exception(
"G4LogicalVolume::GetMass()",
"GeomMgt0002",
609 daughterSolid = physParam->
ComputeSolid(i, physDaughter);
615 daughterSolid = logDaughter->
GetSolid();
626 massSum += logDaughter->
GetMass(
true,
true, daughterMaterial);
662 works = (expectedVType == aType);