//--- World :P WORLD_X ($NABSCRYSTALS_X*$ABSCRYS_X)*2 // slightly bigger than detector :P WORLD_Y ($NABSCRYSTALS_Y*$ABSCRYS_Y)*2 // slightly bigger than detector :VOLU world BOX $WORLD_X/2. $WORLD_Y/2. $WORLD_Z/2. G4_AIR :P ABSREGION_X $ABSCRYS_X*$NABSCRYSTALS_X :P ABSREGION_Y $ABSCRYS_Y*$NABSCRYSTALS_Y :P ABSREGION_Z $NABSLAYERS*($ABSCRYS_Z*$NABSCRYSTALS_Z)+(($NABSLAYERS-1)*$ABSSEP) //:P ABSREGION_Z $WORLD_Z :VOLU absregion BOX $ABSREGION_X/2 $ABSREGION_Y/2 $ABSREGION_Z/2 G4_AIR :PLACE absregion 1 world RM0 0 0 $ABSDIST //--- Stack of absorber detectors, built from many layers :P ABSLAYER_X $ABSCRYS_X*$NABSCRYSTALS_X :P ABSLAYER_Y $ABSCRYS_Y*$NABSCRYSTALS_Y :P ABSLAYER_Z $ABSCRYS_Z*$NABSCRYSTALS_Z :VOLU abslayer BOX $ABSLAYER_X/2 $ABSLAYER_Y/2 $ABSLAYER_Z/2 G4_AIR :PLACE_PARAM abslayer 1 absregion LINEAR_Z RM0 $NABSLAYERS $ABSSEP 0 //--- Absorber Crystals :VOLU abscrystal BOX $ABSCRYS_X/2. $ABSCRYS_Y/2. $ABSCRYS_Z/2. $ABSCRYS_MATE :PLACE_PARAM abscrystal 1 abslayer SQUARE_XY RM0 $NABSCRYSTALS_X $NABSCRYSTALS_Y $ABSCRYS_X $ABSCRYS_X -(($NABSCRYSTALS_X*$ABSCRYS_X)-$ABSCRYS_X)/2 -(($NABSCRYSTALS_Y*$ABSCRYS_Y)-$ABSCRYS_Y)/2 :P SCATREGION_X $SCATCRYS_X*$NSCATCRYSTALS_X :P SCATREGION_Y $SCATCRYS_Y*$NSCATCRYSTALS_Y :P SCATREGION_Z $NSCATLAYERS*($SCATCRYS_Z*$NSCATCRYSTALS_Z)+(($NSCATLAYERS-1)*$SCATSEP) //:P SCATREGION_Z $WORLD_Z :VOLU scatregion BOX $SCATREGION_X/2 $SCATREGION_Y/2 $SCATREGION_Z/2 G4_AIR :PLACE scatregion 1 world RM0 0 0 $SCATDIST //--- Stack of scatter detectors, built from many layers :P SCATLAYER_X $SCATCRYS_X*$NSCATCRYSTALS_X :P SCATLAYER_Y $SCATCRYS_Y*$NSCATCRYSTALS_Y :P SCATLAYER_Z $SCATCRYS_Z*$NSCATCRYSTALS_Z :VOLU scatlayer BOX $SCATLAYER_X/2 $SCATLAYER_Y/2 $SCATLAYER_Z/2 G4_AIR :PLACE_PARAM scatlayer 1 scatregion LINEAR_Z RM0 $NSCATLAYERS $SCATSEP 0 //--- Scatterer Crystals :VOLU scatcrystal BOX $SCATCRYS_X/2. $SCATCRYS_Y/2. $SCATCRYS_Z/2. $SCATCRYS_MATE :PLACE_PARAM scatcrystal 1 scatlayer SQUARE_XY RM0 $NSCATCRYSTALS_X $NSCATCRYSTALS_Y $SCATCRYS_X $SCATCRYS_Y -(($NSCATCRYSTALS_X*$SCATCRYS_X)-$SCATCRYS_X)/2 -(($NSCATCRYSTALS_Y*$SCATCRYS_Y)-$SCATCRYS_Y)/2