DAA is a specific deprecated government standard for authenticated encryption. It is not something you would want to use. In particular, it is a modified version of CMAC using the insecure DES cipher.
HMAC uses a hash algorithm to provide authentication. It is usually quite fast. CMAC on the other hand uses a block cipher in CBC mode, making it a lot slower. The only reason CMAC, which requires double the number of calls to the block cipher for encryption, would be used is if it is being used on an embedded system which already has hardware acceleration for the cipher, making it easy to re-purpose it for authentication. In general, you will want to use HMAC.