parameters: (self, ws)
docstring: Processes a kinetic monochromatic workspace by exploding the frames into separate workspaces and reducing them individually
          Note that this is extremely slow and needs to be deprecated in favour of the v2 of this algorithm.
docstring_summary: Processes a kinetic monochromatic workspace by exploding the frames into separate workspaces and reducing them individually
          Note that this is extremely slow and needs to be deprecated in favour of the v2 of this algorithm.
docstring_tokens: Processes a kinetic monochromatic workspace by exploding the frames into separate workspaces and reducing them individually Note that this is extremely slow and needs to be deprecated in favour of the v2 of this algorithm .
function: def _process_kinetic_sample(self, ws):
          '''
          Processes a kinetic monochromatic workspace by exploding the frames into separate workspaces and reducing them individually
          Note that this is extremely slow and needs to be deprecated in favour of the v2 of this algorithm.        '''
  
          if self.getPropertyValue('NormaliseBy') == 'Timer':
              # trick the normalise to use the second monitor which contains the durations per frame
              self.setPropertyValue('NormaliseBy', 'Monitor')
              self._normalise(ws, 100001)
          else:
              self._normalise(ws)
          group_name = ws
          frames = self._split_kinetic_frames(ws)
          frames_to_group = []
  
          for ws in frames:
              frames_to_group.append(ws[2:])
  
              absorber_ws = self.getProperty('AbsorberInputWorkspace').value
              if absorber_ws:
                  self._apply_absorber(ws, absorber_ws)
  
              beam_ws = self.getProperty('BeamInputWorkspace').value
              if beam_ws:
                  self._apply_beam(ws, beam_ws)
  
              transmission_ws = self.getProperty('TransmissionInputWorkspace').value
              if transmission_ws:
                  self._apply_transmission(ws, transmission_ws)
              solid_angle = self._make_solid_angle_name(ws)
              cache = self.getProperty('CacheSolidAngle').value
              if (cache and not mtd.doesExist(solid_angle)) or not cache:
                  SolidAngle(InputWorkspace=ws, OutputWorkspace=solid_angle, Method="Rectangle")
              Divide(LHSWorkspace=ws, RHSWorkspace=solid_angle, OutputWorkspace=ws, WarnOnZeroDivide=False)
              if not cache:
                  DeleteWorkspace(solid_angle)
  
              container_ws = self.getProperty('ContainerInputWorkspace').value
              if container_ws:
                  self._apply_container(ws, container_ws)
  
              self._apply_masks(ws)
              self._apply_thickness(ws)
              # parallax (gondola) effect
              if self._instrument in ['D22', 'D22lr', 'D33', 'D11B', 'D22B']:
                  self._apply_parallax(ws)
  
              self._process_sample(ws)
              self._set_sample_title(ws)
  
              components = mtd[ws].getInstrument().getStringParameter('detector_panels')[0]
              CalculateDynamicRange(Workspace=ws, ComponentNames=components.split(','))
              MaskDetectorsIf(InputWorkspace=ws, OutputWorkspace=ws, Operator='NotFinite')
  
              mtd[ws].getRun().addProperty('ProcessedAs', 'Sample', True)
              mtd[ws].getRun().addProperty('numor_list', self._return_numors(self.getPropertyValue('Run')), True)
              mtd[ws].getRun().addProperty('sample_transmission_numors',
                                            self._return_numors(self.getPropertyValue('TransmissionInputWorkspace')), True)
              RenameWorkspace(InputWorkspace=ws, OutputWorkspace=ws[2:])
  
          GroupWorkspaces(InputWorkspaces=frames_to_group, OutputWorkspace=group_name[2:])
          self.setProperty('OutputWorkspace', mtd[group_name[2:]])
function_tokens: def _process_kinetic_sample ( self , ws ) : if self . getPropertyValue ( 'NormaliseBy' ) == 'Timer' : # trick the normalise to use the second monitor which contains the durations per frame self . setPropertyValue ( 'NormaliseBy' , 'Monitor' ) self . _normalise ( ws , 100001 ) else : self . _normalise ( ws ) group_name = ws frames = self . _split_kinetic_frames ( ws ) frames_to_group = [ ] for ws in frames : frames_to_group . append ( ws [ 2 : ] ) absorber_ws = self . getProperty ( 'AbsorberInputWorkspace' ) . value if absorber_ws : self . _apply_absorber ( ws , absorber_ws ) beam_ws = self . getProperty ( 'BeamInputWorkspace' ) . value if beam_ws : self . _apply_beam ( ws , beam_ws ) transmission_ws = self . getProperty ( 'TransmissionInputWorkspace' ) . value if transmission_ws : self . _apply_transmission ( ws , transmission_ws ) solid_angle = self . _make_solid_angle_name ( ws ) cache = self . getProperty ( 'CacheSolidAngle' ) . value if ( cache and not mtd . doesExist ( solid_angle ) ) or not cache : SolidAngle ( InputWorkspace = ws , OutputWorkspace = solid_angle , Method = "Rectangle" ) Divide ( LHSWorkspace = ws , RHSWorkspace = solid_angle , OutputWorkspace = ws , WarnOnZeroDivide = False ) if not cache : DeleteWorkspace ( solid_angle ) container_ws = self . getProperty ( 'ContainerInputWorkspace' ) . value if container_ws : self . _apply_container ( ws , container_ws ) self . _apply_masks ( ws ) self . _apply_thickness ( ws ) # parallax (gondola) effect if self . _instrument in [ 'D22' , 'D22lr' , 'D33' , 'D11B' , 'D22B' ] : self . _apply_parallax ( ws ) self . _process_sample ( ws ) self . _set_sample_title ( ws ) components = mtd [ ws ] . getInstrument ( ) . getStringParameter ( 'detector_panels' ) [ 0 ] CalculateDynamicRange ( Workspace = ws , ComponentNames = components . split ( ',' ) ) MaskDetectorsIf ( InputWorkspace = ws , OutputWorkspace = ws , Operator = 'NotFinite' ) mtd [ ws ] . getRun ( ) . addProperty ( 'ProcessedAs' , 'Sample' , True ) mtd [ ws ] . getRun ( ) . addProperty ( 'numor_list' , self . _return_numors ( self . getPropertyValue ( 'Run' ) ) , True ) mtd [ ws ] . getRun ( ) . addProperty ( 'sample_transmission_numors' , self . _return_numors ( self . getPropertyValue ( 'TransmissionInputWorkspace' ) ) , True ) RenameWorkspace ( InputWorkspace = ws , OutputWorkspace = ws [ 2 : ] ) GroupWorkspaces ( InputWorkspaces = frames_to_group , OutputWorkspace = group_name [ 2 : ] ) self . setProperty ( 'OutputWorkspace' , mtd [ group_name [ 2 : ] ] )