Question: What is the difference between Best effort traffic and Real time traffic? Is TCP means best effort traffic and UDP means real time traffic? Or anything else?

Answer: 
Typically, real-time traffic (voice, video, etc) does use UDP, but UDP is used for many other things, and most UDP traffic is not real-time traffic. 

Classifications like "best effort" and "real time" (you can have additional classifications) are made by the network administrator to specify how the traffic is treated by the network devices--routers and switches. An administrator decides which traffic is given priority so that network resources (bandwidth, etc) can be matched to the requirements of the traffic.

In other words, as the network administrator, it's up to you to classify traffic in ways that suits your requirements. You decide that VoIP traffic gets priority in your network and is forwarded before other kinds of traffic. You can also decide that Youtube videos of dancing kittens gets lower priority and limited access to your network resources.
Real time or best effort only makes sense when you have a congested network.

When your network is congested you can mark some types of traffic as real time and some as best effort.

When a real time packet hits a switch/router it's processed first. After that the switch/router process best effort packets.

The best analogy I can give you is an avenue. The avenue here is your network. All types of cars/trucks (packets) go thorugh it.

But there are times when a firefighter truck needs to go first. And in your network you could mark firefighters as real time traffic and normal cars as best effort.

TCP can be real time and UDP could be best effort and the other way around. The answer here is the good old "it depends".

The thing is that TCP is connection oriented where UDP is not. So it's a matter of taste I guess...

Hope that helps!