64 fVoxel(0), fOptimise(optimise), fRootRegion(false), fLock(false),
65 fSmartless(2.), fMass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0)
85 fMaterial(0),
fName(
""), fSensitiveDetector(0), fSolid(0), fUserLimits(0),
86 fVoxel(0), fOptimise(true), fRootRegion(false), fLock(false), fSmartless(2.),
87 fMass(0.), fVisAttributes(0), fRegion(0), fCutsCouple(0), fBiasWeight(0.)
101 if (!fLock && fRootRegion)
116 fFieldManager = pNewFieldMgr;
119 while ( (NoDaughters--)>0 )
144 for (G4PhysicalVolumeList::const_iterator itDau = fDaughters.begin();
145 itDau != fDaughters.end(); itDau++)
147 isDaughter = (*itDau)->GetLogicalVolume()->IsAncestor(aVolume);
148 if (isDaughter)
break;
164 for (G4PhysicalVolumeList::const_iterator itDau = fDaughters.begin();
165 itDau != fDaughters.end(); itDau++)
199 if ( (fMass) && (!forced) )
return fMass;
204 G4Material* logMaterial = parMaterial ? parMaterial : fMaterial;
207 std::ostringstream message;
208 message <<
"No material associated to the logical volume: " << fName <<
" !"
210 <<
"Sorry, cannot compute the mass ...";
211 G4Exception(
"G4LogicalVolume::GetMass()",
"GeomMgt0002",
217 std::ostringstream message;
218 message <<
"No solid is associated to the logical volume: " << fName <<
" !"
220 <<
"Sorry, cannot compute the mass ...";
221 G4Exception(
"G4LogicalVolume::GetMass()",
"GeomMgt0002",
232 for (G4PhysicalVolumeList::const_iterator itDau = fDaughters.begin();
233 itDau != fDaughters.end(); itDau++)
251 daughterSolid = physParam->
ComputeSolid(i, physDaughter);
257 daughterSolid = logDaughter->
GetSolid();
268 fMass += logDaughter->
GetMass(
true,
true, daughterMaterial);