Entity.SetMoveType(MOVETYPE_NONE) and Physics Object and collision detection

The function [lua]Entity.SetMoveType(MOVETYPE_NONE)[/lua] confuses me quite a lot. When I call this function to let an entity not be able to move, I notice that other entities (“base_gmodentity”) cannot collide with it either, and ENT:Touch() cannot be triggered.

However, human body ragdolls ( such as the player itself) can still collide with it, trigger Entity:Touch() hook. Also, the physics gun can still pick it up, and manipulate it.

Here I am wondering is there any differences between ragdoll’s physics object and “base_gmodentity” 's physics object?

Also, I always think that Entity:Touch() is triggered by the collision of two entities’ physics object. Is it correct?

Thanks a lot!