Volume bounded by plane and mesh

How do you calculate the volume bounded by a plane and a mesh boundary?
For instance, you have a surface with a pattern of pimples and dimples and a plane that cuts through these. BooleanMeshSplit will split off the pimples (convex regions clipped by the plane) so that their volume can be measured. But how do you measure the volume of the dimples (concave regions capped by the plane)? And can these two volumes be measured in one operation (since BooleanMeshSplit is already quite slow)?

Do you have a sample 3dm file you can provide?

– Dale

Here is a sample file:
UnionIntersection.3dm (423.0 KB)
In this case, the volume I am looking for is the volume of the four half-spheres: two concave ones and two convex. In the real example, I would start with a plane as opposed to a surface as the cutting object.