Enable edges on MultiBlockDataSet

I have a vtm file made of 4 vtp representing triangulated surfaces. I would like to display the mesh edges of these surfaces. The following code seems to work only on one of the surfaces. Is there another way to achieve this?

import vtk

actor = vtk.vtkActor()
mapper = vtk.vtkDataSetMapper()
actor.SetMapper(mapper)
reader = vtk.vtkXMLMultiBlockDataReader()
filter = vtk.vtkCompositeDataGeometryFilter()
filter.SetInputConnection(reader.GetOutputPort())
mapper.SetInputConnection(filter.GetOutputPort())
reader.SetFileName("MyFile.vtm")
actor.GetProperty().SetEdgeVisibility(True)

renderer = vtk.vtkRenderer()
renderWindow = vtk.vtkRenderWindow()
renderWindow.AddRenderer(renderer)
renderWindow.SetSize(500, 500)
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(renderWindow)

renderer.AddActor(actor)

renderWindowInteractor.Initialize()
renderWindow.Render()
renderWindowInteractor.Start()

Here is the result

Thanks for the help

It looks like it is best to use the GeometryFilter and the CompositePolyDataMapper instead of the CompositeDataGeometryFilter and the DataSetMapper.