Hiding sections of hair?

Is there any way of hiding portions of hair so that when I put a hat on it doesn't poke through? As you can see on the attached image I've had to make Meg's hat massive, and for Chris* I've had to go for completely the wrong hairstyle because I couldn't find a hair/hat morph combination that didn't either have a ton of hair poking through the cap or have the cap so ridiculously expanded that it looked ridiculous. The only things I can think of are to create a modified hair texture that's transparent in the hat region, or two do two render passes (one with hat, one with hair) and fiddle around in post, but neither seem ideal. (I even experimented with attempting to "push" dForce hair by animating a hat into position but that just resulted in horifying explosions.)
* For those of you who've never seen Family Guy, Meg is on the right and Chris is on the left.


Comments
Have you tried using a DFormer on the Hair ? I don't have much experience with it but from what I saw about it, it's exactly what it should be for.
There is this by Sickleyield. Designed for just this.
https://www.daz3d.com/sy-hat-and-hair-helper-genesis-8
There are also versions for Genesis 3 and Genesis 2.
Use the Geometry Editor Tool.
1. Select the hair in the scene pane.
2. Using the geometry editor tool, Left-click to select the hair part you want to hide.
3. After selecting, Right-click will bring up a menu. Use Geometry Visibility -> Hide Selected Polygons.
Also after selecting, Right-click will have an option to Geometry Selection -> Select Connected if you want to hide the whole strands connected to the original selection.
Worth noting, hiding polygons will not save with the scene so you have to go through the procedure each time you load the scene.