Difference between meshvaluecollection and meshfunction

what is the difference between mesh value collection and mesh function

The MeshValueCollection is a sparse representation of mesh entities with tags. It is usually used to load in sets of tagged entities from external software.

The MeshFunction is a function that contains a marker for each entity in the grid. This function is used for assembling of sets of cells/facets, create boundary conditions etc.

One usually use the MeshValueCollection as input to a MeshFunction.

is it possible define material property on subdomains(tagged surface) by using Meshvaluecollection.

You should input your mesh value collection to a mesh function, and then use a DG 0 function to represent the material parameter, as shown in:

Okay sir but how to integrate over tagged physical surface and cure in variational form.

See for instance: Poisson equation with multiple subdomains — DOLFIN documentation