that vicodin should help, but you should use some ice/heat therapy. And NO, don't use icey-hot. That stuff sucks and stinks too. Used a cold pack for a few minutes (10 maybe if you can take it with a cloth under it so it doesnt' burn your skin), give it a rest and warm up a bit, then after about 40 minutes, put a heat pack on it (with a cloth) for no more than 20 minutes. That should help ease the pain as well as increase some healing.
ice is best at first though. so you can try the ice pack for a few days if it's actually torn. The heat will only make it more swollen or inflamed. If it is torn, the muscle will already be inflamed so feeding heat to heat, will only make it worse. Ice first to remove any inflamation and swelling. After a few days, add some heat to it to help with the soreness. If the muscle is not torn, it may still be a little swollen from the injury, so just using ice packs in the beginning is still the best option.
You also can just use a cool pack. Ice is cheapest, but it hard to take, but still use a cloth or paper towel or two to keep your skin from burning with the ice and heat.