Skip to content

TRestGeant4AnalysisProcess should support volume name expressions #109

Open
@lobis

Description

@lobis

When working with geometries with large number of volumes it's tedious and prone to error to manually enumerate volumes for energy deposition. Currently one can skip the enumeration all together and all volumes will be recorded but the user may not want this.

I tried to implement this but it's not straightforward due to how observables are defined.

Example of current usage:

            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop2_assembly-5.veto1_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop2_assembly-5.veto2_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop2_assembly-5.veto3_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop2_assembly-5.veto4_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop3_assembly-5.veto1_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop3_assembly-5.veto2_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop3_assembly-5.veto3_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop3_assembly-5.veto4_scintillatorVolume-1500.0mm-7326620dVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom1_assembly-10.veto1_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom1_assembly-10.veto2_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom1_assembly-10.veto3_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom1_assembly-10.veto4_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom2_assembly-10.veto1_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom2_assembly-10.veto2_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom2_assembly-10.veto3_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom2_assembly-10.veto4_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom3_assembly-10.veto1_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom3_assembly-10.veto2_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom3_assembly-10.veto3_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBottom_vetoLayerBottom3_assembly-10.veto4_scintillatorVolume-1500.0mm-73266212VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast1_assembly-13.veto1_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast1_assembly-13.veto2_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast1_assembly-13.veto3_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast2_assembly-13.veto1_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast2_assembly-13.veto2_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast2_assembly-13.veto3_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast3_assembly-13.veto1_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast3_assembly-13.veto2_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemEast_vetoLayerEast3_assembly-13.veto3_scintillatorVolume-1500.0mm-f1a5df68VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest1_assembly-16.veto1_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest1_assembly-16.veto2_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest1_assembly-16.veto3_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest2_assembly-16.veto1_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest2_assembly-16.veto2_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest2_assembly-16.veto3_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest3_assembly-16.veto1_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest3_assembly-16.veto2_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemWest_vetoLayerWest3_assembly-16.veto3_scintillatorVolume-1500.0mm-f1a5df6bVolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop1_assembly-8.veto1_scintillatorVolume-800.0mm-73266210VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop1_assembly-8.veto2_scintillatorVolume-800.0mm-73266210VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemTop_vetoLayerTop1_assembly-8.veto3_scintillatorVolume-800.0mm-73266210VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack1_assembly-22.veto1_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack1_assembly-22.veto2_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack1_assembly-22.veto3_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack2_assembly-22.veto1_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack2_assembly-22.veto2_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack2_assembly-22.veto3_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack3_assembly-22.veto1_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack3_assembly-22.veto2_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemBack_vetoLayerBack3_assembly-22.veto3_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack1_assembly-22.veto1_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack1_assembly-22.veto2_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack1_assembly-22.veto3_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack2_assembly-22.veto1_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack2_assembly-22.veto2_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack2_assembly-22.veto3_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack3_assembly-22.veto1_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack3_assembly-22.veto2_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>
            <observable
                    name="VetoSystem_vetoSystemFront_vetoLayerBack3_assembly-22.veto3_scintillatorVolume-800.0mm-f1a5df86VolumeEDep"
                    volume="ON"/>

Example of desired usage (syntax subject to change):

            <observable
                    name="*scintillatorVolume*VolumeEDep"
                    volume="ON"/>

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions