If you are looking for complete answer, take a look at Mr. Wizard's :)
Also, see the comments of @JacobAkkerboom below, who proved I was too hasty. :)
I was right that the function OP is asking about at the end is Precedence but I was wrong in my interpretation of what is happening.
I will leave this for future visitors as it is not so obvious.
Also, everyone that upvoted, feel free to un-upvote if you wish :)
right part:
Precedence of functions is given by Precedence :)
More here: What are some useful, undocumented Mathematica functions?What are some useful, undocumented Mathematica functions?
"Good old fashioned" [] is safer but I really like @, I just have to remeber what is going to happen basing on my experiece, because no one will remember all precedences :)
In fact, sometimes I like to do f @ ( some code ). The more different brackets, the more transparent code is, IMO.
wrong part
Precedence[Apply] Precedence[Compose] 620 670
So that's why Tr[Times] is done before Times is applied to the list.
What is also an answer to your question about precedences of functions. It is Precedence, an undocumented function.
There is a discussion about what @ is. In my opinion f @ g does not mean that there's operation Prefix with f on g. Prefix is only a syntax form(?). What is happening is:
Compose[f, g] That's why I've checked Precedence of Compose.
More about Compose: Why there is no name...Why there is no name... (this link is true itself :P)
As you see the wrong part is longer...