Volume filters

These are a set of filters that accept tracks under one of the following conditions

The volume names are given as extra parameters to the filter. The types of volume are the following ones

The name of these filters is constructed combining the geometry condition and the volume type, e.g. GmInPhysicalVolumeFilter, GmTraverseTouchableFilter, GmEndRegionFilter, GmTraverseLogicalVolumeChildrenFilter, GmExitRegionChildrenFilter.

There is a special case when parallel worlds are used: the scorers see the parallel world volumes, but the user actions do not. This means that you cannot use the above filters on a parallel world volume if you are using the filter for a user action, while you can if you use it for a scorer. If you want to do it you have to use the special parallel filters, namely

And it also means that you cannot use the above filters to act on a mass world whose position coincides with the one of a parallel world in the case of scorers, because the scorer filter will see the parallel world volume instead of the mass one. If you need to filter on mass volumes for a scorer a few volume filters are implemented, namely GmInMassLogicalVolumeFilter, GmInMassPhysicalVolumeFilter, GmInMassPhysicalVolumeReplicatedFilter and GmInMassRegionFilter.

When you use for example GmExitLogicalVolumeFilter the step is accepted when it exits the selected volume, without looking if the next volume it is entering is another copy of the selected volume. If what you want is that the steps are only accepted when they exit the selected volume and enter a different one, you may use the a filter that checks that if the PreStepPoint and the PostStepPoint are in different logical volumes:

Although you may use the inverse of this filter to check if the two volumes are the same, GAMOS provides explicitly this filter: