def METHOD_NAME():
    STIR_version = get_STIR_version_string()
    print('Using STIR version %s' % STIR_version)
    print('STIR doc path: %s' % get_STIR_doc_dir())
    print('STIR examples path: %s' % get_STIR_examples_dir())
    # direct all engine's messages to files
    msg_red = MessageRedirector('info.txt', 'warn.txt', 'errr.txt')
    # PET acquisition data to be read from this file
    raw_data_file = existing_filepath(data_path, data_file)
    print('raw data: %s' % raw_data_file)
    acq_data = AcquisitionData(raw_data_file)
    # copy the acquisition data into a Python array and display
    dim = acq_data.dimensions()
    print('data dimensions: %d x %d x %d x %d' % dim)
    if show_plot:
        acq_data.show(range(dim[1]//4))
    acq_array = acq_data.as_array()
    if storage[0] == 'm':  # for now, we can only subset acquisition data stored in memory
        nv = dim[2]//2
        views = numpy.arange(nv)
        acq_subset = acq_data.get_subset(views)
        dim_subset = acq_subset.dimensions()
        print('subset dimensions: %d x %d x %d x %d' % dim_subset)
        if show_plot:
            acq_subset.show(range(dim[1]//4), title='Sinograms of a subset of views')
    # rebin the acquisition data
    new_acq_data = acq_data.rebin(3)
    rdim = new_acq_data.dimensions()
    print('rebinned data dimensions: %d x %d x %d x %d' % rdim)
    if show_plot:
        new_acq_data.show(range(rdim[1]//3), title = 'Rebinned acquisition data')
    # clone the acquisition data
    new_acq_data = acq_data.clone()
    if show_plot:
        # display the cloned data
        new_acq_data.show(range(dim[1]//4), title = 'Cloned acquisition data')
    print('norm of acq_data.as_array(): %f' % numpy.linalg.norm(acq_array))
    s = acq_data.norm()
    t = acq_data.dot(acq_data)
    print('acq_data.norm(): %f' % s)
    print('sqrt(acq_data.dot(acq_data)): %f' % math.sqrt(t))
    diff = new_acq_data - acq_data
    print('norm of acq_data.clone() - acq_data: %f' % diff.norm())
    acq_factor = acq_data.get_uniform_copy(0.1)
    new_acq_data = acq_data / acq_factor
    print('norm of acq_data*10: %f' % new_acq_data.norm())
    acq_data_max = new_acq_data.maximum(acq_data)
    print('norm of max(acq_data, acq_data*10): %f' % acq_data_max.norm())
    acq_data_min = new_acq_data.minimum(acq_data)
    print('norm of min(acq_data, acq_data*10): %f' % acq_data_min.norm())
    acq_copy = acq_data.get_uniform_copy(1.0)
    acq_copy *= acq_data
    diff = acq_copy - acq_data
    print('norm of acq_copy - acq_data: %f' % diff.norm())
    diff = -acq_copy.fill(acq_data) + acq_data
    print('norm of -acq_copy.fill(acq_data) + acq_data: %f' % diff.norm())
    print('TOF mashing factor %d' % acq_data.get_tof_mash_factor())
    if show_plot:
        # display the scaled data
        new_acq_data.show(range(dim[1]//4), title = 'Scaled acquisition data')
    image = acq_data.create_uniform_image(10.0)
    image_array = image.as_array()
    print('image dimensions: %d x %d x %d' % image_array.shape)
    s = image.norm()
    t = image.dot(image)
    print('norm of image.as_array(): %f' % numpy.linalg.norm(image_array))
    print('image.norm(): %f' % s)
    print('sqrt(image.dot(image)): %f' % math.sqrt(t))
    image_factor = image.get_uniform_copy(0.1)
    new_image = image / image_factor
    print('norm of image*10: %f' % new_image.norm())
    image_max = new_image.maximum(image)
    print('norm of max(image, image*10): %f' % image_max.norm())
    image_min = new_image.minimum(image)
    print('norm of min(image, image*10): %f' % image_min.norm())
    diff = image.clone() - image
    print('norm of image.clone() - image: %f' % diff.norm())
    image_copy = image.get_uniform_copy()
    image_copy *= image
    diff = image_copy - image
    print('norm of image_copy - image: %f' % diff.norm())
    diff = -image_copy.fill(image) + image
    print('norm of -image_copy.fill(image) + image: %f' % diff.norm())
    print('image voxel sizes:')
    print(image.voxel_sizes())
    print('image transform matrix:')
    tmx = image.transf_matrix()
    print(tmx)