You might consider replacing the TIP3055 with a MosFet. I would be easy to find a MosFet that can pass 4 amps while dissipating < 0.3 watts.
Look at Digikey or Mouser. They both have MosFet parameter filters.
If you still want to go the TIP3055 route be sure you understand the heatsink parameters. All heatsink's are spec'd in "free air". If you are in a case the heatsink will not perform the same as free air.
Even though equation somewhat is Fine (three thermal resistances are to consider), neither description nor formular implementation are consistent or correct.
Consider the attached example, for which a negative power is calculated . And even the value itself is wrong
Values are samples following the figure (of the website showing heatsink and semiconductor) despite the fact that the figure is not calling for R1 or R2
Even though about resistors, applicablr principles are the same and examples given.
From the data sheet, only Rth,JC is required provided you actually do use a heat sink
If you assume an ambient of 30C, let's say you find a max temp of 60C acceptable for the heatsink. At 4W this means a heatsink of at most 7.5K/W. Be conservative and pick something a little bigger, e.g. 5K/W. Try it out and if things still get too hot, improve airflow in your housing.
Or do the sensible thing, save materials, space and money and get a small MOSFET to do the switching virtually without any loss. No heatsink required, only a small PCB footprint.